From: Thierry Reding <thierry.reding@gmail.com>
To: Lee Jones <lee.jones@linaro.org>, Rob Herring <robh+dt@kernel.org>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 2/6] dt-bindings: regulator: pwm: Convert to json-schema
Date: Fri, 17 Dec 2021 18:05:03 +0100 [thread overview]
Message-ID: <20211217170507.2843568-2-thierry.reding@gmail.com> (raw)
In-Reply-To: <20211217170507.2843568-1-thierry.reding@gmail.com>
From: Thierry Reding <treding@nvidia.com>
Convert the generic PWM regulator bindings from the free-form text
format to json-schema.
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
.../bindings/regulator/pwm-regulator.txt | 92 -------------
.../bindings/regulator/pwm-regulator.yaml | 121 ++++++++++++++++++
2 files changed, 121 insertions(+), 92 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/regulator/pwm-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
diff --git a/Documentation/devicetree/bindings/regulator/pwm-regulator.txt b/Documentation/devicetree/bindings/regulator/pwm-regulator.txt
deleted file mode 100644
index 3d78d507e29f..000000000000
--- a/Documentation/devicetree/bindings/regulator/pwm-regulator.txt
+++ /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
index 000000000000..d87e8110989d
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
@@ -0,0 +1,121 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic PWM Regulator
+
+maintainers:
+ - Rob Herring <robh+dt@kernel.org>
+ - Mark Brown <broonie@kernel.org>
+
+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.
+
+ 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.
+
+ Any property defined as part of the core regulator binding can also be used. (See:
+ ../regulator/regulator.txt)
+
+properties:
+ compatible:
+ const: pwm-regulator
+
+ pwms:
+ $ref: "/schemas/types.yaml#/definitions/phandle-array"
+ description: phandle and PWM specifier (see ../pwm/pwm.txt)
+
+ # Only required for Voltage Table Mode:
+ voltage-table:
+ description: Voltage and Duty-Cycle table consisting of 2 cells. The first cell is the voltage
+ in microvolts (uV) and the second cell is duty-cycle in percent (%).
+ $ref: "/schemas/types.yaml#/definitions/uint32-matrix"
+
+ # 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.
+ $ref: "/schemas/types.yaml#/definitions/uint32"
+
+ 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"
+
+ # Optional properties:
+ enable-gpios:
+ description: GPIO to use to enable/disable the regulator
+
+ # from regulator.yaml
+ regulator-enable-ramp-delay: true
+ regulator-max-microvolt: true
+ regulator-min-microvolt: true
+ regulator-name: true
+ regulator-ramp-delay: true
+ regulator-settling-time-us: true
+ vin-supply: true
+
+allOf:
+ - $ref: "regulator.yaml"
+
+additionalProperties: false
+
+required:
+ - compatible
+ - pwms
+
+examples:
+ # Continuous Voltage With Enable GPIO:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ 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:
+ - |
+ 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>;
+ };
--
2.34.1
next prev parent reply other threads:[~2021-12-17 17:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-17 17:05 [PATCH 1/6] dt-bindings: regulator: palmas: Convert to json-schema Thierry Reding
2021-12-17 17:05 ` Thierry Reding [this message]
2021-12-18 18:08 ` [PATCH 2/6] dt-bindings: regulator: pwm: " Rob Herring
2021-12-21 18:49 ` Rob Herring
2021-12-17 17:05 ` [PATCH 3/6] dt-bindings: regulator: tps51632: " Thierry Reding
2021-12-21 18:51 ` Rob Herring
2021-12-17 17:05 ` [PATCH 4/6] dt-bindings: regulator: tps62360: " Thierry Reding
2021-12-21 18:52 ` Rob Herring
2021-12-17 17:05 ` [PATCH 5/6] dt-bindings: regulator: tps6586x: " Thierry Reding
2021-12-18 18:08 ` Rob Herring
2021-12-21 18:59 ` Rob Herring
2021-12-17 17:05 ` [PATCH 6/6] dt-bindings: regulator: tps65090: " Thierry Reding
2021-12-21 19:00 ` Rob Herring
2021-12-18 18:08 ` [PATCH 1/6] dt-bindings: regulator: palmas: " Rob Herring
2021-12-21 14:15 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211217170507.2843568-2-thierry.reding@gmail.com \
--to=thierry.reding@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.