[PATCH v3 12/14] ARM: dts: exynos4412-trats: Switch max77686 regulators to GPIO control
From: Krzysztof Kozlowski <hidden>
Date: 2014-10-30 11:22:39
Also in:
linux-devicetree, linux-samsung-soc, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
Remove fixed regulators (duplicating what max77686 provides) and add GPIO control to max77686 regulators. Add of_compatible to voltage-regulators node. This gives the system full control over those regulators. Previously the state of such regulators was a mixture of what max77686 driver set over I2C and what regulator-fixed set through GPIO. Removal of 'regulator-always-on' from CAM_ISP_CORE_1.2V (buck9) allows disabling it when it is not used. Previously this regulator was always enabled because its enable state is a OR of: - ENB9 GPIO (turned by regulator-fixed), - BUCK9EN field in BUCK9CTRL register (max77686 through I2C). Signed-off-by: Krzysztof Kozlowski <redacted> --- arch/arm/boot/dts/exynos4412-trats2.dts | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-)
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 7a68e0832cd6..ebbd12d1fe9a 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts@@ -58,15 +58,6 @@ #address-cells = <1>; #size-cells = <0>; - vemmc_reg: regulator-0 { - compatible = "regulator-fixed"; - regulator-name = "VMEM_VDD_2.8V"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - gpio = <&gpk0 2 0>; - enable-active-high; - }; - cam_io_reg: voltage-regulator-1 { compatible = "regulator-fixed"; regulator-name = "CAM_SENSOR_A";
@@ -94,16 +85,6 @@ enable-active-high; }; - cam_isp_core_reg: voltage-regulator-4 { - compatible = "regulator-fixed"; - regulator-name = "CAM_ISP_CORE_1.2V_EN"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; - gpio = <&gpm0 3 0>; - enable-active-high; - regulator-always-on; - }; - ps_als_reg: voltage-regulator-5 { compatible = "regulator-fixed"; regulator-name = "LED_A_3.0V";
@@ -221,6 +202,13 @@ #clock-cells = <1>; voltage-regulators { + compatible = "maxim,max77686-pmic"; + + ldo21-gpio = <&gpy2 0 GPIO_ACTIVE_HIGH>; + ldo22-gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>; + buck8-gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>; + buck9-gpio = <&gpm0 3 GPIO_ACTIVE_HIGH>; + ldo1_reg: ldo1 { regulator-compatible = "LDO1"; regulator-name = "VALIVE_1.0V_AP";
@@ -591,7 +579,7 @@ broken-cd; non-removable; card-detect-delay = <200>; - vmmc-supply = <&vemmc_reg>; + vmmc-supply = <&ldo22_reg>; clock-frequency = <400000000>; samsung,dw-mshc-ciu-div = <0>; samsung,dw-mshc-sdr-timing = <2 3>;
--
1.9.1