hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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>;
   };