On 3/21/2011 6:38 PM, Hema Kalliguddi wrote:
Rajendra,
-----Original Message-----
From: linux-omap-owner@xxxxxxxxxxxxxxx
[mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of Rajendra Nayak
Sent: Monday, March 21, 2011 4:40 PM
To: linux-omap@xxxxxxxxxxxxxxx
Cc: paul@xxxxxxxxx; b-cousson@xxxxxx; Rajendra Nayak
Subject: [RFC 2/3] OMAP3: hwmod: Add support to associate an
initiator with a hwmod
Add hwmod api's to add and delete an initiator
association with an hwmod.
Signed-off-by: Rajendra Nayak<rnayak@xxxxxx>
---
arch/arm/mach-omap2/omap_hwmod.c | 33
++++++++++++++++++++++++++
arch/arm/plat-omap/include/plat/omap_hwmod.h | 2 +
2 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod.c
b/arch/arm/mach-omap2/omap_hwmod.c
index e034294..d4826be 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -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;
Why are you returning error when it not a omap34xx?
Is it not that this API will be called for only omap34xx?
No, this API could get called as part of a driver call
to the omap_device API on non-supported platform's as well.
+}
+
+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;
Ditto...
+
+}
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 4bd7354..fe47448 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -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);
--
Regards,
Hema
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe
linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html