summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/regulator/regulator.yaml
blob: 92ff2e8ad572ba47517e6d38a2656aa4a7e50000 (plain)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Voltage/Current Regulators

maintainers:
  - Liam Girdwood <lgirdwood@gmail.com>
  - Mark Brown <broonie@kernel.org>

properties:
  regulator-name:
    description: A string used as a descriptive name for regulator outputs
    $ref: "/schemas/types.yaml#/definitions/string"

  regulator-min-microvolt:
    description: smallest voltage consumers may set

  regulator-max-microvolt:
    description: largest voltage consumers may set

  regulator-microvolt-offset:
    description: Offset applied to voltages to compensate for voltage drops

  regulator-min-microamp:
    description: smallest current consumers may set

  regulator-max-microamp:
    description: largest current consumers may set

  regulator-input-current-limit-microamp:
    description: maximum input current regulator allows

  regulator-always-on:
    description: boolean, regulator should never be disabled
    type: boolean

  regulator-boot-on:
    description: bootloader/firmware enabled regulator.
      It's expected that this regulator was left on by the bootloader.
      If the bootloader didn't leave it on then OS should turn it on
      at boot but shouldn't prevent it from being turned off later.
      This property is intended to only be used for regulators where
      software cannot read the state of the regulator.
    type: boolean

  regulator-allow-bypass:
    description: allow the regulator to go into bypass mode
    type: boolean

  regulator-allow-set-load:
    description: allow the regulator performance level to be configured
    type: boolean

  regulator-ramp-delay:
    description: ramp delay for regulator(in uV/us) For hardware which supports
      disabling ramp rate, it should be explicitly initialised to zero (regulator-ramp-delay
      = <0>) for disabling ramp delay.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  regulator-enable-ramp-delay:
    description: The time taken, in microseconds, for the supply rail to
      reach the target voltage, plus/minus whatever tolerance the board
      design requires. This property describes the total system ramp time
      required due to the combination of internal ramping of the regulator
      itself, and board design issues such as trace capacitance and load
      on the supply.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  regulator-settling-time-us:
    description: Settling time, in microseconds, for voltage change if regulator
      have the constant time for any level voltage change. This is useful
      when regulator have exponential voltage change.

  regulator-settling-time-up-us:
    description: Settling time, in microseconds, for voltage increase if
      the regulator needs a constant time to settle after voltage increases
      of any level. This is useful for regulators with exponential voltage
      changes.

  regulator-settling-time-down-us:
    description: Settling time, in microseconds, for voltage decrease if
      the regulator needs a constant time to settle after voltage decreases
      of any level. This is useful for regulators with exponential voltage
      changes.

  regulator-soft-start:
    description: Enable soft start so that voltage ramps slowly
    type: boolean

  regulator-initial-mode:
    description: initial operating mode. The set of possible operating modes
      depends on the capabilities of every hardware so each device binding
      documentation explains which values the regulator supports.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  regulator-allowed-modes:
    description: list of operating modes that software is allowed to configure
      for the regulator at run-time.  Elements may be specified in any order.
      The set of possible operating modes depends on the capabilities of
      every hardware so each device binding document explains which values
      the regulator supports.
    $ref: "/schemas/types.yaml#/definitions/uint32-array"

  regulator-system-load:
    description: Load in uA present on regulator that is not captured by
      any consumer request.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  regulator-pull-down:
    description: Enable pull down resistor when the regulator is disabled.
    type: boolean

  regulator-over-current-protection:
    description: Enable over current protection.
    type: boolean

  regulator-active-discharge:
    description: |
      tristate, enable/disable active discharge of regulators. The values are:
      0: Disable active discharge.
      1: Enable active discharge.
      Absence of this property will leave configuration to default.
    allOf:
      - $ref: "/schemas/types.yaml#/definitions/uint32"
      - enum: [ 0, 1 ]

  regulator-coupled-with:
    description: Regulators with which the regulator is coupled. The linkage
      is 2-way - all coupled regulators should be linked with each other.
      A regulator should not be coupled with its supplier.
    $ref: "/schemas/types.yaml#/definitions/phandle-array"

  regulator-coupled-max-spread:
    description: Array of maximum spread between voltages of coupled regulators
      in microvolts, each value in the array relates to the corresponding
      couple specified by the regulator-coupled-with property.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  regulator-max-step-microvolt:
    description: Maximum difference between current and target voltages
      that can be changed safely in a single step.

patternProperties:
  ".*-supply$":
    description: Input supply phandle(s) for this node

  regulator-state-(standby|mem|disk):
    type: object
    description:
      sub-nodes for regulator state in Standby, Suspend-to-RAM, and
      Suspend-to-DISK modes. Equivalent with standby, mem, and disk Linux
      sleep states.

    properties:
      regulator-on-in-suspend:
        description: regulator should be on in suspend state.
        type: boolean

      regulator-off-in-suspend:
        description: regulator should be off in suspend state.
        type: boolean

      regulator-suspend-min-microvolt:
        description: minimum voltage may be set in suspend state.

      regulator-suspend-max-microvolt:
        description: maximum voltage may be set in suspend state.

      regulator-suspend-microvolt:
        description: the default voltage which regulator would be set in
          suspend. This property is now deprecated, instead setting voltage
          for suspend mode via the API which regulator driver provides is
          recommended.

      regulator-changeable-in-suspend:
        description: whether the default voltage and the regulator on/off
          in suspend can be changed in runtime.
        type: boolean

      regulator-mode:
        description: operating mode in the given suspend state. The set
          of possible operating modes depends on the capabilities of every
          hardware so the valid modes are documented on each regulator device
          tree binding document.
        $ref: "/schemas/types.yaml#/definitions/uint32"

    additionalProperties: false

examples:
  - |
    xyzreg: regulator@0 {
      regulator-min-microvolt = <1000000>;
      regulator-max-microvolt = <2500000>;
      regulator-always-on;
      vin-supply = <&vin>;

      regulator-state-mem {
        regulator-on-in-suspend;
      };
    };

...