[PATCH V2 05/12] ARM: ux500: Create APE generic power domain

Rickard Andersson rickard.andersson at stericsson.com
Thu Mar 28 12:11:31 EDT 2013


The APE generic power domain is created and
initiated. This power domain is turned off in
the sleep states ApSleep and ApDeepSleep

Signed-off-by: Rickard Andersson <rickard.andersson at stericsson.com>
---
 arch/arm/mach-ux500/Kconfig        |  1 +
 arch/arm/mach-ux500/board-mop500.c | 17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index 5dea906..b2e5c8b 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -12,6 +12,7 @@ config UX500_SOC_COMMON
 	select PINCTRL
 	select PINCTRL_NOMADIK
 	select PL310_ERRATA_753970 if CACHE_PL310
+	select PM_GENERIC_DOMAINS if PM
 
 config UX500_SOC_DB8500
 	bool
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index d453522..77d3d1a 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -37,7 +37,7 @@
 #include <linux/pinctrl/consumer.h>
 #include <linux/platform_data/pinctrl-nomadik.h>
 #include <linux/platform_data/dma-ste-dma40.h>
-
+#include <linux/pm_domain.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/hardware/gic.h>
@@ -645,6 +645,15 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
 	&u8500_cpufreq_cooling_device,
 };
 
+struct generic_pm_domain ape_domain = {
+	.name = "APE",
+};
+
+static void __init init_pm_domains(void)
+{
+	pm_genpd_init(&ape_domain, NULL, false);
+}
+
 static void __init mop500_init_machine(void)
 {
 	struct device *parent = NULL;
@@ -668,6 +677,8 @@ static void __init mop500_init_machine(void)
 	mop500_audio_init(parent);
 	mop500_uart_init(parent);
 
+	init_pm_domains();
+
 	u8500_cryp1_hash1_init(parent);
 
 	i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
@@ -700,6 +711,8 @@ static void __init snowball_init_machine(void)
 	mop500_audio_init(parent);
 	mop500_uart_init(parent);
 
+	init_pm_domains();
+
 	/* This board has full regulator constraints */
 	regulator_has_full_constraints();
 }
@@ -732,6 +745,8 @@ static void __init hrefv60_init_machine(void)
 	mop500_audio_init(parent);
 	mop500_uart_init(parent);
 
+	init_pm_domains();
+
 	i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
 
 	i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES;
-- 
1.8.2




More information about the linux-arm-kernel mailing list