OMAP2: add voltage domains and connect to powerdomains
authorKevin Hilman <khilman@ti.com>
Wed, 23 Mar 2011 23:09:41 +0000 (16:09 -0700)
committerKevin Hilman <khilman@ti.com>
Thu, 15 Sep 2011 18:39:10 +0000 (11:39 -0700)
Create basic voltagedomains for OMAP2 and associate OMAP2 powerdomains
with the newly created voltage domains.

While here, update copyright on powerdomain data to 2011.

Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/powerdomain2xxx_3xxx.c
arch/arm/mach-omap2/powerdomains2xxx_data.c
arch/arm/mach-omap2/voltage.h
arch/arm/mach-omap2/voltagedomains2xxx_data.c [new file with mode: 0644]

index 5a6fe73..cce9bc3 100644 (file)
@@ -91,7 +91,8 @@ obj-$(CONFIG_ARCH_OMAP4)              += prcm.o cm2xxx_3xxx.o cminst44xx.o \
 # OMAP voltage domains
 ifeq ($(CONFIG_PM),y)
 voltagedomain-common                   := voltage.o
-obj-$(CONFIG_ARCH_OMAP2)               += $(voltagedomain-common)
+obj-$(CONFIG_ARCH_OMAP2)               += $(voltagedomain-common) \
+                                          voltagedomains2xxx_data.o
 obj-$(CONFIG_ARCH_OMAP3)               += $(voltagedomain-common) \
                                           voltagedomains3xxx_data.o
 obj-$(CONFIG_ARCH_OMAP4)               += $(voltagedomain-common) \
index 7c36fde..7802e84 100644 (file)
@@ -342,10 +342,12 @@ void __init omap2_init_common_infrastructure(void)
        u8 postsetup_state;
 
        if (cpu_is_omap242x()) {
+               omap2xxx_voltagedomains_init();
                omap242x_powerdomains_init();
                omap242x_clockdomains_init();
                omap2420_hwmod_init();
        } else if (cpu_is_omap243x()) {
+               omap2xxx_voltagedomains_init();
                omap243x_powerdomains_init();
                omap243x_clockdomains_init();
                omap2430_hwmod_init();
index cf600e2..6a17e4c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * OMAP2 and OMAP3 powerdomain control
  *
- * Copyright (C) 2009-2010 Texas Instruments, Inc.
+ * Copyright (C) 2009-2011 Texas Instruments, Inc.
  * Copyright (C) 2007-2009 Nokia Corporation
  *
  * Derived from mach-omap2/powerdomain.c written by Paul Walmsley
index bb4394e..2385c1f 100644 (file)
@@ -37,6 +37,7 @@ static struct powerdomain dsp_pwrdm = {
        .pwrsts_mem_on    = {
                [0] = PWRSTS_ON,
        },
+       .voltdm           = { .name = "core" },
 };
 
 static struct powerdomain mpu_24xx_pwrdm = {
@@ -51,6 +52,7 @@ static struct powerdomain mpu_24xx_pwrdm = {
        .pwrsts_mem_on    = {
                [0] = PWRSTS_ON,
        },
+       .voltdm           = { .name = "core" },
 };
 
 static struct powerdomain core_24xx_pwrdm = {
@@ -68,6 +70,7 @@ static struct powerdomain core_24xx_pwrdm = {
                [1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
                [2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
        },
+       .voltdm           = { .name = "core" },
 };
 
 
@@ -89,6 +92,7 @@ static struct powerdomain mdm_pwrdm = {
        .pwrsts_mem_on    = {
                [0] = PWRSTS_ON,  /* MEMONSTATE */
        },
+       .voltdm           = { .name = "core" },
 };
 
 /*
index 25cfb5c..cacd76e 100644 (file)
@@ -180,6 +180,7 @@ static inline int omap_voltage_late_init(void)
 }
 #endif
 
+extern void omap2xxx_voltagedomains_init(void);
 extern void omap3xxx_voltagedomains_init(void);
 extern void omap44xx_voltagedomains_init(void);
 
diff --git a/arch/arm/mach-omap2/voltagedomains2xxx_data.c b/arch/arm/mach-omap2/voltagedomains2xxx_data.c
new file mode 100644 (file)
index 0000000..7a41349
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * OMAP3 voltage domain data
+ *
+ * Copyright (C) 2011 Texas Instruments, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+
+#include "voltage.h"
+
+static struct voltagedomain omap2_voltdm_core = {
+       .name = "core",
+};
+
+static struct voltagedomain omap2_voltdm_wkup = {
+       .name = "wakeup",
+};
+
+static struct voltagedomain *voltagedomains_omap2[] __initdata = {
+       &omap2_voltdm_core,
+       &omap2_voltdm_wkup,
+       NULL,
+};
+
+void __init omap2xxx_voltagedomains_init(void)
+{
+       voltdm_init(voltagedomains_omap2);
+}