regulator: dt-bindings: Convert pwm-regulator to DT schema
authorRob Herring <robh@kernel.org>
Mon, 6 Jun 2022 18:43:09 +0000 (13:43 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 7 Jun 2022 11:00:47 +0000 (12:00 +0100)
Convert the pwm-regulator binding to DT schema format.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220606184310.1057797-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/regulator/pwm-regulator.txt [deleted file]
Documentation/devicetree/bindings/regulator/pwm-regulator.yaml [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/regulator/pwm-regulator.txt b/Documentation/devicetree/bindings/regulator/pwm-regulator.txt
deleted file mode 100644 (file)
index 3d78d50..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-Bindings for the Generic PWM Regulator
-======================================
-
-Currently supports 2 modes of operation:
-
-Voltage Table:         When in this mode, a voltage table (See below) of
-                       predefined voltage <=> duty-cycle values must be
-                       provided via DT. Limitations are that the regulator can
-                       only operate at the voltages supplied in the table.
-                       Intermediary duty-cycle values which would normally
-                       allow finer grained voltage selection are ignored and
-                       rendered useless.  Although more control is given to
-                       the user if the assumptions made in continuous-voltage
-                       mode do not reign true.
-
-Continuous Voltage:    This mode uses the regulator's maximum and minimum
-                       supplied voltages specified in the
-                       regulator-{min,max}-microvolt properties to calculate
-                       appropriate duty-cycle values.  This allows for a much
-                       more fine grained solution when compared with
-                       voltage-table mode above.  This solution does make an
-                       assumption that a %50 duty-cycle value will cause the
-                       regulator voltage to run at half way between the
-                       supplied max_uV and min_uV values.
-
-Required properties:
---------------------
-- compatible:          Should be "pwm-regulator"
-
-- pwms:                        PWM specification (See: ../pwm/pwm.txt)
-
-Only required for Voltage Table Mode:
-- voltage-table:       Voltage and Duty-Cycle table consisting of 2 cells
-                           First cell is voltage in microvolts (uV)
-                           Second cell is duty-cycle in percent (%)
-
-Optional properties for Continuous mode:
-- pwm-dutycycle-unit:  Integer value encoding the duty cycle unit. If not
-                       defined, <100> is assumed, meaning that
-                       pwm-dutycycle-range contains values expressed in
-                       percent.
-
-- pwm-dutycycle-range: Should contain 2 entries. The first entry is encoding
-                       the dutycycle for regulator-min-microvolt and the
-                       second one the dutycycle for regulator-max-microvolt.
-                       Duty cycle values are expressed in pwm-dutycycle-unit.
-                       If not defined, <0 100> is assumed.
-
-NB: To be clear, if voltage-table is provided, then the device will be used
-in Voltage Table Mode.  If no voltage-table is provided, then the device will
-be used in Continuous Voltage Mode.
-
-Optional properties:
---------------------
-- enable-gpios:                GPIO to use to enable/disable the regulator
-
-Any property defined as part of the core regulator binding can also be used.
-(See: ../regulator/regulator.txt)
-
-Continuous Voltage With Enable GPIO Example:
-       pwm_regulator {
-               compatible = "pwm-regulator";
-               pwms = <&pwm1 0 8448 0>;
-               enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
-               regulator-min-microvolt = <1016000>;
-               regulator-max-microvolt = <1114000>;
-               regulator-name = "vdd_logic";
-               /* unit == per-mille */
-               pwm-dutycycle-unit = <1000>;
-               /*
-                * Inverted PWM logic, and the duty cycle range is limited
-                * to 30%-70%.
-                */
-               pwm-dutycycle-range = <700 300>; /* */
-       };
-
-Voltage Table Example:
-       pwm_regulator {
-               compatible = "pwm-regulator";
-               pwms = <&pwm1 0 8448 0>;
-               regulator-min-microvolt = <1016000>;
-               regulator-max-microvolt = <1114000>;
-               regulator-name = "vdd_logic";
-
-                             /* Voltage Duty-Cycle */
-               voltage-table = <1114000 0>,
-                               <1095000 10>,
-                               <1076000 20>,
-                               <1056000 30>,
-                               <1036000 40>,
-                               <1016000 50>;
-       };
diff --git a/Documentation/devicetree/bindings/regulator/pwm-regulator.yaml b/Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
new file mode 100644 (file)
index 0000000..0332fec
--- /dev/null
@@ -0,0 +1,126 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for the Generic PWM Regulator
+
+maintainers:
+  - Brian Norris <briannorris@chromium.org>
+  - Lee Jones <lee.jones@linaro.org>
+  - Alexandre Courbot <acourbot@nvidia.com>
+
+description: |
+  Currently supports 2 modes of operation:
+
+  Voltage Table:
+    When in this mode, a voltage table (See below) of predefined voltage <=>
+    duty-cycle values must be provided via DT. Limitations are that the
+    regulator can only operate at the voltages supplied in the table.
+    Intermediary duty-cycle values which would normally allow finer grained
+    voltage selection are ignored and rendered useless.  Although more control
+    is given to the user if the assumptions made in continuous-voltage mode do
+    not reign true.
+
+  Continuous Voltage:
+    This mode uses the regulator's maximum and minimum supplied voltages
+    specified in the regulator-{min,max}-microvolt properties to calculate
+    appropriate duty-cycle values.  This allows for a much more fine grained
+    solution when compared with voltage-table mode above.  This solution does
+    make an assumption that a %50 duty-cycle value will cause the regulator
+    voltage to run at half way between the supplied max_uV and min_uV values.
+
+  If voltage-table is provided, then the device will be used in Voltage Table
+  Mode.  If no voltage-table is provided, then the device will be used in
+  Continuous Voltage Mode.
+
+allOf:
+  - $ref: regulator.yaml#
+
+properties:
+  compatible:
+    const: pwm-regulator
+
+  pwms:
+    maxItems: 1
+
+  voltage-table:
+    description: Voltage and Duty-Cycle table.
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    items:
+      items:
+        - description: voltage in microvolts (uV)
+        - description: duty-cycle in percent (%)
+
+  enable-gpios:
+    description: Regulator enable GPIO
+    maxItems: 1
+
+   # Optional properties for Continuous mode:
+  pwm-dutycycle-unit:
+    description:
+      Integer value encoding the duty cycle unit. If not
+        defined, <100> is assumed, meaning that
+        pwm-dutycycle-range contains values expressed in
+        percent.
+    default: 100
+
+  pwm-dutycycle-range:
+    description:
+      Should contain 2 entries. The first entry is encoding
+        the dutycycle for regulator-min-microvolt and the
+        second one the dutycycle for regulator-max-microvolt.
+        Duty cycle values are expressed in pwm-dutycycle-unit.
+        If not defined, <0 100> is assumed.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    items:
+      - description: the dutycycle for regulator-min-microvolt
+      - description: the dutycycle for regulator-max-microvolt
+    default: [ 0 100 ]
+
+required:
+  - compatible
+  - pwms
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    // Continuous Voltage With Enable GPIO Example:
+    regulator {
+        compatible = "pwm-regulator";
+        pwms = <&pwm1 0 8448 0>;
+        enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
+        regulator-min-microvolt = <1016000>;
+        regulator-max-microvolt = <1114000>;
+        regulator-name = "vdd_logic";
+        /* unit == per-mille */
+        pwm-dutycycle-unit = <1000>;
+        /*
+        * Inverted PWM logic, and the duty cycle range is limited
+        * to 30%-70%.
+        */
+        pwm-dutycycle-range = <700 300>; /* */
+    };
+
+  - |
+    // Voltage Table Example:
+    regulator {
+        compatible = "pwm-regulator";
+        pwms = <&pwm1 0 8448 0>;
+        regulator-min-microvolt = <1016000>;
+        regulator-max-microvolt = <1114000>;
+        regulator-name = "vdd_logic";
+
+                /* Voltage Duty-Cycle */
+        voltage-table = <1114000 0>,
+            <1095000 10>,
+            <1076000 20>,
+            <1056000 30>,
+            <1036000 40>,
+            <1016000 50>;
+    };
+...