1 # SPDX-License-Identifier: GPL-2.0
4 $id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Generic PWM Regulator
10 - Brian Norris <briannorris@chromium.org>
11 - Lee Jones <lee@kernel.org>
12 - Alexandre Courbot <acourbot@nvidia.com>
15 Currently supports 2 modes of operation:
18 When in this mode, a voltage table (See below) of predefined voltage <=>
19 duty-cycle values must be provided via DT. Limitations are that the
20 regulator can only operate at the voltages supplied in the table.
21 Intermediary duty-cycle values which would normally allow finer grained
22 voltage selection are ignored and rendered useless. Although more control
23 is given to the user if the assumptions made in continuous-voltage mode do
27 This mode uses the regulator's maximum and minimum supplied voltages
28 specified in the regulator-{min,max}-microvolt properties to calculate
29 appropriate duty-cycle values. This allows for a much more fine grained
30 solution when compared with voltage-table mode above. This solution does
31 make an assumption that a %50 duty-cycle value will cause the regulator
32 voltage to run at half way between the supplied max_uV and min_uV values.
34 If voltage-table is provided, then the device will be used in Voltage Table
35 Mode. If no voltage-table is provided, then the device will be used in
36 Continuous Voltage Mode.
39 - $ref: regulator.yaml#
49 description: Voltage and Duty-Cycle table.
50 $ref: /schemas/types.yaml#/definitions/uint32-matrix
53 - description: voltage in microvolts (uV)
54 - description: duty-cycle in percent (%)
57 description: Regulator enable GPIO
60 # Optional properties for Continuous mode:
63 Integer value encoding the duty cycle unit. If not
64 defined, <100> is assumed, meaning that
65 pwm-dutycycle-range contains values expressed in
67 $ref: /schemas/types.yaml#/definitions/uint32
72 Should contain 2 entries. The first entry is encoding
73 the dutycycle for regulator-min-microvolt and the
74 second one the dutycycle for regulator-max-microvolt.
75 Duty cycle values are expressed in pwm-dutycycle-unit.
76 If not defined, <0 100> is assumed.
77 $ref: /schemas/types.yaml#/definitions/uint32-array
79 - description: the dutycycle for regulator-min-microvolt
80 - description: the dutycycle for regulator-max-microvolt
87 unevaluatedProperties: false
91 #include <dt-bindings/gpio/gpio.h>
93 // Continuous Voltage With Enable GPIO Example:
95 compatible = "pwm-regulator";
96 pwms = <&pwm1 0 8448 0>;
97 enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
98 regulator-min-microvolt = <1016000>;
99 regulator-max-microvolt = <1114000>;
100 regulator-name = "vdd_logic";
101 /* unit == per-mille */
102 pwm-dutycycle-unit = <1000>;
104 * Inverted PWM logic, and the duty cycle range is limited
107 pwm-dutycycle-range = <700 300>; /* */
111 // Voltage Table Example:
113 compatible = "pwm-regulator";
114 pwms = <&pwm1 0 8448 0>;
115 regulator-min-microvolt = <1016000>;
116 regulator-max-microvolt = <1114000>;
117 regulator-name = "vdd_logic";
119 /* Voltage Duty-Cycle */
120 voltage-table = <1114000 0>,