| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcomm Technologies, Inc. RPMh Regulators |
| |
| maintainers: |
| - Bjorn Andersson <bjorn.andersson@linaro.org> |
| - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> |
| |
| description: | |
| rpmh-regulator devices support PMIC regulator management via the Voltage |
| Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators. |
| The APPS processor communicates with these hardware blocks via a |
| Resource State Coordinator (RSC) using command packets. The VRM allows |
| changing three parameters for a given regulator, enable state, output |
| voltage, and operating mode. The XOB allows changing only a single |
| parameter for a given regulator, its enable state. Despite its name, |
| the XOB is capable of controlling the enable state of any PMIC peripheral. |
| It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators |
| which have a fixed voltage and mode. |
| |
| ======================= |
| Required Node Structure |
| ======================= |
| |
| RPMh regulators must be described in two levels of device nodes. The first |
| level describes the PMIC containing the regulators and must reside within an |
| RPMh device node. The second level describes each regulator within the PMIC |
| which is to be used on the board. Each of these regulators maps to a single |
| RPMh resource. |
| |
| The names used for regulator nodes must match those supported by a given |
| PMIC. Supported regulator node names are |
| For PM6150, smps1 - smps5, ldo1 - ldo19 |
| For PM6150L, smps1 - smps8, ldo1 - ldo11, bob |
| For PM6350, smps1 - smps5, ldo1 - ldo22 |
| For PM660, smps1 - smps6, ldo1 - ldo3, ldo5 - ldo19 |
| For PM660L, smps1 - smps3, smps5, ldo1 - ldo8, bob |
| For PM7325, smps1 - smps8, ldo1 - ldo19 |
| For PM8005, smps1 - smps4 |
| For PM8009, smps1 - smps2, ldo1 - ldo7 |
| For PM8150, smps1 - smps10, ldo1 - ldo18 |
| For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb |
| For PM8350, smps1 - smps12, ldo1 - ldo10 |
| For PM8350C, smps1 - smps10, ldo1 - ldo13, bob |
| For PM8450, smps1 - smps6, ldo1 - ldo4 |
| For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2 |
| For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2 |
| For PMI8998, bob |
| For PMR735A, smps1 - smps3, ldo1 - ldo7 |
| For PMX55, smps1 - smps7, ldo1 - ldo16 |
| For PMX65, smps1 - smps8, ldo1 - ldo21 |
| |
| properties: |
| compatible: |
| enum: |
| - qcom,pm6150-rpmh-regulators |
| - qcom,pm6150l-rpmh-regulators |
| - qcom,pm6350-rpmh-regulators |
| - qcom,pm660-rpmh-regulators |
| - qcom,pm660l-rpmh-regulators |
| - qcom,pm7325-rpmh-regulators |
| - qcom,pm8005-rpmh-regulators |
| - qcom,pm8009-rpmh-regulators |
| - qcom,pm8009-1-rpmh-regulators |
| - qcom,pm8150-rpmh-regulators |
| - qcom,pm8150l-rpmh-regulators |
| - qcom,pm8350-rpmh-regulators |
| - qcom,pm8350c-rpmh-regulators |
| - qcom,pm8450-rpmh-regulators |
| - qcom,pm8550-rpmh-regulators |
| - qcom,pm8550ve-rpmh-regulators |
| - qcom,pm8550vs-rpmh-regulators |
| - qcom,pm8998-rpmh-regulators |
| - qcom,pmc8180-rpmh-regulators |
| - qcom,pmc8180c-rpmh-regulators |
| - qcom,pmg1110-rpmh-regulators |
| - qcom,pmi8998-rpmh-regulators |
| - qcom,pmm8155au-rpmh-regulators |
| - qcom,pmm8654au-rpmh-regulators |
| - qcom,pmr735a-rpmh-regulators |
| - qcom,pmx55-rpmh-regulators |
| - qcom,pmx65-rpmh-regulators |
| |
| qcom,pmic-id: |
| description: | |
| RPMh resource name suffix used for the regulators found |
| on this PMIC. |
| $ref: /schemas/types.yaml#/definitions/string |
| enum: [a, b, c, d, e, f, g, h, k] |
| |
| qcom,always-wait-for-ack: |
| description: | |
| Boolean flag which indicates that the application processor |
| must wait for an ACK or a NACK from RPMh for every request |
| sent for this regulator including those which are for a |
| strictly lower power state. |
| $ref: /schemas/types.yaml#/definitions/flag |
| |
| vdd-flash-supply: |
| description: Input supply phandle of flash. |
| |
| vdd-rgb-supply: |
| description: Input supply phandle of rgb. |
| |
| bob: |
| type: object |
| $ref: regulator.yaml# |
| description: BOB regulator node. |
| dependencies: |
| regulator-allow-set-load: [ regulator-allowed-modes ] |
| |
| patternProperties: |
| "^(smps|ldo|lvs|bob)[0-9]+$": |
| type: object |
| $ref: regulator.yaml# |
| description: smps/ldo regulator nodes(s). |
| dependencies: |
| regulator-allow-set-load: [ regulator-allowed-modes ] |
| |
| required: |
| - compatible |
| - qcom,pmic-id |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm6150-rpmh-regulators |
| then: |
| properties: |
| vdd-l2-l3-supply: true |
| vdd-l4-l7-l8-supply: true |
| vdd-l5-l16-l17-l18-l19-supply: true |
| vdd-l10-l14-l15-supply: true |
| vdd-l11-l12-l13-supply: true |
| patternProperties: |
| "^vdd-l[169]-supply$": true |
| "^vdd-s[1-5]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm6150l-rpmh-regulators |
| - qcom,pm8150l-rpmh-regulators |
| - qcom,pmc8180c-rpmh-regulators |
| then: |
| properties: |
| vdd-bob-supply: |
| description: BOB regulator parent supply phandle. |
| vdd-l1-l8-supply: true |
| vdd-l2-l3-supply: true |
| vdd-l4-l5-l6-supply: true |
| vdd-l7-l11-supply: true |
| vdd-l9-l10-supply: true |
| patternProperties: |
| "^vdd-s[1-8]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm660-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l6-l7-supply: true |
| vdd-l2-l3-supply: true |
| vdd-l5-supply: true |
| vdd-l8-l9-l10-l11-l12-l13-l14-supply: true |
| vdd-l15-l16-l17-l18-l19-supply: true |
| patternProperties: |
| "^vdd-s[1-6]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm660l-rpmh-regulators |
| then: |
| properties: |
| vdd-bob-supply: |
| description: BOB regulator parent supply phandle. |
| vdd-l1-l9-l10-supply: true |
| vdd-l2-supply: true |
| vdd-l3-l5-l7-l8-supply: true |
| vdd-l4-l6-supply: true |
| vdd-s3-s4-supply: true |
| patternProperties: |
| "^vdd-s[125]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm7325-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l4-l12-l15-supply: true |
| vdd-l2-l7-supply: true |
| vdd-l6-l9-l10-supply: true |
| vdd-l11-l17-l18-l19-supply: true |
| vdd-l13-supply: true |
| vdd-l14-l16-supply: true |
| patternProperties: |
| "^vdd-l[358]-supply$": true |
| "^vdd-s[1-8]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8005-rpmh-regulators |
| then: |
| patternProperties: |
| "^vdd-s[1-4]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8009-rpmh-regulators |
| - qcom,pm8009-1-rpmh-regulators |
| then: |
| properties: |
| vdd-l5-l6-supply: true |
| patternProperties: |
| "^vdd-l[1-47]-supply$": true |
| "^vdd-s[1-2]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8150-rpmh-regulators |
| - qcom,pmc8180-rpmh-regulators |
| - qcom,pmm8155au-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l8-l11-supply: true |
| vdd-l2-l10-supply: true |
| vdd-l3-l4-l5-l18-supply: true |
| vdd-l6-l9-supply: true |
| vdd-l7-l12-l14-l15-supply: true |
| vdd-l13-l16-l17-supply: true |
| patternProperties: |
| "^vdd-s([1-9]|10)-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pmm8654au-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-supply: true |
| vdd-l2-l3-supply: true |
| vdd-l4-supply: true |
| vdd-l5-supply: true |
| vdd-l6-l7-supply: true |
| vdd-l8-l9-supply: true |
| patternProperties: |
| "^vdd-s[1-9]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8350-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l4-supply: true |
| vdd-l2-l7-supply: true |
| vdd-l3-l5-supply: true |
| vdd-l6-l9-l10-supply: true |
| vdd-l8-supply: true |
| patternProperties: |
| "^vdd-s([1-9]|1[0-2])-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8350c-rpmh-regulators |
| then: |
| properties: |
| vdd-bob-supply: |
| description: BOB regulator parent supply phandle. |
| vdd-l1-l12-supply: true |
| vdd-l2-l8-supply: true |
| vdd-l3-l4-l5-l7-l13-supply: true |
| vdd-l6-l9-l11-supply: true |
| vdd-l10-supply: true |
| patternProperties: |
| "^vdd-s([1-9]|10)-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8450-rpmh-regulators |
| then: |
| patternProperties: |
| "^vdd-l[1-4]-supply$": true |
| "^vdd-s[1-6]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8550-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l4-l10-supply: true |
| vdd-l2-l13-l14-supply: true |
| vdd-l5-l16-supply: true |
| vdd-l6-l7-supply: true |
| vdd-l8-l9-supply: true |
| patternProperties: |
| "^vdd-l(3|1[1-7])-supply$": true |
| "^vdd-s[1-6]-supply$": true |
| "^vdd-bob[1-2]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8550ve-rpmh-regulators |
| - qcom,pm8550vs-rpmh-regulators |
| then: |
| patternProperties: |
| "^vdd-l[1-3]-supply$": true |
| "^vdd-s[1-6]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pm8998-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l27-supply: true |
| vdd-l2-l8-l17-supply: true |
| vdd-l3-l11-supply: true |
| vdd-l4-l5-supply: true |
| vdd-l6-supply: true |
| vdd-l7-l12-l14-l15-supply: true |
| vdd-l9-supply: true |
| vdd-l10-l23-l25-supply: true |
| vdd-l13-l19-l21-supply: true |
| vdd-l16-l28-supply: true |
| vdd-l18-l22-supply: true |
| vdd-l20-l24-supply: true |
| vdd-l26-supply: true |
| vin-lvs-1-2-supply: true |
| patternProperties: |
| "^vdd-s([1-9]|1[0-3])-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pmg1110-rpmh-regulators |
| then: |
| properties: |
| vdd-s1-supply: true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pmi8998-rpmh-regulators |
| then: |
| properties: |
| vdd-bob-supply: |
| description: BOB regulator parent supply phandle. |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pmr735a-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l2-supply: true |
| vdd-l3-supply: true |
| vdd-l4-supply: true |
| vdd-l5-l6-supply: true |
| vdd-l7-bob-supply: true |
| patternProperties: |
| "^vdd-s[1-3]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pmx55-rpmh-regulators |
| then: |
| properties: |
| vdd-l1-l2-supply: true |
| vdd-l3-l9-supply: true |
| vdd-l4-l12-supply: true |
| vdd-l5-l6-supply: true |
| vdd-l7-l8-supply: true |
| vdd-l10-l11-l13-supply: true |
| patternProperties: |
| "^vdd-l1[4-6]-supply$": true |
| "^vdd-s[1-7]-supply$": true |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,pmx65-rpmh-regulators |
| then: |
| properties: |
| vdd-l2-l18-supply: true |
| vdd-l5-l6-l16-supply: true |
| vdd-l8-l9-supply: true |
| vdd-l11-l13-supply: true |
| patternProperties: |
| "^vdd-l[1347]-supply$": true |
| "^vdd-l1[0245789]-supply$": true |
| "^vdd-l2[01]-supply$": true |
| "^vdd-s[1-8]-supply$": true |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/regulator/qcom,rpmh-regulator.h> |
| |
| pm8998-rpmh-regulators { |
| compatible = "qcom,pm8998-rpmh-regulators"; |
| qcom,pmic-id = "a"; |
| |
| vdd-l7-l12-l14-l15-supply = <&pm8998_s5>; |
| |
| smps2 { |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <1100000>; |
| }; |
| |
| ldo7 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
| regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM |
| RPMH_REGULATOR_MODE_HPM>; |
| regulator-allow-set-load; |
| }; |
| |
| lvs1 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| }; |
| |
| pmi8998-rpmh-regulators { |
| compatible = "qcom,pmi8998-rpmh-regulators"; |
| qcom,pmic-id = "b"; |
| |
| bob { |
| regulator-min-microvolt = <3312000>; |
| regulator-max-microvolt = <3600000>; |
| regulator-allowed-modes = <RPMH_REGULATOR_MODE_AUTO |
| RPMH_REGULATOR_MODE_HPM>; |
| regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; |
| }; |
| }; |
| ... |