ARM: dts: qcom: switch to I2C control of PM8008 PMIC regulators for Lahaina

Add support for managing the PM8008I and PM8008J chips via I2C.
Replace the stub-regulator device nodes for these PMICs with
subnodes inside of the respective I2C devices.  This ensures
that consumers are able to modify the physical state of these
PMIC regulators.

Change-Id: Ieb4976ecd8818c7515c2fbf61c754518215fd5bd
This commit is contained in:
David Collins 2020-01-09 16:27:20 -08:00
commit ebd2d10ede
4 changed files with 242 additions and 115 deletions

View file

@ -1534,6 +1534,34 @@
};
};
pm8008i_active: pm8008i_active {
mux {
pins = "gpio33";
function = "gpio";
};
config {
pins = "gpio33";
bias-disable;
output-high;
drive-strength = <2>;
};
};
pm8008j_active: pm8008j_active {
mux {
pins = "gpio35";
function = "gpio";
};
config {
pins = "gpio35";
bias-disable;
output-high;
drive-strength = <2>;
};
};
pcie0 {
pcie0_perst_default: pcie0_perst_default {
mux {

View file

@ -18,3 +18,213 @@
};
};
};
&qupv3_se13_i2c {
#address-cells = <1>;
#size-cells = <0>;
status = "ok"
pm8008i@8 {
compatible = "qcom,i2c-pmic";
reg = <0x8>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pm8008i_active>;
pm8008-chip@900 {
compatible = "qcom,pm8008-chip";
reg = <0x900>;
PM8008I_EN: qcom,pm8008-chip-en {
regulator-name = "pm8008i-chip-en";
};
};
qcom,revid@100 {
compatible = "qcom,qpnp-revid";
reg = <0x100>;
};
};
pm8008i@9 {
compatible = "qcom,i2c-pmic";
reg = <0x9>;
#address-cells = <1>;
#size-cells = <0>;
qcom,pm8008i-regulator {
compatible = "qcom,pm8008-regulator";
#address-cells = <1>;
#size-cells = <0>;
pm8008_en-supply = <&PM8008I_EN>;
vdd_l1_l2-supply = <&S12B>;
vdd_l3_l4-supply = <&BOB>;
vdd_l5-supply = <&S1C>;
vdd_l6-supply = <&BOB>;
vdd_l7-supply = <&BOB>;
L1I: pm8008i_l1: regulator@4000 {
reg = <0x4000>;
regulator-name = "pm8008i_l1";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1104000>;
qcom,min-dropout-voltage = <224000>;
qcom,hpm-min-load = <30000>;
};
L2I: pm8008i_l2: regulator@4100 {
reg = <0x4100>;
regulator-name = "pm8008i_l2";
regulator-min-microvolt = <944000>;
regulator-max-microvolt = <1152000>;
qcom,min-dropout-voltage = <150000>;
qcom,hpm-min-load = <30000>;
};
L3I: pm8008i_l3: regulator@4200 {
reg = <0x4200>;
regulator-name = "pm8008i_l3";
regulator-min-microvolt = <2696000>;
regulator-max-microvolt = <3000000>;
qcom,min-dropout-voltage = <200000>;
};
L4I: pm8008i_l4: regulator@4300 {
reg = <0x4300>;
regulator-name = "pm8008i_l4";
regulator-min-microvolt = <2696000>;
regulator-max-microvolt = <2904000>;
qcom,min-dropout-voltage = <200000>;
};
L5I: pm8008i_l5: regulator@4400 {
reg = <0x4400>;
regulator-name = "pm8008i_l5";
regulator-min-microvolt = <1696000>;
regulator-max-microvolt = <1800000>;
qcom,min-dropout-voltage = <70000>;
};
L6I: pm8008i_l6: regulator@4500 {
reg = <0x4500>;
regulator-name = "pm8008i_l6";
regulator-min-microvolt = <2696000>;
regulator-max-microvolt = <2904000>;
qcom,min-dropout-voltage = <200000>;
};
L7I: pm8008i_l7: regulator@4600 {
reg = <0x4600>;
regulator-name = "pm8008i_l7";
regulator-min-microvolt = <2696000>;
regulator-max-microvolt = <3000000>;
qcom,min-dropout-voltage = <200000>;
};
};
};
pm8008j@c {
compatible = "qcom,i2c-pmic";
reg = <0xc>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pm8008j_active>;
pm8008-chip@900 {
compatible = "qcom,pm8008-chip";
reg = <0x900>;
PM8008J_EN: qcom,pm8008-chip-en {
regulator-name = "pm8008j-chip-en";
};
};
qcom,revid@100 {
compatible = "qcom,qpnp-revid";
reg = <0x100>;
};
};
pm8008j@d {
compatible = "qcom,i2c-pmic";
reg = <0xd>;
#address-cells = <1>;
#size-cells = <0>;
qcom,pm8008j-regulator {
compatible = "qcom,pm8008-regulator";
#address-cells = <1>;
#size-cells = <0>;
pm8008_en-supply = <&PM8008J_EN>;
vdd_l1_l2-supply = <&S12B>;
vdd_l3_l4-supply = <&S1C>;
vdd_l5-supply = <&BOB>;
vdd_l6-supply = <&BOB>;
vdd_l7-supply = <&BOB>;
L1J: pm8008j_l1: regulator@4000 {
reg = <0x4000>;
regulator-name = "pm8008j_l1";
regulator-min-microvolt = <944000>;
regulator-max-microvolt = <1152000>;
qcom,min-dropout-voltage = <100000>;
qcom,hpm-min-load = <30000>;
};
L2J: pm8008j_l2: regulator@4100 {
reg = <0x4100>;
regulator-name = "pm8008j_l2";
regulator-min-microvolt = <944000>;
regulator-max-microvolt = <1056000>;
qcom,min-dropout-voltage = <225000>;
qcom,hpm-min-load = <30000>;
};
L3J: pm8008j_l3: regulator@4200 {
reg = <0x4200>;
regulator-name = "pm8008j_l3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
qcom,min-dropout-voltage = <70000>;
};
L4J: pm8008j_l4: regulator@4300 {
reg = <0x4300>;
regulator-name = "pm8008j_l4";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
qcom,min-dropout-voltage = <70000>;
};
L5J: pm8008j_l5: regulator@4400 {
reg = <0x4400>;
regulator-name = "pm8008j_l5";
regulator-min-microvolt = <2696000>;
regulator-max-microvolt = <2904000>;
qcom,min-dropout-voltage = <200000>;
};
L6J: pm8008j_l6: regulator@4500 {
reg = <0x4500>;
regulator-name = "pm8008j_l6";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
qcom,min-dropout-voltage = <200000>;
};
L7J: pm8008j_l7: regulator@4600 {
reg = <0x4600>;
regulator-name = "pm8008j_l7";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3600000>;
qcom,min-dropout-voltage = <200000>;
};
};
};
};

View file

@ -876,121 +876,6 @@
};
};
/* Stub regulators: */
/ {
L1I: pm8008i_l1: regulator-pm8008i-l1 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l1";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1200000>;
qcom,hpm-min-load = <30000>;
};
L2I: pm8008i_l2: regulator-pm8008i-l2 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l2";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1150000>;
qcom,hpm-min-load = <30000>;
};
L3I: pm8008i_l3: regulator-pm8008i-l3 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l3";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3000000>;
qcom,hpm-min-load = <10000>;
};
L4I: pm8008i_l4: regulator-pm8008i-l4 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l4";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2900000>;
qcom,hpm-min-load = <10000>;
};
L5I: pm8008i_l5: regulator-pm8008i-l5 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l5";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
qcom,hpm-min-load = <10000>;
};
L6I: pm8008i_l6: regulator-pm8008i-l6 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l6";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2900000>;
qcom,hpm-min-load = <10000>;
};
L7I: pm8008i_l7: regulator-pm8008i-l7 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008i_l7";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3000000>;
qcom,hpm-min-load = <10000>;
};
L1J: pm8008j_l1: regulator-pm8008j-l1 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l1";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1150000>;
qcom,hpm-min-load = <30000>;
};
L2J: pm8008j_l2: regulator-pm8008j-l2 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l2";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1150000>;
qcom,hpm-min-load = <30000>;
};
L3J: pm8008j_l3: regulator-pm8008j-l3 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
qcom,hpm-min-load = <10000>;
};
L4J: pm8008j_l4: regulator-pm8008j-l4 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l4";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
qcom,hpm-min-load = <10000>;
};
L5J: pm8008j_l5: regulator-pm8008j-l5 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l5";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2900000>;
qcom,hpm-min-load = <10000>;
};
L6J: pm8008j_l6: regulator-pm8008j-l6 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l6";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
qcom,hpm-min-load = <10000>;
};
L7J: pm8008j_l7: regulator-pm8008j-l7 {
compatible = "qcom,stub-regulator";
regulator-name = "pm8008j_l7";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3600000>;
qcom,hpm-min-load = <10000>;
};
};
&soc {
refgen: refgen-regulator@88e7000 {
compatible = "qcom,refgen-kona-regulator";

View file

@ -107,6 +107,10 @@
};
};
&qupv3_se13_i2c {
status = "disabled";
};
&gpu_cc_cx_gdsc {
qcom,gds-timeout = <5000>;
};