From a56241bdb71ed4b28d63e04771e810d53e936401 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 1 Sep 2026 22:02:13 +0200 Subject: [PATCH] dt-bindings: mfd: ab8500: Add regulators The buck converters were not initially added to the device tree or drivers as they are mostly always-on, but their outputs supply devices which need to reference the correct regulator. Describe the six AB8500 buck converters when the regulator node uses "stericsson,ab8500-regulator". Describe the AB8505 converters under their native VSMPSA, VSMPSB, VSAFE, VARM, VSMPSC and VSMPSM names when the node uses "stericsson,ab8505-regulator". Keeping the two namespaces conditional on the regulator compatible avoids representing the distinct AB8505 VSAFE and VSMPSC rails with the AB8500 SMPS3 and VAPE node names. Assisted-by: LLM Acked-by: Conor Dooley Signed-off-by: Linus Walleij Link: https://patch.msgid.link/20260901-ux500-dts-snowball-regulator-v2-8-fe88b01829bf@kernel.org Signed-off-by: Lee Jones --- .../bindings/mfd/stericsson,ab8500.yaml | 122 ++++++++++++++++-- 1 file changed, 114 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml index 873e08266a2b..d819954ee731 100644 --- a/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml +++ b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml @@ -352,6 +352,8 @@ properties: regulator: description: Node describing the AB8500 internal regulators. + LDO means low-dropout regulator. SMPS means switched-mode power + supply; the SMPS regulators described here are buck converters. type: object properties: @@ -467,16 +469,117 @@ properties: $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false + allOf: + - if: + properties: + compatible: + const: stericsson,ab8500-regulator + then: + properties: + ab8500_buck_smps1: + description: Analog buck converter for the VSMPS1 1.2V I/O + and memory supply. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8500_buck_smps2: + description: Analog buck converter for the VSMPS2 1.8V I/O + and memory supply. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8500_buck_smps3: + description: Analog buck converter for VSMPS3, which supplies + the VSAFE power domain. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8500_buck_arm: + description: Analog buck converter for the VARM processor + supply. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8500_buck_ape: + description: Analog buck converter for the VAPE application + processor supply. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8500_buck_mod: + description: Analog buck converter for the VMOD modem supply. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + - if: + properties: + compatible: + const: stericsson,ab8505-regulator + then: + properties: + ab8505_buck_smpsa: + description: Analog buck converter for the VSMPSA 1.2V I/O + and memory supply. The selector range depends on OTP + configuration. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8505_buck_smpsb: + description: Analog buck converter for the VSMPSB 1.8V I/O + and memory supply. The selector range depends on OTP + configuration. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8505_buck_safe: + description: Analog buck converter for the VSAFE permanent + logic and DDR supply. The selector range depends on OTP + configuration. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8505_buck_arm: + description: Analog buck converter for the VARM processor + supply, with a 0.6V to 1.39375V selector range. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8505_buck_smpsc: + description: Analog buck converter for the VSMPSC multimedia + and graphics supply. The selector range depends on OTP + configuration. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + ab8505_buck_smpsm: + description: Analog buck converter for the VSMPSM modem + supply. The selector range depends on OTP configuration. + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + required: - compatible - additionalProperties: false + unevaluatedProperties: false regulator-external: - description: Node describing the AB8500 external regulators. This - concerns the autonomous regulators VSMPS1, VSMPS2 and VSMPS3 - that are normally controlled by external electronics but also - sometimes need to be explicitly controlled by software. + description: Node describing AB8500 control interfaces for external + regulators. AB8500 controls these external devices through the + ExtSupply1Ena, ExtSupply2Ena and ExtSupply3Ena signals and associated + low-power-mode signals. They are distinct from the VSMPS1, VSMPS2 and + VSMPS3 buck converters integrated into AB8500. type: object properties: @@ -484,19 +587,22 @@ properties: const: stericsson,ab8500-ext-regulator ab8500_ext1: - description: The voltage for the VSMPS1 external regulator + description: External regulator controlled through ExtSupply1Ena and + ExtSupply12LPn type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false ab8500_ext2: - description: The voltage for the VSMPS2 external regulator + description: External regulator controlled through ExtSupply2Ena and + ExtSupply12LPn type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false ab8500_ext3: - description: The voltage for the VSMPS3 external regulator + description: External regulator controlled through ExtSupply3Ena and + ExtSupply3LPn type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false