msm: board-msm8960: switch to RPM control for most regulators
Switch control of most regulators from the pm8921-regulator
driver to the rpm-regulator driver. pm8921-regulator will still
be used for USB_OTG and HDMI_MVS. pm8921-regulator will also
remain in use for LDO 26, 27, 28, and 29 because these are not
handled by the RPM. saw-regulator will continue to be used for
8921_s5 and 8921_s6 (Krait rail supplies).
Also un-stub functions rpm_vreg_set_voltage and
rpm_vreg_set_frequency now that they can safely be called.
Signed-off-by: David Collins <collinsd@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c
index 240b004..0b2a623 100644
--- a/arch/arm/mach-msm/board-msm8960.c
+++ b/arch/arm/mach-msm/board-msm8960.c
@@ -2676,7 +2676,7 @@
};
#endif
-struct platform_device msm8960_device_ext_5v_vreg __devinitdata = {
+static struct platform_device msm8960_device_ext_5v_vreg __devinitdata = {
.name = GPIO_REGULATOR_DEV_NAME,
.id = PM8921_MPP_PM_TO_SYS(7),
.dev = {
@@ -2684,7 +2684,7 @@
},
};
-struct platform_device msm8960_device_ext_l2_vreg __devinitdata = {
+static struct platform_device msm8960_device_ext_l2_vreg __devinitdata = {
.name = GPIO_REGULATOR_DEV_NAME,
.id = 91,
.dev = {
@@ -2692,6 +2692,14 @@
},
};
+static struct platform_device msm8960_device_rpm_regulator __devinitdata = {
+ .name = "rpm-regulator",
+ .id = -1,
+ .dev = {
+ .platform_data = &msm_rpm_regulator_pdata,
+ },
+};
+
static struct platform_device *common_devices[] __initdata = {
&msm8960_device_dmov,
&msm_device_smd,
@@ -3389,6 +3397,7 @@
BUG_ON(msm_rpmrs_levels_init(msm_rpmrs_levels,
ARRAY_SIZE(msm_rpmrs_levels)));
regulator_suppress_info_printing();
+ platform_device_register(&msm8960_device_rpm_regulator);
msm_clock_init(&msm8960_clock_init_data);
msm8960_device_ssbi_pm8921.dev.platform_data =
&msm8960_ssbi_pm8921_pdata;
@@ -3434,6 +3443,7 @@
BUG_ON(msm_rpmrs_levels_init(msm_rpmrs_levels,
ARRAY_SIZE(msm_rpmrs_levels)));
regulator_suppress_info_printing();
+ platform_device_register(&msm8960_device_rpm_regulator);
msm_clock_init(&msm8960_dummy_clock_init_data);
gpiomux_init();
ethernet_init();
@@ -3472,6 +3482,7 @@
regulator_suppress_info_printing();
if (msm_xo_init())
pr_err("Failed to initialize XO votes\n");
+ platform_device_register(&msm8960_device_rpm_regulator);
msm_clock_init(&msm8960_clock_init_data);
msm8960_device_otg.dev.platform_data = &msm_otg_pdata;
msm8960_device_gadget_peripheral.dev.parent = &msm8960_device_otg.dev;