aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-s3c2440
diff options
context:
space:
mode:
authorBalaji Rao <balajirrao@openmoko.org>2008-11-20 19:46:51 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-20 19:46:51 +0000
commit1df2598dfebdd1df5bb81c5c8d52fb311c49a7bb (patch)
treeedc6e7a329ac854555216a310851a03328dbee51 /arch/arm/mach-s3c2440
parent003285f5a73979c5909d829e50465b582ee6ccf5 (diff)
remove_pcf50633_voltage_rails_and_friends.patch
1. Removes pmu_voltage_rails stuff and replaces it with regulator_init_data[] 2. Removes voltage_ldoX and other /sys attributes. 3. Introduces s3c2410_pm_begin method to call regulator_suspend_prepare()
Diffstat (limited to 'arch/arm/mach-s3c2440')
-rw-r--r--arch/arm/mach-s3c2440/mach-gta02.c219
1 files changed, 94 insertions, 125 deletions
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index d0d7476602b..340f45753e6 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -616,98 +616,76 @@ struct pcf50633_platform_data gta02_pcf_pdata = {
/* warning: these get rewritten during machine init below
* depending on pcb variant
*/
- .rails = {
+ .reg_init_data = {
[PCF50633_REGULATOR_AUTO] = {
- .name = "io_3v3",
- .flags = PMU_VRAIL_F_SUSPEND_ON,
- .voltage = {
- .init = 3300,
- .max = 3300,
+ .constraints = {
+ .min_uV = 3300000,
+ .max_uV = 3300000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
+ .state_mem = {
+ .enabled = 1,
+ },
},
+ .num_consumer_supplies = 0,
},
[PCF50633_REGULATOR_DOWN1] = {
- .name = "core_1v3",
- /* Wow, when we are going into suspend, after pcf50633
- * runs its suspend (which happens real early since it
- * is an i2c device) we are running out of the 22uF cap
- * on core_1v3 rail !!!!
- */
- .voltage = {
- .init = 1300,
- .max = 1600,
+ .constraints = {
+ .min_uV = 1300000,
+ .max_uV = 1600000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
},
+ .num_consumer_supplies = 0,
},
[PCF50633_REGULATOR_DOWN2] = {
- .name = "core_1v8",
- .flags = PMU_VRAIL_F_SUSPEND_ON,
- .voltage = {
- .init = 1800,
- .max = 1800,
+ .constraints = {
+ .min_uV = 1800000,
+ .max_uV = 1800000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
+ .state_mem = {
+ .enabled = 1,
+ },
},
+ .num_consumer_supplies = 0,
},
[PCF50633_REGULATOR_HCLDO] = {
- .name = "sd_3v3",
- .voltage = {
- .init = 2000,
- .max = 3300,
+ .constraints = {
+ .min_uV = 2000000,
+ .max_uV = 3300000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
},
+ .num_consumer_supplies = 1,
+ .consumer_supplies = hcldo_consumers,
},
[PCF50633_REGULATOR_LDO1] = {
- .name = "gsensor_3v3",
- .voltage = {
- .init = 1300,
- .max = 1330,
+ .constraints = {
+ .min_uV = 1300000,
+ .max_uV = 1300000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
},
+ .num_consumer_supplies = 0,
},
[PCF50633_REGULATOR_LDO2] = {
- .name = "codec_3v3",
- .voltage = {
- .init = 3300,
- .max = 3300,
+ .constraints = {
+ .min_uV = 3300000,
+ .max_uV = 3300000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
},
+ .num_consumer_supplies = 0,
},
[PCF50633_REGULATOR_LDO3] = {
- .name = "unused3",
- .voltage = {
- .init = 3000,
- .max = 3000,
- },
- },
- [PCF50633_REGULATOR_LDO4] = {
- .name = "bt_3v2",
- .voltage = {
- .init = 2500,
- .max = 3300,
- },
- },
- [PCF50633_REGULATOR_LDO5] = {
- .name = "rf3v",
- .voltage = {
- .init = 1500,
- .max = 1500,
- },
- },
- [PCF50633_REGULATOR_LDO6] = {
- .name = "lcm_3v",
- .flags = PMU_VRAIL_F_SUSPEND_ON,
- .voltage = {
- .init = 0,
- .max = 3300,
- },
- },
- [PCF50633_REGULATOR_MEMLDO] = {
- .name = "memldo",
- .flags = PMU_VRAIL_F_SUSPEND_ON,
- .voltage = {
- .init = 1800,
- .max = 1800,
+ .constraints = {
+ .min_uV = 3000000,
+ .max_uV = 3000000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .apply_uV = 1,
},
+ .num_consumer_supplies = 0,
},
- },
- .attach_child_devices = gta02_pcf50633_attach_child_devices,
- .regulator_registered = gta02_pcf50633_regulator_registered,
-
- .reg_init_data = {
[PCF50633_REGULATOR_LDO4] = {
.constraints = {
.min_uV = 3200000,
@@ -720,92 +698,83 @@ struct pcf50633_platform_data gta02_pcf_pdata = {
},
[PCF50633_REGULATOR_LDO5] = {
.constraints = {
- .min_uV = 3000000,
- .max_uV = 3000000,
+ .min_uV = 1500000,
+ .max_uV = 1500000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
.apply_uV = 1,
},
.num_consumer_supplies = 1,
.consumer_supplies = ldo5_consumers,
},
- [PCF50633_REGULATOR_HCLDO] = {
+ [PCF50633_REGULATOR_LDO6] = {
.constraints = {
- .min_uV = 2000000,
+ .min_uV = 0,
.max_uV = 3300000,
.valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .state_mem = {
+ .enabled = 1,
+ },
},
- .num_consumer_supplies = 1,
- .consumer_supplies = hcldo_consumers,
+ .num_consumer_supplies = 0,
+ },
+ [PCF50633_REGULATOR_MEMLDO] = {
+ .constraints = {
+ .min_uV = 1800000,
+ .max_uV = 1800000,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .state_mem = {
+ .enabled = 1,
+ },
+ },
+ .num_consumer_supplies = 0,
},
},
-
+ .attach_child_devices = gta02_pcf50633_attach_child_devices,
+ .regulator_registered = gta02_pcf50633_regulator_registered,
};
-#if 0 /* currently unused */
-static void cfg_pmu_vrail(struct pmu_voltage_rail *vrail, char *name,
- unsigned int flags, unsigned int init,
- unsigned int max)
-{
- vrail->name = name;
- vrail->flags = flags;
- vrail->voltage.init = init;
- vrail->voltage.max = max;
-}
-#endif
-
static void mangle_pmu_pdata_by_system_rev(void)
{
+ struct regulator_init_data *reg_init_data;
+
+ reg_init_data = gta02_pcf_pdata.reg_init_data;
+
switch (system_rev) {
case GTA02v1_SYSTEM_REV:
/* FIXME: this is only in v1 due to wrong PMU variant */
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].flags =
- PMU_VRAIL_F_SUSPEND_ON;
+ reg_init_data[PCF50633_REGULATOR_DOWN2]
+ .constraints.state_mem.enabled = 1;
break;
case GTA02v2_SYSTEM_REV:
case GTA02v3_SYSTEM_REV:
case GTA02v4_SYSTEM_REV:
case GTA02v5_SYSTEM_REV:
case GTA02v6_SYSTEM_REV:
- /* we need to keep the 1.8V going since this is the SDRAM
- * self-refresh voltage */
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].flags =
- PMU_VRAIL_F_SUSPEND_ON;
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_DOWN2].name =
- "io_1v8",
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].name =
- "gsensor_3v3",
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].voltage.init =
- 3300;
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].voltage.max =
- 3300;
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO1].flags &=
- ~PMU_VRAIL_F_SUSPEND_ON;
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO3].flags =
- PMU_VRAIL_F_UNUSED;
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO5] = ((struct pmu_voltage_rail) {
- .name = "rf_3v",
- .voltage = {
- .init = 0,
- .max = 3000,
- }
- });
- gta02_pcf_pdata.rails[PCF50633_REGULATOR_LDO6] =
- ((struct pmu_voltage_rail) {
- .name = "lcm_3v",
- .flags = PMU_VRAIL_F_SUSPEND_ON,
- .voltage = {
- .init = 3000,
- .max = 3000,
- }
- });
+ reg_init_data[PCF50633_REGULATOR_LDO1]
+ .constraints.min_uV = 3300000;
+ reg_init_data[PCF50633_REGULATOR_LDO1]
+ .constraints.min_uV = 3300000;
+ reg_init_data[PCF50633_REGULATOR_LDO1]
+ .constraints.state_mem.enabled = 0;
+
+ reg_init_data[PCF50633_REGULATOR_LDO5]
+ .constraints.min_uV = 3000000;
+ reg_init_data[PCF50633_REGULATOR_LDO5]
+ .constraints.max_uV = 3000000;
+
+ reg_init_data[PCF50633_REGULATOR_LDO6]
+ .constraints.min_uV = 3000000;
+ reg_init_data[PCF50633_REGULATOR_LDO6]
+ .constraints.max_uV = 3000000;
+ reg_init_data[PCF50633_REGULATOR_LDO6]
+ .constraints.apply_uV = 1;
break;
default:
break;
}
}
-
#ifdef CONFIG_GTA02_HDQ
/* HDQ */