The definition of "xxx-in-supply" was generic, thus define in detail the
possible cases for each chip variant.

While there also apply a few smaller improvements:

 - document that the only possible I2C slave address is 0x60 as per the
   datasheet and fix the second example accordingly
 - remove "MFD driver" from the title as it is implementation specific
 - replace "PMIC" with "buck converter" in title as it is more informative

Signed-off-by: Luca Ceresoli <l...@lucaceresoli.net>

---

Changes in v4:
 - split in two different bindings (Rob)
 - remove "MFD driver" from title as it is implementation specific; also
   replace "PMIC" with "buck converter" which is more informative

Changes in v3:
 - fix yaml errors

Changes in v2:
 - this patch replaces patch "regulator: lp87565: dt: remove duplicated
   section" in RFC,v1 (Rob Herring)
 - use capital letters consistently (Lee Jones)
 - replace "regulator" -> "mfd" in subject line (Lee Jones)
 - replace "dt:" suffix with "dt-bindings:" prefix in subject line
---
 .../devicetree/bindings/mfd/lp87565.txt       | 79 -----------------
 .../bindings/mfd/ti,lp87561-q1.yaml           | 68 +++++++++++++++
 .../bindings/mfd/ti,lp87565-q1.yaml           | 85 +++++++++++++++++++
 3 files changed, 153 insertions(+), 79 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mfd/lp87565.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/ti,lp87561-q1.yaml
 create mode 100644 Documentation/devicetree/bindings/mfd/ti,lp87565-q1.yaml

diff --git a/Documentation/devicetree/bindings/mfd/lp87565.txt 
b/Documentation/devicetree/bindings/mfd/lp87565.txt
deleted file mode 100644
index 41671e0dc26b..000000000000
--- a/Documentation/devicetree/bindings/mfd/lp87565.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-TI LP87565 PMIC MFD driver
-
-Required properties:
-  - compatible:        "ti,lp87565", "ti,lp87565-q1"
-  - reg:               I2C slave address.
-  - gpio-controller:   Marks the device node as a GPIO Controller.
-  - #gpio-cells:       Should be two.  The first cell is the pin number and
-                       the second cell is used to specify flags.
-                       See ../gpio/gpio.txt for more information.
-  - xxx-in-supply:     Phandle to parent supply node of each regulator
-                       populated under regulators node. xxx should match
-                       the supply_name populated in driver.
-Example:
-
-lp87565_pmic: pmic@60 {
-       compatible = "ti,lp87565-q1";
-       reg = <0x60>;
-       gpio-controller;
-       #gpio-cells = <2>;
-
-       buck10-in-supply = <&vsys_3v3>;
-       buck23-in-supply = <&vsys_3v3>;
-
-       regulators: regulators {
-               buck10_reg: buck10 {
-                       /* VDD_MPU */
-                       regulator-name = "buck10";
-                       regulator-min-microvolt = <850000>;
-                       regulator-max-microvolt = <1250000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               buck23_reg: buck23 {
-                       /* VDD_GPU */
-                       regulator-name = "buck23";
-                       regulator-min-microvolt = <850000>;
-                       regulator-max-microvolt = <1250000>;
-                       regulator-boot-on;
-                       regulator-always-on;
-               };
-       };
-};
-
-TI LP87561 PMIC:
-
-This is a single output 4-phase regulator configuration
-
-Required properties:
-  - compatible:        "ti,lp87561-q1"
-  - reg:               I2C slave address.
-  - gpio-controller:   Marks the device node as a GPIO Controller.
-  - #gpio-cells:       Should be two.  The first cell is the pin number and
-                       the second cell is used to specify flags.
-                       See ../gpio/gpio.txt for more information.
-  - xxx-in-supply:     Phandle to parent supply node of each regulator
-                       populated under regulators node. xxx should match
-                       the supply_name populated in driver.
-Example:
-
-lp87561_pmic: pmic@62 {
-       compatible = "ti,lp87561-q1";
-       reg = <0x62>;
-       gpio-controller;
-       #gpio-cells = <2>;
-
-       buck3210-in-supply = <&vsys_3v3>;
-
-       regulators: regulators {
-               buck3210_reg: buck3210 {
-                       /* VDD_CORE */
-                       regulator-name = "buck3210";
-                       regulator-min-microvolt = <800000>;
-                       regulator-max-microvolt = <800000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-       };
-};
diff --git a/Documentation/devicetree/bindings/mfd/ti,lp87561-q1.yaml 
b/Documentation/devicetree/bindings/mfd/ti,lp87561-q1.yaml
new file mode 100644
index 000000000000..c0c56e9e5a06
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/ti,lp87561-q1.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ti,lp87561-q1.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LP87561-Q1 single 4-phase output buck converter
+
+maintainers:
+  - Keerthy <j-keer...@ti.com>
+
+properties:
+  compatible:
+    const: ti,lp87561-q1
+
+  reg:
+    description: I2C slave address
+    const: 0x60
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    description:
+      The first cell is the pin number.
+      The second cell is is used to specify flags.
+      See ../gpio/gpio.txt for more information.
+    const: 2
+
+  buck3210-in-supply:
+    description:
+      Phandle to parent supply node for all the four BUCK converters.
+
+required:
+  - compatible
+  - reg
+  - gpio-controller
+  - '#gpio-cells'
+  - buck3210-in-supply
+
+examples:
+  - |
+    i2c@0 {
+        reg = <0x0 0x100>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@60 {
+            compatible = "ti,lp87561-q1";
+            reg = <0x60>;
+            gpio-controller;
+            #gpio-cells = <2>;
+
+            buck3210-in-supply = <&vsys_3v3>;
+
+            regulators {
+                buck3210_reg: buck3210 {
+                    /* VDD_CORE */
+                    regulator-name = "buck3210";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <800000>;
+                    regulator-always-on;
+                    regulator-boot-on;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/mfd/ti,lp87565-q1.yaml 
b/Documentation/devicetree/bindings/mfd/ti,lp87565-q1.yaml
new file mode 100644
index 000000000000..1eafe0fb90cc
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/ti,lp87565-q1.yaml
@@ -0,0 +1,85 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ti,lp87565-q1.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LP87565-Q1 / LP87565 dual 2-phase output buck converter
+
+maintainers:
+  - Keerthy <j-keer...@ti.com>
+
+properties:
+  compatible:
+    oneOf:
+      - const: ti,lp87565
+      - const: ti,lp87565-q1
+
+  reg:
+    description: I2C slave address
+    const: 0x60
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    description:
+      The first cell is the pin number.
+      The second cell is is used to specify flags.
+      See ../gpio/gpio.txt for more information.
+    const: 2
+
+  buck10-in-supply:
+    description:
+      Phandle to parent supply node for BUCK0 and BUCK1 converters.
+
+  buck23-in-supply:
+    description:
+      Phandle to parent supply node for BUCK2 and BUCK3 converters.
+
+required:
+  - compatible
+  - reg
+  - gpio-controller
+  - '#gpio-cells'
+  - buck10-in-supply
+  - buck23-in-supply
+
+examples:
+  - |
+    i2c@0 {
+        reg = <0x0 0x100>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@60 {
+            compatible = "ti,lp87565-q1";
+            reg = <0x60>;
+            gpio-controller;
+            #gpio-cells = <2>;
+
+            buck10-in-supply = <&vsys_3v3>;
+            buck23-in-supply = <&vsys_3v3>;
+
+            regulators {
+                buck10_reg: buck10 {
+                    /* VDD_MPU */
+                    regulator-name = "buck10";
+                    regulator-min-microvolt = <850000>;
+                    regulator-max-microvolt = <1250000>;
+                    regulator-always-on;
+                    regulator-boot-on;
+                };
+
+                buck23_reg: buck23 {
+                    /* VDD_GPU */
+                    regulator-name = "buck23";
+                    regulator-min-microvolt = <850000>;
+                    regulator-max-microvolt = <1250000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+            };
+        };
+    };
+
+...
-- 
2.28.0

Reply via email to