@@ -9,14 +9,13 @@ obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o \
omap-2-3-common = irq.o sdrc.o prm2xxx_3xxx.o
hwmod-common = omap_hwmod.o \
omap_hwmod_common_data.o
-prcm-common = prcm.o powerdomain.o
clock-common = clock.o clock_common_data.o \
clockdomain.o clkt_dpll.o \
clkt_clksel.o
-obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(prcm-common) $(hwmod-common)
-obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(hwmod-common)
-obj-$(CONFIG_ARCH_OMAP4) += $(prcm-common) prm44xx.o $(hwmod-common)
+obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common)
+obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common)
+obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common)
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
@@ -65,9 +64,13 @@ endif
endif
# PRCM
-obj-$(CONFIG_ARCH_OMAP2) += cm.o
-obj-$(CONFIG_ARCH_OMAP3) += cm.o
-obj-$(CONFIG_ARCH_OMAP4) += cm4xxx.o
+obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm.o
+obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm.o
+obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm4xxx.o
+
+# OMAP powerdomain framework
+powerdomain-common += powerdomain.o powerdomains_data.o
+obj-y += $(powerdomain-common)
# Clock framework
obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o \
@@ -38,6 +38,11 @@
#include <plat/clockdomain.h>
#include "cm.h"
#include "prm.h"
+#include "cm-regbits-24xx.h"
+#include "cm-regbits-34xx.h"
+#include "cm-regbits-44xx.h"
+#include "prm-regbits-24xx.h"
+#include "prm-regbits-34xx.h"
/*
* Clockdomain dependencies for wkdeps/sleepdeps
@@ -40,7 +40,6 @@
#include <plat/omap-pm.h>
#include <plat/powerdomain.h>
-#include "powerdomains.h"
#include <plat/clockdomain.h>
#include "clockdomains.h"
@@ -316,7 +315,7 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
{
u8 skip_setup_idle = 0;
- pwrdm_init(powerdomains_omap);
+ pwrdm_fw_init();
clkdm_init(clockdomains_omap, clkdm_autodeps);
if (cpu_is_omap242x())
omap2420_hwmod_init();
similarity index 97%
rename from arch/arm/mach-omap2/powerdomains.h
rename to arch/arm/mach-omap2/powerdomains_data.c
@@ -18,9 +18,6 @@
* Clock Domain Framework
*/
-#ifndef ARCH_ARM_MACH_OMAP2_POWERDOMAINS
-#define ARCH_ARM_MACH_OMAP2_POWERDOMAINS
-
/*
* This file contains all of the powerdomains that have some element
* of software control for the OMAP24xx and OMAP34xx chips.
@@ -49,6 +46,7 @@
* address offset is different between the C55 and C64 DSPs.
*/
+#include <linux/init.h>
#include <plat/powerdomain.h>
#include "prcm-common.h"
@@ -149,5 +147,7 @@ static struct powerdomain *powerdomains_omap[] __initdata = {
NULL
};
-
-#endif
+void pwrdm_fw_init(void)
+{
+ pwrdm_init(powerdomains_omap);
+}
@@ -118,6 +118,7 @@ struct powerdomain {
};
+void pwrdm_fw_init(void);
void pwrdm_init(struct powerdomain **pwrdm_list);
struct powerdomain *pwrdm_lookup(const char *name);