From bb1bd0a9ff6a2a23eff28ba04cc6b38b6245bc92 Mon Sep 17 00:00:00 2001 From: Jishnu Prakash Date: Wed, 8 May 2024 11:22:50 +0530 Subject: [PATCH] dt-bindings: regulator: Add bindings for PM8008 device Add bindings for PM8008 devices. This snapshot is taken from qclinux.1.0 branch commit 93af7f1c6008a ("QCLINUX: arm64: dts: qcom: Add bindings for qcom-i2c-pmic and PM8008 devices"). Change-Id: I8b1e88426bfe7f77c276922df8756be450237f77 Signed-off-by: Jishnu Prakash Signed-off-by: Varshitha H N --- bindings/regulator/qcom,pm8008-chip.yaml | 67 +++++++ bindings/regulator/qcom,pm8008-regulator.yaml | 185 ++++++++++++++++++ 2 files changed, 252 insertions(+) create mode 100644 bindings/regulator/qcom,pm8008-chip.yaml create mode 100644 bindings/regulator/qcom,pm8008-regulator.yaml diff --git a/bindings/regulator/qcom,pm8008-chip.yaml b/bindings/regulator/qcom,pm8008-chip.yaml new file mode 100644 index 00000000..fc98e1b1 --- /dev/null +++ b/bindings/regulator/qcom,pm8008-chip.yaml @@ -0,0 +1,67 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/qcom,pm8008-chip.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies, Inc. PM8008 Regulator's top-level chip + +maintainers: + - Umang Chheda + +description: | + PM8008 is an I2C based PMIC regulator chip. + +properties: + compatible: + const: qcom,pm8008-chip + + reg: + description: + Base address of the device. + + maxItems: 1 + +patternProperties: + "^qcom,pm8008-chip-en+$": + type: object + $ref: /schemas/regulator/regulator.yaml# + + description: | + Chip enable regulator device to control chip enable functionality. + +required: + - compatible + +additionalProperties: false + +examples: + - | + #include + + i2c1 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + pm8008i_chip: 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"; + }; + }; + }; + }; + +... diff --git a/bindings/regulator/qcom,pm8008-regulator.yaml b/bindings/regulator/qcom,pm8008-regulator.yaml new file mode 100644 index 00000000..f989e06a --- /dev/null +++ b/bindings/regulator/qcom,pm8008-regulator.yaml @@ -0,0 +1,185 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/qcom,pm8008-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies, Inc. PM8008 Regulator + +maintainers: + - Umang Chheda + +description: | + PM8008 chips contain 7 LDO regulators along with a top-level chip sleep feature. + +properties: + compatible: + enum: + - qcom,pm8008-regulator + - qcom,pm8010-regulator + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + pm8008_en-supply: + description: + Reference to PM8008 chip enable regulator, which manages + chip enable functionlity of PM8008. + + vdd_l1_l2-supply: + description: + Parent supply for LDO1/LDO2 of PM8008. + + vdd_l3_l4-supply: + description: + Parent supply for LDO3/LDO4 of PM8008. + + vdd_l5-supply: + description: + Parent supply for LDO5 of PM8008. + + vdd_l6-supply: + description: + Parent supply for LDO6 of PM8008. + + vdd_l7-supply: + description: + Parent supply for LDO7 of PM8008. + +patternProperties: + "^regulator@[0-9a-f]+$": + type: object + $ref: /schemas/regulator/regulator.yaml# + + description: | + Individual regulator devices under PM8008 chip. + + properties: + reg: + maxItems: 1 + description: | + Base address of individual LDO. + + qcom,hpm-min-load: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Load current in uA which corresponds to the minimum load + which requires the regulator to be in high power mode. + + qcom,min-dropout-voltage: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Specifies the minimum voltage in microvolts that the parent + supply regulator must output above the output of this + regulator. It is only meaningful if the corresponding parent + supply property has been specified in the first level node. + + qcom,init-voltage: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Specifies the initial voltage in microvolts to for a regulator. + + required: + - reg + +required: + - compatible + - pm8008_en-supply + +additionalProperties: false + +examples: + - | + #include + + i2c1 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + pm8008i_ldo: 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 = <&vreg_s8b_1p2>; + vdd_l3_l4-supply = <&vreg_bob>; + vdd_l5-supply = <&vreg_s1b_1p8>; + vdd_l6-supply = <&vreg_bob>; + vdd_l7-supply = <&vreg_bob>; + + + L1I: pm8008i_l1: regulator@4000 { + reg = <0x4000>; + regulator-name = "pm8008i_l1"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + qcom,min-dropout-voltage = <160000>; + qcom,hpm-min-load = <30000>; + }; + + L2I: pm8008i_l2: regulator@4100 { + reg = <0x4100>; + regulator-name = "pm8008i_l2"; + regulator-min-microvolt = <950000>; + regulator-max-microvolt = <1150000>; + qcom,min-dropout-voltage = <128000>; + qcom,hpm-min-load = <30000>; + }; + + L3I: pm8008i_l3: regulator@4200 { + reg = <0x4200>; + regulator-name = "pm8008i_l3"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3000000>; + qcom,min-dropout-voltage = <144000>; + }; + + L4I: pm8008i_l4: regulator@4300 { + reg = <0x4300>; + regulator-name = "pm8008i_l4"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2900000>; + qcom,min-dropout-voltage = <128000>; + }; + + L5I: pm8008i_l5: regulator@4400 { + reg = <0x4400>; + regulator-name = "pm8008i_l5"; + regulator-min-microvolt = <1700000>; + regulator-max-microvolt = <1900000>; + qcom,min-dropout-voltage = <136000>; + }; + + L6I: pm8008i_l6: regulator@4500 { + reg = <0x4500>; + regulator-name = "pm8008i_l6"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2900000>; + qcom,min-dropout-voltage = <128000>; + }; + + L7I: pm8008i_l7: regulator@4600 { + reg = <0x4600>; + regulator-name = "pm8008i_l7"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3000000>; + qcom,min-dropout-voltage = <312000>; + }; + + }; + }; + }; + +...