summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/prm.h
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2012-10-21 01:01:11 -0600
committerPaul Walmsley <paul@pwsan.com>2012-10-21 01:01:11 -0600
commite24c35737413c8626f9c4e8f47e33926b7ab7f23 (patch)
treea49061ee1ae5a4492767fe9e7fbfa82440004714 /arch/arm/mach-omap2/prm.h
parent4bd5259e53accda0fe295d3b25da348f4d5f4b09 (diff)
downloadlinux-e24c35737413c8626f9c4e8f47e33926b7ab7f23.tar.gz
linux-e24c35737413c8626f9c4e8f47e33926b7ab7f23.tar.bz2
linux-e24c35737413c8626f9c4e8f47e33926b7ab7f23.zip
ARM: OMAP2+: PRM: prepare for use of prm_ll_data function pointers
There are several PRM operations which behave similarly across OMAP2+ SoCs, but which have slight differences in their underlying implementations. For example, to fetch the SoC's last reset sources, different registers are read across OMAP2xxx, 3xxx, and 44xx, and different bits are used on each SoC. But the information returned is so similar that a single, common interface for drivers is useful. This patch creates the support code for this function pointer registration process. No function pointers are included yet, but a subsequent patch will create one for the reset source API. To illustrate the end goal with the above reset source example, each per-SoC driver will use its own low-level implementation function -- e.g., prm2xxx.c would contain omap2xxx_prm_read_reset_sources(). This function would read the appropriate register and remap the register bits to a standard set of reset source bits. When the prm2xxx.c driver is loaded, it would register this function with the common PRM driver, prm.c. prm.c would then export a common function, omap_prm_read_reset_sources(). Calling it would call through to the function pointer for the currently-registered SoC PRM driver. This will allow other drivers to use PRM-provided data and operations without needing to know which SoC is currently in use. Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/mach-omap2/prm.h')
-rw-r--r--arch/arm/mach-omap2/prm.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/prm.h b/arch/arm/mach-omap2/prm.h
index 39d562169d18..3e51c1d15757 100644
--- a/arch/arm/mach-omap2/prm.h
+++ b/arch/arm/mach-omap2/prm.h
@@ -52,5 +52,16 @@
#define OMAP_POWERSTATE_SHIFT 0
#define OMAP_POWERSTATE_MASK (0x3 << 0)
+#ifndef __ASSEMBLER__
+
+/**
+ * struct prm_ll_data - fn ptrs to per-SoC PRM function implementations
+ */
+struct prm_ll_data {};
+
+extern int prm_register(struct prm_ll_data *pld);
+extern int prm_unregister(struct prm_ll_data *pld);
+
+#endif
#endif