Lines Matching refs:clkdm

172 static int omap3xxx_clkdm_clear_all_sleepdeps(struct clockdomain *clkdm)  in omap3xxx_clkdm_clear_all_sleepdeps()  argument
177 for (cd = clkdm->sleepdep_srcs; cd && cd->clkdm_name; cd++) { in omap3xxx_clkdm_clear_all_sleepdeps()
178 if (!cd->clkdm) in omap3xxx_clkdm_clear_all_sleepdeps()
181 mask |= 1 << cd->clkdm->dep_bit; in omap3xxx_clkdm_clear_all_sleepdeps()
184 omap2_cm_clear_mod_reg_bits(mask, clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clear_all_sleepdeps()
189 static int omap3xxx_clkdm_sleep(struct clockdomain *clkdm) in omap3xxx_clkdm_sleep() argument
191 omap3xxx_cm_clkdm_force_sleep(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_sleep()
192 clkdm->clktrctrl_mask); in omap3xxx_clkdm_sleep()
196 static int omap3xxx_clkdm_wakeup(struct clockdomain *clkdm) in omap3xxx_clkdm_wakeup() argument
198 omap3xxx_cm_clkdm_force_wakeup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_wakeup()
199 clkdm->clktrctrl_mask); in omap3xxx_clkdm_wakeup()
203 static void omap3xxx_clkdm_allow_idle(struct clockdomain *clkdm) in omap3xxx_clkdm_allow_idle() argument
205 if (clkdm->usecount > 0) in omap3xxx_clkdm_allow_idle()
206 clkdm_add_autodeps(clkdm); in omap3xxx_clkdm_allow_idle()
208 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_allow_idle()
209 clkdm->clktrctrl_mask); in omap3xxx_clkdm_allow_idle()
212 static void omap3xxx_clkdm_deny_idle(struct clockdomain *clkdm) in omap3xxx_clkdm_deny_idle() argument
214 omap3xxx_cm_clkdm_disable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_deny_idle()
215 clkdm->clktrctrl_mask); in omap3xxx_clkdm_deny_idle()
217 if (clkdm->usecount > 0) in omap3xxx_clkdm_deny_idle()
218 clkdm_del_autodeps(clkdm); in omap3xxx_clkdm_deny_idle()
221 static int omap3xxx_clkdm_clk_enable(struct clockdomain *clkdm) in omap3xxx_clkdm_clk_enable() argument
225 if (!clkdm->clktrctrl_mask) in omap3xxx_clkdm_clk_enable()
233 if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) && in omap3xxx_clkdm_clk_enable()
234 (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) { in omap3xxx_clkdm_clk_enable()
235 omap3xxx_clkdm_wakeup(clkdm); in omap3xxx_clkdm_clk_enable()
239 hwsup = omap3xxx_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_enable()
240 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_enable()
244 omap3xxx_cm_clkdm_disable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_enable()
245 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_enable()
246 clkdm_add_autodeps(clkdm); in omap3xxx_clkdm_clk_enable()
247 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_enable()
248 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_enable()
250 if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP) in omap3xxx_clkdm_clk_enable()
251 omap3xxx_clkdm_wakeup(clkdm); in omap3xxx_clkdm_clk_enable()
257 static int omap3xxx_clkdm_clk_disable(struct clockdomain *clkdm) in omap3xxx_clkdm_clk_disable() argument
261 if (!clkdm->clktrctrl_mask) in omap3xxx_clkdm_clk_disable()
269 if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING && in omap3xxx_clkdm_clk_disable()
270 !(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) { in omap3xxx_clkdm_clk_disable()
271 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
272 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
276 hwsup = omap3xxx_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
277 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
281 omap3xxx_cm_clkdm_disable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
282 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
283 clkdm_del_autodeps(clkdm); in omap3xxx_clkdm_clk_disable()
284 omap3xxx_cm_clkdm_enable_hwsup(clkdm->pwrdm.ptr->prcm_offs, in omap3xxx_clkdm_clk_disable()
285 clkdm->clktrctrl_mask); in omap3xxx_clkdm_clk_disable()
287 if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP) in omap3xxx_clkdm_clk_disable()
288 omap3xxx_clkdm_sleep(clkdm); in omap3xxx_clkdm_clk_disable()