msm: pil-riva: Add support for APQ8064 regulators
AQP8064 has a different power grid than MSM8960. The Riva rail's
voltage is not longer supplied directly by a regulator, but by a
switch instead. Skip regulator voltage setting on 8064.
Change-Id: Ieb35dc10831ab0a173311ccc9dbf904497159251
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8064-regulator.c b/arch/arm/mach-msm/board-8064-regulator.c
index 6e3612a..ee5c5b6 100644
--- a/arch/arm/mach-msm/board-8064-regulator.c
+++ b/arch/arm/mach-msm/board-8064-regulator.c
@@ -174,6 +174,7 @@
};
VREG_CONSUMERS(LVS7) = {
REGULATOR_SUPPLY("8921_lvs7", NULL),
+ REGULATOR_SUPPLY("pll_vdd", "pil_riva"),
};
VREG_CONSUMERS(USB_OTG) = {
REGULATOR_SUPPLY("8921_usb_otg", NULL),
diff --git a/arch/arm/mach-msm/pil-riva.c b/arch/arm/mach-msm/pil-riva.c
index 29a9df9..bd49fc0 100644
--- a/arch/arm/mach-msm/pil-riva.c
+++ b/arch/arm/mach-msm/pil-riva.c
@@ -372,16 +372,20 @@
dev_err(&pdev->dev, "failed to get pll supply\n");
return PTR_ERR(drv->pll_supply);
}
- ret = regulator_set_voltage(drv->pll_supply, 1800000, 1800000);
- if (ret) {
- dev_err(&pdev->dev, "failed to set pll supply voltage\n");
- goto err;
- }
+ if (regulator_count_voltages(drv->pll_supply) > 0) {
+ ret = regulator_set_voltage(drv->pll_supply, 1800000, 1800000);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "failed to set pll supply voltage\n");
+ goto err;
+ }
- ret = regulator_set_optimum_mode(drv->pll_supply, 100000);
- if (ret < 0) {
- dev_err(&pdev->dev, "failed to set pll supply optimum mode\n");
- goto err;
+ ret = regulator_set_optimum_mode(drv->pll_supply, 100000);
+ if (ret < 0) {
+ dev_err(&pdev->dev,
+ "failed to set pll supply optimum mode\n");
+ goto err;
+ }
}
desc->name = "wcnss";