aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod.h
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2013-02-10 11:22:22 -0700
committerPaul Walmsley <paul@pwsan.com>2013-02-10 11:22:22 -0700
commit6d266f63a11bce427504d203834df3c0bb9be9a5 (patch)
tree8b1a059ab5d9bc35586ba7982d1e3acec20d8932 /arch/arm/mach-omap2/omap_hwmod.h
parentLinux 3.8-rc6 (diff)
downloadlinux-dev-6d266f63a11bce427504d203834df3c0bb9be9a5.tar.xz
linux-dev-6d266f63a11bce427504d203834df3c0bb9be9a5.zip
ARM: OMAP2+: hwmod: add enable_preprogram hook
After setup/enable, some IP blocks need some additional setting to indicate the PRCM that they are inactive until they are configured. Some examples on OMAP4 include the AESS and FSUSB IP blocks. To fix this cleanly, this patch adds another optional function pointer, enable_preprogram, to the IP block's hwmod data. The function that is pointed to is called by the hwmod code immediately after the IP block is reset. This version of the patch includes a patch description fix from Felipe. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com> Cc: Benoît Cousson <b-cousson@ti.com> Cc: Péter Ujfalusi <peter.ujfalusi@ti.com> Cc: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.h')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 3ae852a522f9..41066b4b7a7b 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -501,6 +501,7 @@ struct omap_hwmod_omap4_prcm {
* @rev: revision of the IP class
* @pre_shutdown: ptr to fn to be executed immediately prior to device shutdown
* @reset: ptr to fn to be executed in place of the standard hwmod reset fn
+ * @enable_preprogram: ptr to fn to be executed during device enable
*
* Represent the class of a OMAP hardware "modules" (e.g. timer,
* smartreflex, gpio, uart...)
@@ -524,6 +525,7 @@ struct omap_hwmod_class {
u32 rev;
int (*pre_shutdown)(struct omap_hwmod *oh);
int (*reset)(struct omap_hwmod *oh);
+ int (*enable_preprogram)(struct omap_hwmod *oh);
};
/**