Message ID | 20240410124628.171783-2-brgl@bgdev.pl (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | power: sequencing: implement the subsystem and add first users | expand |
On Wed, 10 Apr 2024 at 15:46, Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > The QCA6390 package contains discreet modules for WLAN and Bluetooth. They > are powered by the Power Management Unit (PMU) that takes inputs from the > host and provides LDO outputs. This document describes this module. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > Acked-by: Mark Brown <broonie@kernel.org> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > .../bindings/regulator/qcom,qca6390-pmu.yaml | 151 ++++++++++++++++++ > 1 file changed, 151 insertions(+) > create mode 100644 Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml > > diff --git a/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml b/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml > new file mode 100644 > index 000000000000..9d39ff9a75fd > --- /dev/null > +++ b/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml > @@ -0,0 +1,151 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/regulator/qcom,qca6390-pmu.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Technologies, Inc. QCA6390 PMU Regulators > + > +maintainers: > + - Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > + > +description: > + The QCA6390 package contains discreet modules for WLAN and Bluetooth. They > + are powered by the Power Management Unit (PMU) that takes inputs from the > + host and provides LDO outputs. This document describes this module. > + > +properties: > + compatible: > + const: qcom,qca6390-pmu > + > + vddaon-supply: > + description: VDD_AON supply regulator handle > + > + vddpmu-supply: > + description: VDD_PMU supply regulator handle > + > + vddrfa0p95-supply: > + description: VDD_RFA_0P95 supply regulator handle > + > + vddrfa1p3-supply: > + description: VDD_RFA_1P3 supply regulator handle > + > + vddrfa1p9-supply: > + description: VDD_RFA_1P9 supply regulator handle > + > + vddpcie1p3-supply: > + description: VDD_PCIE_1P3 supply regulator handle<S-Del> > + > + vddpcie1p9-supply: > + description: VDD_PCIE_1P9 supply regulator handle > + > + vddio-supply: > + description: VDD_IO supply regulator handle > + > + wlan-enable-gpios: > + maxItems: 1 > + description: GPIO line enabling the ATH11K WLAN module supplied by the PMU > + > + bt-enable-gpios: > + maxItems: 1 > + description: GPIO line enabling the ATH11K Bluetooth module supplied by the PMU As a side node, I think we should also steal swctrl pin from the bluetooth device node. It represents the status of the PMU and as such it is not BT-specific. > + > + regulators: > + type: object > + description: > + LDO outputs of the PMU > + > + patternProperties: > + "^ldo[0-9]$": > + $ref: regulator.yaml# > + type: object > + unevaluatedProperties: false > + > + additionalProperties: false > + > +required: > + - compatible > + - regulators > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: qcom,qca6390-pmu > + then: > + required: > + - vddaon-supply > + - vddpmu-supply > + - vddrfa0p95-supply > + - vddrfa1p3-supply > + - vddrfa1p9-supply > + - vddpcie1p3-supply > + - vddpcie1p9-supply > + - vddio-supply > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + pmu { > + compatible = "qcom,qca6390-pmu"; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>; > + > + vddaon-supply = <&vreg_s6a_0p95>; > + vddpmu-supply = <&vreg_s2f_0p95>; > + vddrfa0p95-supply = <&vreg_s2f_0p95>; > + vddrfa1p3-supply = <&vreg_s8c_1p3>; > + vddrfa1p9-supply = <&vreg_s5a_1p9>; > + vddpcie1p3-supply = <&vreg_s8c_1p3>; > + vddpcie1p9-supply = <&vreg_s5a_1p9>; > + vddio-supply = <&vreg_s4a_1p8>; > + > + wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>; > + bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; > + > + regulators { > + vreg_pmu_rfa_cmn: ldo0 { > + regulator-name = "vreg_pmu_rfa_cmn"; > + }; > + > + vreg_pmu_aon_0p59: ldo1 { > + regulator-name = "vreg_pmu_aon_0p59"; > + }; > + > + vreg_pmu_wlcx_0p8: ldo2 { > + regulator-name = "vreg_pmu_wlcx_0p8"; > + }; > + > + vreg_pmu_wlmx_0p85: ldo3 { > + regulator-name = "vreg_pmu_wlmx_0p85"; > + }; > + > + vreg_pmu_btcmx_0p85: ldo4 { > + regulator-name = "vreg_pmu_btcmx_0p85"; > + }; > + > + vreg_pmu_rfa_0p8: ldo5 { > + regulator-name = "vreg_pmu_rfa_0p8"; > + }; > + > + vreg_pmu_rfa_1p2: ldo6 { > + regulator-name = "vreg_pmu_rfa_1p2"; > + }; > + > + vreg_pmu_rfa_1p7: ldo7 { > + regulator-name = "vreg_pmu_rfa_1p7"; > + }; > + > + vreg_pmu_pcie_0p9: ldo8 { > + regulator-name = "vreg_pmu_pcie_0p9"; > + }; > + > + vreg_pmu_pcie_1p8: ldo9 { > + regulator-name = "vreg_pmu_pcie_1p8"; > + }; > + }; > + }; > -- > 2.40.1 >
diff --git a/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml b/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml new file mode 100644 index 000000000000..9d39ff9a75fd --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml @@ -0,0 +1,151 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/qcom,qca6390-pmu.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies, Inc. QCA6390 PMU Regulators + +maintainers: + - Bartosz Golaszewski <bartosz.golaszewski@linaro.org> + +description: + The QCA6390 package contains discreet modules for WLAN and Bluetooth. They + are powered by the Power Management Unit (PMU) that takes inputs from the + host and provides LDO outputs. This document describes this module. + +properties: + compatible: + const: qcom,qca6390-pmu + + vddaon-supply: + description: VDD_AON supply regulator handle + + vddpmu-supply: + description: VDD_PMU supply regulator handle + + vddrfa0p95-supply: + description: VDD_RFA_0P95 supply regulator handle + + vddrfa1p3-supply: + description: VDD_RFA_1P3 supply regulator handle + + vddrfa1p9-supply: + description: VDD_RFA_1P9 supply regulator handle + + vddpcie1p3-supply: + description: VDD_PCIE_1P3 supply regulator handle<S-Del> + + vddpcie1p9-supply: + description: VDD_PCIE_1P9 supply regulator handle + + vddio-supply: + description: VDD_IO supply regulator handle + + wlan-enable-gpios: + maxItems: 1 + description: GPIO line enabling the ATH11K WLAN module supplied by the PMU + + bt-enable-gpios: + maxItems: 1 + description: GPIO line enabling the ATH11K Bluetooth module supplied by the PMU + + regulators: + type: object + description: + LDO outputs of the PMU + + patternProperties: + "^ldo[0-9]$": + $ref: regulator.yaml# + type: object + unevaluatedProperties: false + + additionalProperties: false + +required: + - compatible + - regulators + +allOf: + - if: + properties: + compatible: + contains: + const: qcom,qca6390-pmu + then: + required: + - vddaon-supply + - vddpmu-supply + - vddrfa0p95-supply + - vddrfa1p3-supply + - vddrfa1p9-supply + - vddpcie1p3-supply + - vddpcie1p9-supply + - vddio-supply + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + pmu { + compatible = "qcom,qca6390-pmu"; + + pinctrl-names = "default"; + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>; + + vddaon-supply = <&vreg_s6a_0p95>; + vddpmu-supply = <&vreg_s2f_0p95>; + vddrfa0p95-supply = <&vreg_s2f_0p95>; + vddrfa1p3-supply = <&vreg_s8c_1p3>; + vddrfa1p9-supply = <&vreg_s5a_1p9>; + vddpcie1p3-supply = <&vreg_s8c_1p3>; + vddpcie1p9-supply = <&vreg_s5a_1p9>; + vddio-supply = <&vreg_s4a_1p8>; + + wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>; + bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; + + regulators { + vreg_pmu_rfa_cmn: ldo0 { + regulator-name = "vreg_pmu_rfa_cmn"; + }; + + vreg_pmu_aon_0p59: ldo1 { + regulator-name = "vreg_pmu_aon_0p59"; + }; + + vreg_pmu_wlcx_0p8: ldo2 { + regulator-name = "vreg_pmu_wlcx_0p8"; + }; + + vreg_pmu_wlmx_0p85: ldo3 { + regulator-name = "vreg_pmu_wlmx_0p85"; + }; + + vreg_pmu_btcmx_0p85: ldo4 { + regulator-name = "vreg_pmu_btcmx_0p85"; + }; + + vreg_pmu_rfa_0p8: ldo5 { + regulator-name = "vreg_pmu_rfa_0p8"; + }; + + vreg_pmu_rfa_1p2: ldo6 { + regulator-name = "vreg_pmu_rfa_1p2"; + }; + + vreg_pmu_rfa_1p7: ldo7 { + regulator-name = "vreg_pmu_rfa_1p7"; + }; + + vreg_pmu_pcie_0p9: ldo8 { + regulator-name = "vreg_pmu_pcie_0p9"; + }; + + vreg_pmu_pcie_1p8: ldo9 { + regulator-name = "vreg_pmu_pcie_1p8"; + }; + }; + };