summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorKevin Hilman <khilman@ti.com>2011-03-23 17:00:21 -0700
committerKevin Hilman <khilman@ti.com>2011-09-15 11:39:09 -0700
commit37efca7e9deacf3c11bda82df5b7594f098daa69 (patch)
treec52a77d2bde0dec9a4ae1ca6e8a0f45b3993ae96 /arch/arm/mach-omap2
parentace19ffa9a580c7b3d2a7cd4bb9fda6071394d25 (diff)
downloadlinux-stable-37efca7e9deacf3c11bda82df5b7594f098daa69.tar.gz
linux-stable-37efca7e9deacf3c11bda82df5b7594f098daa69.tar.bz2
linux-stable-37efca7e9deacf3c11bda82df5b7594f098daa69.zip
OMAP3+: voltage: add scalable flag to voltagedomain
Add a 'bool scalable' flag to the struct powerdomain and set it for the scalable domains on OMAP3 and OMAP4. Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/voltage.c3
-rw-r--r--arch/arm/mach-omap2/voltage.h2
-rw-r--r--arch/arm/mach-omap2/voltagedomains3xxx_data.c2
-rw-r--r--arch/arm/mach-omap2/voltagedomains44xx_data.c3
4 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-omap2/voltage.c
index 4f0361a23ff6..48a2593878c6 100644
--- a/arch/arm/mach-omap2/voltage.c
+++ b/arch/arm/mach-omap2/voltage.c
@@ -1054,6 +1054,9 @@ int __init omap_voltage_late_init(void)
pr_err("%s: Unable to create voltage debugfs main dir\n",
__func__);
list_for_each_entry(voltdm, &voltdm_list, node) {
+ if (!voltdm->scalable)
+ continue;
+
if (voltdm->vdd) {
if (omap_vdd_data_configure(voltdm))
continue;
diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h
index 544029896265..25cfb5c8f06b 100644
--- a/arch/arm/mach-omap2/voltage.h
+++ b/arch/arm/mach-omap2/voltage.h
@@ -53,11 +53,13 @@ struct omap_vfsm_instance_data {
/**
* struct voltagedomain - omap voltage domain global structure.
* @name: Name of the voltage domain which can be used as a unique identifier.
+ * @scalable: Whether or not this voltage domain is scalable
* @node: list_head linking all voltage domains
* @vdd: to be removed
*/
struct voltagedomain {
char *name;
+ bool scalable;
struct list_head node;
struct omap_vdd_info *vdd;
};
diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
index 42d0b112978b..d7e1052d2cdb 100644
--- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
@@ -61,11 +61,13 @@ static struct omap_vdd_info omap3_vdd2_info = {
static struct voltagedomain omap3_voltdm_mpu = {
.name = "mpu_iva",
+ .scalable = true,
.vdd = &omap3_vdd1_info,
};
static struct voltagedomain omap3_voltdm_core = {
.name = "core",
+ .scalable = true,
.vdd = &omap3_vdd2_info,
};
diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c
index 245fdf9cb4a5..95e1ce5822ca 100644
--- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
@@ -70,16 +70,19 @@ static struct omap_vdd_info omap4_vdd_core_info = {
static struct voltagedomain omap4_voltdm_mpu = {
.name = "mpu",
+ .scalable = true,
.vdd = &omap4_vdd_mpu_info,
};
static struct voltagedomain omap4_voltdm_iva = {
.name = "iva",
+ .scalable = true,
.vdd = &omap4_vdd_iva_info,
};
static struct voltagedomain omap4_voltdm_core = {
.name = "core",
+ .scalable = true,
.vdd = &omap4_vdd_core_info,
};