Re: [PATCH v7 01/16] regulator: dt-bindings: describe the PMU module of the QCA6390 package

Dmitry Baryshkov
2024-04-24T20:48:15Z

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
>

--
With best wishes
Dmitry