@@ -2369,3 +2369,36 @@ int omap_hwmod_no_setup_reset(struct omap_hwmod *oh)
return 0;
}
+
+int omap_hwmod_add_initiator_user(struct omap_hwmod *oh, u8 init_id)
+{
+ if (oh->_state != _HWMOD_STATE_ENABLED)
+ return -EINVAL;
+
+ if (cpu_is_omap34xx()) {
+ return omap2_prm_module_enable_initiator_wakeup(
+ oh->prcm.omap2.module_offs,
+ oh->prcm.omap2.idlest_reg_id,
+ oh->prcm.omap2.idlest_idle_bit,
+ init_id);
+ }
+
+ return -EINVAL;
+}
+
+int omap_hwmod_del_initiator_user(struct omap_hwmod *oh, u8 init_id)
+{
+ if (oh->_state == _HWMOD_STATE_ENABLED)
+ return -EINVAL;
+
+ if (cpu_is_omap34xx()) {
+ return omap2_prm_module_disable_initiator_wakeup(
+ oh->prcm.omap2.module_offs,
+ oh->prcm.omap2.idlest_reg_id,
+ oh->prcm.omap2.idlest_idle_bit,
+ init_id);
+ }
+
+ return -EINVAL;
+
+}
@@ -590,6 +590,8 @@ int omap_hwmod_add_initiator_dep(struct omap_hwmod *oh,
struct omap_hwmod *init_oh);
int omap_hwmod_del_initiator_dep(struct omap_hwmod *oh,
struct omap_hwmod *init_oh);
+int omap_hwmod_add_initiator_user(struct omap_hwmod *oh, u8 init_id);
+int omap_hwmod_del_initiator_user(struct omap_hwmod *oh, u8 init_id);
int omap_hwmod_set_clockact_both(struct omap_hwmod *oh);
int omap_hwmod_set_clockact_main(struct omap_hwmod *oh);