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 <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
Link: https://patch.msgid.link/20260901-ux500-dts-snowball-regulator-v2-8-fe88b01829bf@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
Linus Walleij 2026-09-01 22:02:13 +02:00 committed by Lee Jones
parent 4119908f33
commit a56241bdb7

View File

@ -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