* [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
@ 2026-08-21 19:10 Bhargav Joshi
2026-08-21 19:18 ` sashiko-bot
2026-08-30 9:17 ` Krzysztof Kozlowski
0 siblings, 2 replies; 4+ messages in thread
From: Bhargav Joshi @ 2026-08-21 19:10 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thierry Reding
Cc: linux-kernel, devicetree, goledhruva, m-chawdhry, daniel.baluta,
simona.toaca, j.bhargav.u
Convert Texas Instruments tps6586x regulator binding from text to DT
schema. Add child regulator node properties nvidia,tegra-cpu-regulator,
nvidia,tegra-core-regulator, and nvidia,tegra-rtc-regulator that were
missing in text binding but used in existing DTS.
Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com>
---
.../devicetree/bindings/regulator/ti,tps6586x.yaml | 224 +++++++++++++++++++++
.../devicetree/bindings/regulator/tps6586x.txt | 135 -------------
2 files changed, 224 insertions(+), 135 deletions(-)
diff --git a/Documentation/devicetree/bindings/regulator/ti,tps6586x.yaml b/Documentation/devicetree/bindings/regulator/ti,tps6586x.yaml
new file mode 100644
index 000000000000..82c3a3c81120
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/ti,tps6586x.yaml
@@ -0,0 +1,224 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/ti,tps6586x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI TPS6586x family of regulators
+
+maintainers:
+ - Thierry Reding <thierry.reding@avionic-design.de>
+
+properties:
+ compatible:
+ const: ti,tps6586x
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ "#gpio-cells":
+ const: 2
+
+ gpio-controller: true
+
+ sys-supply:
+ description: The input supply for SYS.
+
+ ti,system-power-controller:
+ type: boolean
+ description:
+ Whether or not this PMIC is controlling the system power.
+
+ regulators:
+ type: object
+ additionalProperties: false
+ description:
+ list of regulators provided by this controller, LDO5 and LDO_RTC is
+ supplied by SYS regulator internally and driver take care of making
+ proper parent child relationship.
+
+ properties:
+ sys:
+ type: object
+ $ref: regulator.yaml#
+ unevaluatedProperties: false
+
+ patternProperties:
+ "^ldo([0-9]|_rtc)$":
+ type: object
+ $ref: regulator.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ nvidia,tegra-cpu-regulator:
+ type: boolean
+ description:
+ designates regulator as the "CPU domain" voltage regulator.
+
+ nvidia,tegra-core-regulator:
+ type: boolean
+ description:
+ designates regulator as the "Core domain" voltage regulator.
+
+ nvidia,tegra-rtc-regulator:
+ type: boolean
+ description:
+ designates regulator as the "RTC domain" voltage regulator.
+
+ "^sm[0-2]$":
+ type: object
+ $ref: regulator.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ nvidia,tegra-cpu-regulator:
+ type: boolean
+ description:
+ designates regulator as the "CPU domain" voltage regulator.
+
+ nvidia,tegra-core-regulator:
+ type: boolean
+ description:
+ designates regulator as the "Core domain" voltage regulator.
+
+ nvidia,tegra-rtc-regulator:
+ type: boolean
+ description:
+ designates regulator as the "RTC domain" voltage regulator.
+
+patternProperties:
+ "^vin-sm[0-2]-supply$":
+ description: The input supply for the corresponding SM (SM0, SM1, or SM2).
+
+ "^vinldo(01|23|4|678|9)-supply$":
+ description: The input supply for the corresponding LDO or group of LDOs.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - regulators
+ - "#gpio-cells"
+ - gpio-controller
+ - sys-supply
+ - vin-sm0-supply
+ - vin-sm1-supply
+ - vin-sm2-supply
+ - vinldo01-supply
+ - vinldo23-supply
+ - vinldo4-supply
+ - vinldo678-supply
+ - vinldo9-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@34 {
+ compatible = "ti,tps6586x";
+ reg = <0x34>;
+ interrupts = <0 88 0x4>;
+
+ #gpio-cells = <2>;
+ gpio-controller;
+
+ ti,system-power-controller;
+
+ sys-supply = <&vdd_5v0_sys>;
+ vin-sm0-supply = <&sys_reg>;
+ vin-sm1-supply = <&sys_reg>;
+ vin-sm2-supply = <&sys_reg>;
+ vinldo01-supply = <&sm2_reg>;
+ vinldo23-supply = <&sm2_reg>;
+ vinldo4-supply = <&sm2_reg>;
+ vinldo678-supply = <&sm2_reg>;
+ vinldo9-supply = <&sm2_reg>;
+
+ regulators {
+ sys {
+ regulator-name = "vdd_sys";
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sm0 {
+ regulator-min-microvolt = < 725000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sm1 {
+ regulator-min-microvolt = < 725000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sm2 {
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <4550000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo0 {
+ regulator-name = "PCIE CLK";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ ldo1 {
+ regulator-min-microvolt = < 725000>;
+ regulator-max-microvolt = <1500000>;
+ };
+
+ ldo2 {
+ regulator-min-microvolt = < 725000>;
+ regulator-max-microvolt = <1500000>;
+ };
+
+ ldo3 {
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ ldo4 {
+ regulator-min-microvolt = <1700000>;
+ regulator-max-microvolt = <2475000>;
+ };
+
+ ldo5 {
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ ldo6 {
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ ldo7 {
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ ldo8 {
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ ldo9 {
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <3300000>;
+ };
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/regulator/tps6586x.txt b/Documentation/devicetree/bindings/regulator/tps6586x.txt
deleted file mode 100644
index 8b40cac24d93..000000000000
--- a/Documentation/devicetree/bindings/regulator/tps6586x.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-TPS6586x family of regulators
-
-Required properties:
-- compatible: "ti,tps6586x"
-- reg: I2C slave address
-- interrupts: the interrupt outputs of the controller
-- #gpio-cells: number of cells to describe a GPIO
-- gpio-controller: mark the device as a GPIO controller
-- regulators: A node that houses a sub-node for each regulator within the
- device. Each sub-node is identified using the node's name (or the deprecated
- regulator-compatible property if present), with valid values listed below.
- The content of each sub-node is defined by the standard binding for
- regulators; see regulator.txt.
- sys, sm[0-2], ldo[0-9] and ldo_rtc
-- sys-supply: The input supply for SYS.
-- vin-sm0-supply: The input supply for the SM0.
-- vin-sm1-supply: The input supply for the SM1.
-- vin-sm2-supply: The input supply for the SM2.
-- vinldo01-supply: The input supply for the LDO1 and LDO2
-- vinldo23-supply: The input supply for the LDO2 and LDO3
-- vinldo4-supply: The input supply for the LDO4
-- vinldo678-supply: The input supply for the LDO6, LDO7 and LDO8
-- vinldo9-supply: The input supply for the LDO9
-
-Optional properties:
-- ti,system-power-controller: Telling whether or not this pmic is controlling
- the system power.
-
-Each regulator is defined using the standard binding for regulators.
-
-Note: LDO5 and LDO_RTC is supplied by SYS regulator internally and driver
- take care of making proper parent child relationship.
-
-Example:
-
- pmu: tps6586x@34 {
- compatible = "ti,tps6586x";
- reg = <0x34>;
- interrupts = <0 88 0x4>;
-
- #gpio-cells = <2>;
- gpio-controller;
-
- ti,system-power-controller;
-
- sys-supply = <&some_reg>;
- vin-sm0-supply = <&some_reg>;
- vin-sm1-supply = <&some_reg>;
- vin-sm2-supply = <&some_reg>;
- vinldo01-supply = <...>;
- vinldo23-supply = <...>;
- vinldo4-supply = <...>;
- vinldo678-supply = <...>;
- vinldo9-supply = <...>;
-
- regulators {
- sys_reg: sys {
- regulator-name = "vdd_sys";
- regulator-boot-on;
- regulator-always-on;
- };
-
- sm0_reg: sm0 {
- regulator-min-microvolt = < 725000>;
- regulator-max-microvolt = <1500000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- sm1_reg: sm1 {
- regulator-min-microvolt = < 725000>;
- regulator-max-microvolt = <1500000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- sm2_reg: sm2 {
- regulator-min-microvolt = <3000000>;
- regulator-max-microvolt = <4550000>;
- regulator-boot-on;
- regulator-always-on;
- };
-
- ldo0_reg: ldo0 {
- regulator-name = "PCIE CLK";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo1_reg: ldo1 {
- regulator-min-microvolt = < 725000>;
- regulator-max-microvolt = <1500000>;
- };
-
- ldo2_reg: ldo2 {
- regulator-min-microvolt = < 725000>;
- regulator-max-microvolt = <1500000>;
- };
-
- ldo3_reg: ldo3 {
- regulator-min-microvolt = <1250000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo4_reg: ldo4 {
- regulator-min-microvolt = <1700000>;
- regulator-max-microvolt = <2475000>;
- };
-
- ldo5_reg: ldo5 {
- regulator-min-microvolt = <1250000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo6_reg: ldo6 {
- regulator-min-microvolt = <1250000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo7_reg: ldo7 {
- regulator-min-microvolt = <1250000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo8_reg: ldo8 {
- regulator-min-microvolt = <1250000>;
- regulator-max-microvolt = <3300000>;
- };
-
- ldo9_reg: ldo9 {
- regulator-min-microvolt = <1250000>;
- regulator-max-microvolt = <3300000>;
- };
- };
- };
---
base-commit: 818bebeb63dd6bf5f4e07e145f6cdbace520a34c
change-id: 20260821-ti-tps6586x-b54e7111917c
Best regards,
--
Bhargav
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
2026-08-21 19:10 [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema Bhargav Joshi
@ 2026-08-21 19:18 ` sashiko-bot
2026-08-30 9:17 ` Krzysztof Kozlowski
1 sibling, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-08-21 19:18 UTC (permalink / raw)
To: Bhargav Joshi; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The device tree binding example contains phandle references to undefined labels, which will cause `make dt_binding_check` to fail.
--
--- Patch [1]: [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema ---
commit b755cd6cba207356ee219dac6c62ba31935acb54
Author: Bhargav Joshi <j.bhargav.u@gmail.com>
regulator: dt-bindings: ti,tps6586x: Convert to DT schema
Convert Texas Instruments tps6586x regulator binding from text to DT
schema. Add child regulator node properties that were missing in the text
binding but used in existing DTS files.
> diff --git a/Documentation/devicetree/bindings/regulator/ti,tps6586x.yaml b/Documentation/devicetree/bindings/regulator/ti,tps6586x.yaml
> new file mode 100644
> index 0000000000000..82c3a3c811200
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/ti,tps6586x.yaml
[ ... ]
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmic@34 {
> + compatible = "ti,tps6586x";
> + reg = <0x34>;
> + interrupts = <0 88 0x4>;
> +
> + #gpio-cells = <2>;
> + gpio-controller;
> +
> + ti,system-power-controller;
> +
> + sys-supply = <&vdd_5v0_sys>;
> + vin-sm0-supply = <&sys_reg>;
> + vin-sm1-supply = <&sys_reg>;
> + vin-sm2-supply = <&sys_reg>;
> + vinldo01-supply = <&sm2_reg>;
> + vinldo23-supply = <&sm2_reg>;
> + vinldo4-supply = <&sm2_reg>;
> + vinldo678-supply = <&sm2_reg>;
> + vinldo9-supply = <&sm2_reg>;
> +
> + regulators {
> + sys {
[Severity: Low]
Will this example fail to compile during make dt_binding_check?
The phandles <&vdd_5v0_sys>, <&sys_reg>, and <&sm2_reg> are referenced here,
but the labels are not defined in the snippet.
In the old text binding, the sys_reg and sm2_reg labels were defined on the
child nodes (e.g., sys_reg: sys { ... }), but they appear to have been omitted
in this conversion.
> + regulator-name = "vdd_sys";
> + regulator-boot-on;
> + regulator-always-on;
> + };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260822-ti-tps6586x-v1-1-93cb46b32b27@gmail.com?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
2026-08-21 19:10 [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema Bhargav Joshi
2026-08-21 19:18 ` sashiko-bot
@ 2026-08-30 9:17 ` Krzysztof Kozlowski
2026-08-31 23:51 ` Bhargav Joshi
1 sibling, 1 reply; 4+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-30 9:17 UTC (permalink / raw)
To: Bhargav Joshi
Cc: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thierry Reding, linux-kernel, devicetree,
goledhruva, m-chawdhry, daniel.baluta, simona.toaca
On Sat, Aug 22, 2026 at 12:40:28AM +0530, Bhargav Joshi wrote:
> + patternProperties:
> + "^ldo([0-9]|_rtc)$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + nvidia,tegra-cpu-regulator:
> + type: boolean
> + description:
> + designates regulator as the "CPU domain" voltage regulator.
> +
> + nvidia,tegra-core-regulator:
> + type: boolean
> + description:
> + designates regulator as the "Core domain" voltage regulator.
> +
> + nvidia,tegra-rtc-regulator:
> + type: boolean
> + description:
> + designates regulator as the "RTC domain" voltage regulator.
These are coming from nvidia,tegra-regulators-coupling.txt, so the best
if you also:
1. First patch: convert nvidia,tegra-regulators-coupling.txt, to a
shared schema and correct other devices which use nvidia properties,
e.g.: ti,tps62360.yaml if I am right.
2. Second/this patch: reference here the schema
allOf:
- $ref: regulator.yaml#
- $ref: nvidia,tegra-regulators-coupling.yaml
Rest looks good, thank you for doing the conversion. It is very
appreciated, although I am bit slow with the reviews last days.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
2026-08-30 9:17 ` Krzysztof Kozlowski
@ 2026-08-31 23:51 ` Bhargav Joshi
0 siblings, 0 replies; 4+ messages in thread
From: Bhargav Joshi @ 2026-08-31 23:51 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thierry Reding, linux-kernel, devicetree,
goledhruva, m-chawdhry, daniel.baluta, simona.toaca
On Sun, Aug 30, 2026 at 2:47 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On Sat, Aug 22, 2026 at 12:40:28AM +0530, Bhargav Joshi wrote:
> > + patternProperties:
> > + "^ldo([0-9]|_rtc)$":
> > + type: object
> > + $ref: regulator.yaml#
> > + unevaluatedProperties: false
> > +
> > + properties:
> > + nvidia,tegra-cpu-regulator:
> > + type: boolean
> > + description:
> > + designates regulator as the "CPU domain" voltage regulator.
> > +
> > + nvidia,tegra-core-regulator:
> > + type: boolean
> > + description:
> > + designates regulator as the "Core domain" voltage regulator.
> > +
> > + nvidia,tegra-rtc-regulator:
> > + type: boolean
> > + description:
> > + designates regulator as the "RTC domain" voltage regulator.
>
> These are coming from nvidia,tegra-regulators-coupling.txt, so the best
> if you also:
> 1. First patch: convert nvidia,tegra-regulators-coupling.txt, to a
> shared schema and correct other devices which use nvidia properties,
> e.g.: ti,tps62360.yaml if I am right.
>
> 2. Second/this patch: reference here the schema
> allOf:
> - $ref: regulator.yaml#
> - $ref: nvidia,tegra-regulators-coupling.yaml
sure I'll send v2 shortly with suggested changes
>
> Rest looks good, thank you for doing the conversion. It is very
> appreciated, although I am bit slow with the reviews last days.
>
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-31 23:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-21 19:10 [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema Bhargav Joshi
2026-08-21 19:18 ` sashiko-bot
2026-08-30 9:17 ` Krzysztof Kozlowski
2026-08-31 23:51 ` Bhargav Joshi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox