Lines Matching refs:clkdm

179 static int omap3xxx_clkdm_clear_all_sleepdeps(struct clockdomain *clkdm)  in omap3xxx_clkdm_clear_all_sleepdeps()  argument
184 for (cd = clkdm->sleepdep_srcs; cd && cd->clkdm_name; cd++) { in omap3xxx_clkdm_clear_all_sleepdeps()
185 if (!cd->clkdm) in omap3xxx_clkdm_clear_all_sleepdeps()
188 mask |= 1 << cd->clkdm->dep_bit; in omap3xxx_clkdm_clear_all_sleepdeps()
191 omap2_cm_clear_mod_reg_bits(mask, clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clear_all_sleepdeps()
196 static int omap3xxx_clkdm_sleep(struct clockdomain *clkdm) in omap3xxx_clkdm_sleep() argument
198 omap3xxx_cm_clkdm_force_sleep(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_sleep()
199 clkdm->clktrctrl_mask); in omap3xxx_clkdm_sleep()
203 static int omap3xxx_clkdm_wakeup(struct clockdomain *clkdm) in omap3xxx_clkdm_wakeup() argument
205 omap3xxx_cm_clkdm_force_wakeup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_wakeup()
206 clkdm->clktrctrl_mask); in omap3xxx_clkdm_wakeup()
210 static void omap3xxx_clkdm_allow_idle(struct clockdomain *clkdm) in omap3xxx_clkdm_allow_idle() argument
212 if (clkdm->usecount > 0) in omap3xxx_clkdm_allow_idle()
213 clkdm_add_autodeps(clkdm); in omap3xxx_clkdm_allow_idle()
215 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_allow_idle()
216 clkdm->clktrctrl_mask); in omap3xxx_clkdm_allow_idle()
219 static void omap3xxx_clkdm_deny_idle(struct clockdomain *clkdm) in omap3xxx_clkdm_deny_idle() argument
221 omap3xxx_cm_clkdm_disable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_deny_idle()
222 clkdm->clktrctrl_mask); in omap3xxx_clkdm_deny_idle()
224 if (clkdm->usecount > 0) in omap3xxx_clkdm_deny_idle()
225 clkdm_del_autodeps(clkdm); in omap3xxx_clkdm_deny_idle()
228 static int omap3xxx_clkdm_clk_enable(struct clockdomain *clkdm) in omap3xxx_clkdm_clk_enable() argument
232 if (!clkdm->clktrctrl_mask) in omap3xxx_clkdm_clk_enable()
240 if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) && in omap3xxx_clkdm_clk_enable()
241 (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) { in omap3xxx_clkdm_clk_enable()
242 omap3xxx_clkdm_wakeup(clkdm); in omap3xxx_clkdm_clk_enable()
246 hwsup = omap3xxx_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_enable()
247 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_enable()
251 omap3xxx_cm_clkdm_disable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_enable()
252 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_enable()
253 clkdm_add_autodeps(clkdm); in omap3xxx_clkdm_clk_enable()
254 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_enable()
255 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_enable()
257 if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP) in omap3xxx_clkdm_clk_enable()
258 omap3xxx_clkdm_wakeup(clkdm); in omap3xxx_clkdm_clk_enable()
264 static int omap3xxx_clkdm_clk_disable(struct clockdomain *clkdm) in omap3xxx_clkdm_clk_disable() argument
268 if (!clkdm->clktrctrl_mask) in omap3xxx_clkdm_clk_disable()
276 if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING && in omap3xxx_clkdm_clk_disable()
277 !(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) { in omap3xxx_clkdm_clk_disable()
278 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
279 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
283 hwsup = omap3xxx_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
284 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
288 omap3xxx_cm_clkdm_disable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
289 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
290 clkdm_del_autodeps(clkdm); in omap3xxx_clkdm_clk_disable()
291 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
292 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
294 if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP) in omap3xxx_clkdm_clk_disable()
295 omap3xxx_clkdm_sleep(clkdm); in omap3xxx_clkdm_clk_disable()