From 189a11723e23a448e0b7ea5b27de590659c9f42e Mon Sep 17 00:00:00 2001 From: Nicholas Troast Date: Tue, 2 Feb 2016 13:50:59 -0800 Subject: [PATCH] ARM: dts: msm: add pin control regulators for WLAN and BT on msmcobalt Initialize PMCOBALT regulators SMPS 7 and LDO 5 to use HW_EN0 pin control to force high power mode. Whenever HW_EN0 is driven high these regulators will be forced into high power mode. HW_EN0 is driven high whenever WLAN is transmitting or receiving, thereby reducing power when it is not active. Initialize PMCOBALT regulators SMPS 3 and SMPS 5 to use HW_EN2 pin control to force high power mode. Whenever HW_EN2 is driven high these regulators will be forced into high power mode. Add pin control regulator devices for PMCOBALT regulators LDO 7, LDO 17, and LDO 25. When any of these pin control regulators are enabled by software their output will be physically enabled whenever HW_EN2 is driven high. When disabled HW_EN2 is ignored. HW_EN2 is driven high whenever BT is transmitting or receiving, thereby reducing power when it is not active. CRs-Fixed: 971169 Change-Id: I819299fefde72400a18fb8503aedd1a1f32bfe7b Signed-off-by: Nicholas Troast --- .../boot/dts/qcom/msmcobalt-regulator.dtsi | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi index f3ea5a7fcc10..8f0db7258495 100644 --- a/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi +++ b/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi @@ -63,6 +63,8 @@ pmcobalt_s3: regulator-s3 { regulator-min-microvolt = <1352000>; regulator-max-microvolt = <1352000>; + /* Force PWM follows HW2_EN */ + qcom,init-pin-ctrl-mode = <4>; status = "okay"; }; }; @@ -81,6 +83,8 @@ pmcobalt_s5: regulator-s5 { regulator-min-microvolt = <2040000>; regulator-max-microvolt = <2040000>; + /* Force PWM follows HW2_EN */ + qcom,init-pin-ctrl-mode = <4>; status = "okay"; }; }; @@ -90,6 +94,8 @@ pmcobalt_s7: regulator-s7 { regulator-min-microvolt = <1028000>; regulator-max-microvolt = <1028000>; + /* Force PWM follows HW0_EN */ + qcom,init-pin-ctrl-mode = <1>; status = "okay"; }; }; @@ -200,6 +206,8 @@ pmcobalt_l5: regulator-l5 { regulator-min-microvolt = <800000>; regulator-max-microvolt = <800000>; + /* Force NPM follows HW0_EN */ + qcom,init-pin-ctrl-mode = <1>; status = "okay"; }; }; @@ -220,6 +228,16 @@ regulator-max-microvolt = <1800000>; status = "okay"; }; + + pmcobalt_l7_pin_ctrl: regulator-l7-pin-ctrl { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmcobalt_l7_pin_ctrl"; + qcom,set = <3>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + /* Enable follows HW_EN2 */ + qcom,enable-with-pin-ctrl = <0 4>; + }; }; rpm-regulator-ldoa8 { @@ -310,6 +328,16 @@ regulator-max-microvolt = <1304000>; status = "okay"; }; + + pmcobalt_l17_pin_ctrl: regulator-l17-pin-ctrl { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmcobalt_l17_pin_ctrl"; + qcom,set = <3>; + regulator-min-microvolt = <1304000>; + regulator-max-microvolt = <1304000>; + /* Enable follows HW_EN2 */ + qcom,enable-with-pin-ctrl = <0 4>; + }; }; rpm-regulator-ldoa18 { @@ -381,6 +409,16 @@ regulator-max-microvolt = <3312000>; status = "okay"; }; + + pmcobalt_l25_pin_ctrl: regulator-l25-pin-ctrl { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmcobalt_l25_pin_ctrl"; + qcom,set = <3>; + regulator-min-microvolt = <3312000>; + regulator-max-microvolt = <3312000>; + /* Enable follows HW_EN2 */ + qcom,enable-with-pin-ctrl = <0 4>; + }; }; rpm-regulator-ldoa26 {