[PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema

Bhargav Joshi posted 1 patch 1 month, 1 week ago
.../devicetree/bindings/regulator/ti,tps6586x.yaml | 224 +++++++++++++++++++++
.../devicetree/bindings/regulator/tps6586x.txt     | 135 -------------
2 files changed, 224 insertions(+), 135 deletions(-)
[PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
Posted by Bhargav Joshi 1 month, 1 week ago
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
Re: [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
Posted by Krzysztof Kozlowski 4 weeks, 1 day ago
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
Re: [PATCH] regulator: dt-bindings: ti,tps6586x: Convert to DT schema
Posted by Bhargav Joshi 3 weeks, 6 days ago
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
>