• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/mach-omap2/

Lines Matching refs:pwrdm

87 	struct powerdomain *pwrdm, *temp_pwrdm;
89 pwrdm = NULL;
93 pwrdm = temp_pwrdm;
98 return pwrdm;
103 * @pwrdm: struct powerdomain * to register
109 static int _pwrdm_register(struct powerdomain *pwrdm)
113 if (!pwrdm)
116 if (!omap_chip_is(pwrdm->omap_chip))
119 if (_pwrdm_lookup(pwrdm->name))
122 list_add(&pwrdm->node, &pwrdm_list);
126 pwrdm->state_counter[i] = 0;
128 pwrdm->ret_logic_off_counter = 0;
129 for (i = 0; i < pwrdm->banks; i++)
130 pwrdm->ret_mem_off_counter[i] = 0;
132 pwrdm_wait_transition(pwrdm);
133 pwrdm->state = pwrdm_read_pwrst(pwrdm);
134 pwrdm->state_counter[pwrdm->state] = 1;
136 pr_debug("powerdomain: registered %s\n", pwrdm->name);
141 static void _update_logic_membank_counters(struct powerdomain *pwrdm)
146 prev_logic_pwrst = pwrdm_read_prev_logic_pwrst(pwrdm);
147 if ((pwrdm->pwrsts_logic_ret == PWRSTS_OFF_RET) &&
149 pwrdm->ret_logic_off_counter++;
151 for (i = 0; i < pwrdm->banks; i++) {
152 prev_mem_pwrst = pwrdm_read_prev_mem_pwrst(pwrdm, i);
154 if ((pwrdm->pwrsts_mem_ret[i] == PWRSTS_OFF_RET) &&
156 pwrdm->ret_mem_off_counter[i]++;
160 static int _pwrdm_state_switch(struct powerdomain *pwrdm, int flag)
166 if (pwrdm == NULL)
169 state = pwrdm_read_pwrst(pwrdm);
173 prev = pwrdm->state;
176 prev = pwrdm_read_prev_pwrst(pwrdm);
177 if (pwrdm->state != prev)
178 pwrdm->state_counter[prev]++;
180 _update_logic_membank_counters(pwrdm);
187 pwrdm->state_counter[state]++;
189 pm_dbg_update_time(pwrdm, prev);
191 pwrdm->state = state;
196 static int _pwrdm_pre_transition_cb(struct powerdomain *pwrdm, void *unused)
198 pwrdm_clear_all_prev_pwrst(pwrdm);
199 _pwrdm_state_switch(pwrdm, PWRDM_STATE_NOW);
203 static int _pwrdm_post_transition_cb(struct powerdomain *pwrdm, void *unused)
205 _pwrdm_state_switch(pwrdm, PWRDM_STATE_PREV);
242 struct powerdomain *pwrdm;
247 pwrdm = _pwrdm_lookup(name);
249 return pwrdm;
262 int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
282 * @pwrdm: struct powerdomain * to add the clockdomain to
285 * Associate the clockdomain @clkdm with a powerdomain @pwrdm. This
290 int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)
295 if (!pwrdm || !clkdm)
299 "%s\n", clkdm->name, pwrdm->name);
302 if (!pwrdm->pwrdm_clkdms[i])
305 if (pwrdm->pwrdm_clkdms[i] == clkdm) {
314 "pwrdm %s clkdm %s\n", pwrdm->name, clkdm->name);
320 pwrdm->pwrdm_clkdms[i] = clkdm;
330 * @pwrdm: struct powerdomain * to add the clockdomain to
334 * @pwrdm. Returns -EINVAL if presented with invalid pointers; -ENOENT
338 int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)
343 if (!pwrdm || !clkdm)
347 "%s\n", clkdm->name, pwrdm->name);
350 if (pwrdm->pwrdm_clkdms[i] == clkdm)
354 pr_debug("powerdomain: clkdm %s not associated with pwrdm "
355 "%s ?!\n", clkdm->name, pwrdm->name);
360 pwrdm->pwrdm_clkdms[i] = NULL;
369 * pwrdm_for_each_clkdm - call function on each clkdm in a pwrdm
370 * @pwrdm: struct powerdomain * to iterate over
374 * @pwrdm. The callback function can return anything but 0 to bail
380 int pwrdm_for_each_clkdm(struct powerdomain *pwrdm,
381 int (*fn)(struct powerdomain *pwrdm,
391 ret = (*fn)(pwrdm, pwrdm->pwrdm_clkdms[i]);
398 * @pwrdm: struct powerdomain *
400 * Return the number of controllable memory banks in powerdomain @pwrdm,
403 int pwrdm_get_mem_bank_count(struct powerdomain *pwrdm)
405 if (!pwrdm)
408 return pwrdm->banks;
413 * @pwrdm: struct powerdomain * to set
416 * Set the powerdomain @pwrdm's next power state to @pwrst. The powerdomain
422 int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst)
424 if (!pwrdm)
427 if (!(pwrdm->pwrsts & (1 << pwrst)))
431 pwrdm->name, pwrst);
435 pwrdm->prcm_offs, pwrstctrl_reg_offs);
442 * @pwrdm: struct powerdomain * to get power state
444 * Return the powerdomain @pwrdm's next power state. Returns -EINVAL
448 int pwrdm_read_next_pwrst(struct powerdomain *pwrdm)
450 if (!pwrdm)
453 return prm_read_mod_bits_shift(pwrdm->prcm_offs,
459 * @pwrdm: struct powerdomain * to get power state
461 * Return the powerdomain @pwrdm's current power state. Returns -EINVAL
465 int pwrdm_read_pwrst(struct powerdomain *pwrdm)
467 if (!pwrdm)
470 return prm_read_mod_bits_shift(pwrdm->prcm_offs,
476 * @pwrdm: struct powerdomain * to get previous power state
478 * Return the powerdomain @pwrdm's previous power state. Returns -EINVAL
482 int pwrdm_read_prev_pwrst(struct powerdomain *pwrdm)
484 if (!pwrdm)
487 return prm_read_mod_bits_shift(pwrdm->prcm_offs, OMAP3430_PM_PREPWSTST,
493 * @pwrdm: struct powerdomain * to set
497 * powerdomain @pwrdm will enter when the powerdomain enters retention.
502 int pwrdm_set_logic_retst(struct powerdomain *pwrdm, u8 pwrst)
506 if (!pwrdm)
509 if (!(pwrdm->pwrsts_logic_ret & (1 << pwrst)))
513 pwrdm->name, pwrst);
523 pwrdm->prcm_offs, pwrstctrl_reg_offs);
530 * @pwrdm: struct powerdomain * to set
535 * powerdomain @pwrdm will enter when the powerdomain enters the ON
543 int pwrdm_set_mem_onst(struct powerdomain *pwrdm, u8 bank, u8 pwrst)
547 if (!pwrdm)
550 if (pwrdm->banks < (bank + 1))
553 if (!(pwrdm->pwrsts_mem_on[bank] & (1 << pwrst)))
557 "bank %0x while pwrdm-ON to %0x\n", pwrdm->name, bank, pwrst);
587 pwrdm->prcm_offs, pwrstctrl_reg_offs);
594 * @pwrdm: struct powerdomain * to set
599 * powerdomain @pwrdm will enter when the powerdomain enters the
608 int pwrdm_set_mem_retst(struct powerdomain *pwrdm, u8 bank, u8 pwrst)
612 if (!pwrdm)
615 if (pwrdm->banks < (bank + 1))
618 if (!(pwrdm->pwrsts_mem_ret[bank] & (1 << pwrst)))
622 "bank %0x while pwrdm-RET to %0x\n", pwrdm->name, bank, pwrst);
651 prm_rmw_mod_reg_bits(m, (pwrst << __ffs(m)), pwrdm->prcm_offs,
659 * @pwrdm: struct powerdomain * to get current logic retention power state
661 * Return the power state that the logic portion of powerdomain @pwrdm
666 int pwrdm_read_logic_pwrst(struct powerdomain *pwrdm)
668 if (!pwrdm)
671 return prm_read_mod_bits_shift(pwrdm->prcm_offs, pwrstst_reg_offs,
677 * @pwrdm: struct powerdomain * to get previous logic power state
679 * Return the powerdomain @pwrdm's previous logic power state. Returns
683 int pwrdm_read_prev_logic_pwrst(struct powerdomain *pwrdm)
685 if (!pwrdm)
694 return prm_read_mod_bits_shift(pwrdm->prcm_offs, OMAP3430_PM_PREPWSTST,
700 * @pwrdm: struct powerdomain * to get next logic power state
702 * Return the powerdomain pwrdm's logic power state. Returns -EINVAL
706 int pwrdm_read_logic_retst(struct powerdomain *pwrdm)
708 if (!pwrdm)
717 return prm_read_mod_bits_shift(pwrdm->prcm_offs, pwrstctrl_reg_offs,
723 * @pwrdm: struct powerdomain * to get current memory bank power state
726 * Return the powerdomain @pwrdm's current memory power state for bank
731 int pwrdm_read_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
735 if (!pwrdm)
738 if (pwrdm->banks < (bank + 1))
741 if (pwrdm->flags & PWRDM_HAS_MPU_QUIRK)
771 return prm_read_mod_bits_shift(pwrdm->prcm_offs,
777 * @pwrdm: struct powerdomain * to get previous memory bank power state
780 * Return the powerdomain @pwrdm's previous memory power state for
786 int pwrdm_read_prev_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
790 if (!pwrdm)
793 if (pwrdm->banks < (bank + 1))
796 if (pwrdm->flags & PWRDM_HAS_MPU_QUIRK)
823 return prm_read_mod_bits_shift(pwrdm->prcm_offs,
829 * @pwrdm: struct powerdomain * to get mext memory bank power state
832 * Return the powerdomain pwrdm's next memory power state for bank
837 int pwrdm_read_mem_retst(struct powerdomain *pwrdm, u8 bank)
841 if (!pwrdm)
844 if (pwrdm->banks < (bank + 1))
874 return prm_read_mod_bits_shift(pwrdm->prcm_offs,
879 * pwrdm_clear_all_prev_pwrst - clear previous powerstate register for a pwrdm
880 * @pwrdm: struct powerdomain * to clear
882 * Clear the powerdomain's previous power state register @pwrdm.
887 int pwrdm_clear_all_prev_pwrst(struct powerdomain *pwrdm)
889 if (!pwrdm)
894 pwrdm->name);
896 prm_write_mod_reg(0, pwrdm->prcm_offs, OMAP3430_PM_PREPWSTST);
902 * pwrdm_enable_hdwr_sar - enable automatic hardware SAR for a pwrdm
903 * @pwrdm: struct powerdomain *
906 * for some devices in the powerdomain @pwrdm. Warning: this only
912 int pwrdm_enable_hdwr_sar(struct powerdomain *pwrdm)
914 if (!pwrdm)
917 if (!(pwrdm->flags & PWRDM_HAS_HDWR_SAR))
921 pwrdm->name);
924 pwrdm->prcm_offs, pwrstctrl_reg_offs);
930 * pwrdm_disable_hdwr_sar - disable automatic hardware SAR for a pwrdm
931 * @pwrdm: struct powerdomain *
934 * for some devices in the powerdomain @pwrdm. Warning: this only
940 int pwrdm_disable_hdwr_sar(struct powerdomain *pwrdm)
942 if (!pwrdm)
945 if (!(pwrdm->flags & PWRDM_HAS_HDWR_SAR))
949 pwrdm->name);
952 pwrdm->prcm_offs, pwrstctrl_reg_offs);
959 * @pwrdm: struct powerdomain *
961 * Returns 1 if powerdomain @pwrdm supports hardware save-and-restore
964 bool pwrdm_has_hdwr_sar(struct powerdomain *pwrdm)
966 return (pwrdm && pwrdm->flags & PWRDM_HAS_HDWR_SAR) ? 1 : 0;
971 * @pwrdm: struct powerdomain *
979 int pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm)
981 if (!pwrdm)
984 if (!(pwrdm->flags & PWRDM_HAS_LOWPOWERSTATECHANGE))
988 pwrdm->name);
992 pwrdm->prcm_offs, pwrstctrl_reg_offs);
999 * @pwrdm: struct powerdomain * to wait for
1001 * If the powerdomain @pwrdm is in the process of a state transition,
1007 int pwrdm_wait_transition(struct powerdomain *pwrdm)
1011 if (!pwrdm)
1020 while ((prm_read_mod_reg(pwrdm->prcm_offs, pwrstst_reg_offs) &
1027 "powerdomain %s to complete transition\n", pwrdm->name);
1036 int pwrdm_state_switch(struct powerdomain *pwrdm)
1038 return _pwrdm_state_switch(pwrdm, PWRDM_STATE_NOW);
1043 if (clkdm != NULL && clkdm->pwrdm.ptr != NULL) {
1044 pwrdm_wait_transition(clkdm->pwrdm.ptr);
1045 return pwrdm_state_switch(clkdm->pwrdm.ptr);