xref: /linux/Documentation/devicetree/bindings/hwmon/adi,ltc4283.yaml (revision 9611c0ce215a66770ccbe5c126bf57ba8c31bcad)
1*7ab12d5aSNuno Sá# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*7ab12d5aSNuno Sá%YAML 1.2
3*7ab12d5aSNuno Sá---
4*7ab12d5aSNuno Sá$id: http://devicetree.org/schemas/hwmon/adi,ltc4283.yaml#
5*7ab12d5aSNuno Sá$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ab12d5aSNuno Sá
7*7ab12d5aSNuno Sátitle: LTC4283 Negative Voltage Hot Swap Controller
8*7ab12d5aSNuno Sá
9*7ab12d5aSNuno Sámaintainers:
10*7ab12d5aSNuno Sá  - Nuno Sá <nuno.sa@analog.com>
11*7ab12d5aSNuno Sá
12*7ab12d5aSNuno Sádescription: |
13*7ab12d5aSNuno Sá  The LTC4283 negative voltage hot swap controller drives an external N-channel
14*7ab12d5aSNuno Sá  MOSFET to allow a board to be safely inserted and removed from a live
15*7ab12d5aSNuno Sá  backplane.
16*7ab12d5aSNuno Sá
17*7ab12d5aSNuno Sá  https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4283.pdf
18*7ab12d5aSNuno Sá
19*7ab12d5aSNuno Sáproperties:
20*7ab12d5aSNuno Sá  compatible:
21*7ab12d5aSNuno Sá    enum:
22*7ab12d5aSNuno Sá      - adi,ltc4283
23*7ab12d5aSNuno Sá
24*7ab12d5aSNuno Sá  reg:
25*7ab12d5aSNuno Sá    maxItems: 1
26*7ab12d5aSNuno Sá
27*7ab12d5aSNuno Sá  adi,rsense-nano-ohms:
28*7ab12d5aSNuno Sá    description: Value of the sense resistor.
29*7ab12d5aSNuno Sá
30*7ab12d5aSNuno Sá  adi,current-limit-sense-microvolt:
31*7ab12d5aSNuno Sá    description:
32*7ab12d5aSNuno Sá      The current limit sense voltage of the chip is adjustable between
33*7ab12d5aSNuno Sá      15mV and 30mV in 1mV steps. This effectively limits the current
34*7ab12d5aSNuno Sá      on the load.
35*7ab12d5aSNuno Sá    minimum: 15000
36*7ab12d5aSNuno Sá    maximum: 30000
37*7ab12d5aSNuno Sá    default: 15000
38*7ab12d5aSNuno Sá
39*7ab12d5aSNuno Sá  adi,current-limit-foldback-factor:
40*7ab12d5aSNuno Sá    description:
41*7ab12d5aSNuno Sá      Specifies the foldback factor for the current limit. The current limit
42*7ab12d5aSNuno Sá      can be reduced (folded back) to one of four preset levels. The value
43*7ab12d5aSNuno Sá      represents the percentage of the current limit sense voltage to use
44*7ab12d5aSNuno Sá      during foldback. A value of 100 means no foldback.
45*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/uint32
46*7ab12d5aSNuno Sá    enum: [10, 20, 50, 100]
47*7ab12d5aSNuno Sá    default: 100
48*7ab12d5aSNuno Sá
49*7ab12d5aSNuno Sá  adi,cooling-delay-ms:
50*7ab12d5aSNuno Sá    description:
51*7ab12d5aSNuno Sá      Cooling time to apply after an overcurrent fault, FET bad or
52*7ab12d5aSNuno Sá      external fault.
53*7ab12d5aSNuno Sá    enum: [512, 1002, 2005, 4100, 8190, 16400, 32800, 65600]
54*7ab12d5aSNuno Sá    default: 512
55*7ab12d5aSNuno Sá
56*7ab12d5aSNuno Sá  adi,fet-bad-timer-delay-ms:
57*7ab12d5aSNuno Sá    description:
58*7ab12d5aSNuno Sá      FET bad timer delay. After a FET bad status condition is detected,
59*7ab12d5aSNuno Sá      this timer is started. If the condition persists for the
60*7ab12d5aSNuno Sá      specified time, the FET is turned off and a fault is logged.
61*7ab12d5aSNuno Sá    enum: [256, 512, 1002, 2005]
62*7ab12d5aSNuno Sá    default: 256
63*7ab12d5aSNuno Sá
64*7ab12d5aSNuno Sá  adi,power-good-reset-on-fet:
65*7ab12d5aSNuno Sá    description:
66*7ab12d5aSNuno Sá      If set, resets the power good status when the MOSFET is turned off.
67*7ab12d5aSNuno Sá      Otherwise, it resets when a low output voltage is detected.
68*7ab12d5aSNuno Sá    type: boolean
69*7ab12d5aSNuno Sá
70*7ab12d5aSNuno Sá  adi,fet-turn-off-disable:
71*7ab12d5aSNuno Sá    description:
72*7ab12d5aSNuno Sá      If set, the MOSFET is not turned off when a FET fault is detected.
73*7ab12d5aSNuno Sá    type: boolean
74*7ab12d5aSNuno Sá
75*7ab12d5aSNuno Sá  adi,tmr-pull-down-disable:
76*7ab12d5aSNuno Sá    description: Disables 2uA pull-down current on the TMR pin.
77*7ab12d5aSNuno Sá    type: boolean
78*7ab12d5aSNuno Sá
79*7ab12d5aSNuno Sá  adi,dvdt-inrush-control-disable:
80*7ab12d5aSNuno Sá    description:
81*7ab12d5aSNuno Sá      Disables dV/dt inrush control during startup. In dV/dt mode, the inrush
82*7ab12d5aSNuno Sá      current is limited by controlling a constant output voltage ramp rate.
83*7ab12d5aSNuno Sá      When disabled, the inrush control mechanism is active current limiting.
84*7ab12d5aSNuno Sá    type: boolean
85*7ab12d5aSNuno Sá
86*7ab12d5aSNuno Sá  adi,fault-log-enable:
87*7ab12d5aSNuno Sá    description:
88*7ab12d5aSNuno Sá      If set, enables logging fault registers and ADC data into EEPROM upon a
89*7ab12d5aSNuno Sá      fault.
90*7ab12d5aSNuno Sá    type: boolean
91*7ab12d5aSNuno Sá
92*7ab12d5aSNuno Sá  adi,vpower-drns-enable:
93*7ab12d5aSNuno Sá    description:
94*7ab12d5aSNuno Sá      If set, enables the attenuated MOSFET drain voltage to be monitored. This
95*7ab12d5aSNuno Sá      effectively means that the MOSFET power is monitored. If not set, the
96*7ab12d5aSNuno Sá      attenuated input voltage (and hence input power) is monitored.
97*7ab12d5aSNuno Sá    type: boolean
98*7ab12d5aSNuno Sá
99*7ab12d5aSNuno Sá  adi,external-fault-fet-off-enable:
100*7ab12d5aSNuno Sá    description: Turns MOSFET off following an external fault.
101*7ab12d5aSNuno Sá    type: boolean
102*7ab12d5aSNuno Sá
103*7ab12d5aSNuno Sá  adi,undervoltage-retry-disable:
104*7ab12d5aSNuno Sá    description: Do not retry to turn on the MOSFET after an undervoltage fault.
105*7ab12d5aSNuno Sá    type: boolean
106*7ab12d5aSNuno Sá
107*7ab12d5aSNuno Sá  adi,overvoltage-retry-disable:
108*7ab12d5aSNuno Sá    description: Do not retry to turn on the MOSFET after an overvoltage fault.
109*7ab12d5aSNuno Sá    type: boolean
110*7ab12d5aSNuno Sá
111*7ab12d5aSNuno Sá  adi,external-fault-retry-enable:
112*7ab12d5aSNuno Sá    description: Retry to turn on the MOSFET after an external fault.
113*7ab12d5aSNuno Sá    type: boolean
114*7ab12d5aSNuno Sá
115*7ab12d5aSNuno Sá  adi,overcurrent-retries:
116*7ab12d5aSNuno Sá    description: Configures auto-retry following an Overcurrent fault.
117*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/string
118*7ab12d5aSNuno Sá    enum: [latch-off, "1", "7", unlimited]
119*7ab12d5aSNuno Sá    default: latch-off
120*7ab12d5aSNuno Sá
121*7ab12d5aSNuno Sá  adi,fet-bad-retries:
122*7ab12d5aSNuno Sá    description:
123*7ab12d5aSNuno Sá      Configures auto-retry following a FET bad fault and a consequent MOSFET
124*7ab12d5aSNuno Sá      turn off.
125*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/string
126*7ab12d5aSNuno Sá    enum: [latch-off, "1", "7", unlimited]
127*7ab12d5aSNuno Sá    default: latch-off
128*7ab12d5aSNuno Sá
129*7ab12d5aSNuno Sá  adi,pgio1-func:
130*7ab12d5aSNuno Sá    description: Configures the function of the PGIO1 pin.
131*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/string
132*7ab12d5aSNuno Sá    enum: [inverted_power_good, power_good, gpio]
133*7ab12d5aSNuno Sá    default: inverted_power_good
134*7ab12d5aSNuno Sá
135*7ab12d5aSNuno Sá  adi,pgio2-func:
136*7ab12d5aSNuno Sá    description: Configures the function of the PGIO2 pin.
137*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/string
138*7ab12d5aSNuno Sá    enum: [inverted_power_good, power_good, gpio, active_current_limiting]
139*7ab12d5aSNuno Sá    default: inverted_power_good
140*7ab12d5aSNuno Sá
141*7ab12d5aSNuno Sá  adi,pgio3-func:
142*7ab12d5aSNuno Sá    description: Configures the function of the PGIO3 pin.
143*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/string
144*7ab12d5aSNuno Sá    enum: [inverted_power_good_input, power_good_input, gpio]
145*7ab12d5aSNuno Sá    default: inverted_power_good_input
146*7ab12d5aSNuno Sá
147*7ab12d5aSNuno Sá  adi,pgio4-func:
148*7ab12d5aSNuno Sá    description: Configures the function of the PGIO4 pin.
149*7ab12d5aSNuno Sá    $ref: /schemas/types.yaml#/definitions/string
150*7ab12d5aSNuno Sá    enum: [inverted_external_fault, external_fault, gpio]
151*7ab12d5aSNuno Sá    default: inverted_external_fault
152*7ab12d5aSNuno Sá
153*7ab12d5aSNuno Sá  adi,gpio-on-adio1:
154*7ab12d5aSNuno Sá    description: If set, the ADIO1 pin is used as a GPIO.
155*7ab12d5aSNuno Sá    type: boolean
156*7ab12d5aSNuno Sá
157*7ab12d5aSNuno Sá  adi,gpio-on-adio2:
158*7ab12d5aSNuno Sá    description: If set, the ADIO2 pin is used as a GPIO.
159*7ab12d5aSNuno Sá    type: boolean
160*7ab12d5aSNuno Sá
161*7ab12d5aSNuno Sá  adi,gpio-on-adio3:
162*7ab12d5aSNuno Sá    description: If set, the ADIO3 pin is used as a GPIO.
163*7ab12d5aSNuno Sá    type: boolean
164*7ab12d5aSNuno Sá
165*7ab12d5aSNuno Sá  adi,gpio-on-adio4:
166*7ab12d5aSNuno Sá    description: If set, the ADIO4 pin is used as a GPIO.
167*7ab12d5aSNuno Sá    type: boolean
168*7ab12d5aSNuno Sá
169*7ab12d5aSNuno Sá  gpio-controller: true
170*7ab12d5aSNuno Sá
171*7ab12d5aSNuno Sá  '#gpio-cells':
172*7ab12d5aSNuno Sá    const: 2
173*7ab12d5aSNuno Sá
174*7ab12d5aSNuno Sádependencies:
175*7ab12d5aSNuno Sá  adi,gpio-on-adio1:
176*7ab12d5aSNuno Sá    - gpio-controller
177*7ab12d5aSNuno Sá    - '#gpio-cells'
178*7ab12d5aSNuno Sá  adi,gpio-on-adio2:
179*7ab12d5aSNuno Sá    - gpio-controller
180*7ab12d5aSNuno Sá    - '#gpio-cells'
181*7ab12d5aSNuno Sá  adi,gpio-on-adio3:
182*7ab12d5aSNuno Sá    - gpio-controller
183*7ab12d5aSNuno Sá    - '#gpio-cells'
184*7ab12d5aSNuno Sá  adi,gpio-on-adio4:
185*7ab12d5aSNuno Sá    - gpio-controller
186*7ab12d5aSNuno Sá    - '#gpio-cells'
187*7ab12d5aSNuno Sá  adi,external-fault-retry-enable:
188*7ab12d5aSNuno Sá    - adi,pgio4-func
189*7ab12d5aSNuno Sá  adi,external-fault-fet-off-enable:
190*7ab12d5aSNuno Sá    - adi,pgio4-func
191*7ab12d5aSNuno Sá
192*7ab12d5aSNuno Sárequired:
193*7ab12d5aSNuno Sá  - compatible
194*7ab12d5aSNuno Sá  - reg
195*7ab12d5aSNuno Sá  - adi,rsense-nano-ohms
196*7ab12d5aSNuno Sá
197*7ab12d5aSNuno SáallOf:
198*7ab12d5aSNuno Sá  - if:
199*7ab12d5aSNuno Sá      properties:
200*7ab12d5aSNuno Sá        adi,pgio1-func:
201*7ab12d5aSNuno Sá          const: gpio
202*7ab12d5aSNuno Sá      required:
203*7ab12d5aSNuno Sá        - adi,pgio1-func
204*7ab12d5aSNuno Sá    then:
205*7ab12d5aSNuno Sá      required:
206*7ab12d5aSNuno Sá        - gpio-controller
207*7ab12d5aSNuno Sá        - '#gpio-cells'
208*7ab12d5aSNuno Sá
209*7ab12d5aSNuno Sá  - if:
210*7ab12d5aSNuno Sá      properties:
211*7ab12d5aSNuno Sá        adi,pgio2-func:
212*7ab12d5aSNuno Sá          const: gpio
213*7ab12d5aSNuno Sá      required:
214*7ab12d5aSNuno Sá        - adi,pgio2-func
215*7ab12d5aSNuno Sá    then:
216*7ab12d5aSNuno Sá      required:
217*7ab12d5aSNuno Sá        - gpio-controller
218*7ab12d5aSNuno Sá        - '#gpio-cells'
219*7ab12d5aSNuno Sá
220*7ab12d5aSNuno Sá  - if:
221*7ab12d5aSNuno Sá      properties:
222*7ab12d5aSNuno Sá        adi,pgio3-func:
223*7ab12d5aSNuno Sá          const: gpio
224*7ab12d5aSNuno Sá      required:
225*7ab12d5aSNuno Sá        - adi,pgio3-func
226*7ab12d5aSNuno Sá    then:
227*7ab12d5aSNuno Sá      required:
228*7ab12d5aSNuno Sá        - gpio-controller
229*7ab12d5aSNuno Sá        - '#gpio-cells'
230*7ab12d5aSNuno Sá
231*7ab12d5aSNuno Sá  - if:
232*7ab12d5aSNuno Sá      properties:
233*7ab12d5aSNuno Sá        adi,pgio4-func:
234*7ab12d5aSNuno Sá          const: gpio
235*7ab12d5aSNuno Sá      required:
236*7ab12d5aSNuno Sá        - adi,pgio4-func
237*7ab12d5aSNuno Sá    then:
238*7ab12d5aSNuno Sá      properties:
239*7ab12d5aSNuno Sá        adi,external-fault-retry-enable: false
240*7ab12d5aSNuno Sá        adi,external-fault-fet-off-enable: false
241*7ab12d5aSNuno Sá      required:
242*7ab12d5aSNuno Sá        - gpio-controller
243*7ab12d5aSNuno Sá        - '#gpio-cells'
244*7ab12d5aSNuno Sá
245*7ab12d5aSNuno SáadditionalProperties: false
246*7ab12d5aSNuno Sá
247*7ab12d5aSNuno Sáexamples:
248*7ab12d5aSNuno Sá  - |
249*7ab12d5aSNuno Sá    i2c {
250*7ab12d5aSNuno Sá        #address-cells = <1>;
251*7ab12d5aSNuno Sá        #size-cells = <0>;
252*7ab12d5aSNuno Sá
253*7ab12d5aSNuno Sá        swap-controller@15 {
254*7ab12d5aSNuno Sá            compatible = "adi,ltc4283";
255*7ab12d5aSNuno Sá            reg = <0x15>;
256*7ab12d5aSNuno Sá
257*7ab12d5aSNuno Sá            adi,rsense-nano-ohms = <500>;
258*7ab12d5aSNuno Sá            adi,current-limit-sense-microvolt = <25000>;
259*7ab12d5aSNuno Sá            adi,current-limit-foldback-factor = <10>;
260*7ab12d5aSNuno Sá            adi,cooling-delay-ms = <8190>;
261*7ab12d5aSNuno Sá            adi,fet-bad-timer-delay-ms = <512>;
262*7ab12d5aSNuno Sá
263*7ab12d5aSNuno Sá            adi,external-fault-fet-off-enable;
264*7ab12d5aSNuno Sá            adi,pgio4-func = "external_fault";
265*7ab12d5aSNuno Sá
266*7ab12d5aSNuno Sá            adi,gpio-on-adio1;
267*7ab12d5aSNuno Sá            adi,pgio1-func = "gpio";
268*7ab12d5aSNuno Sá            gpio-controller;
269*7ab12d5aSNuno Sá            #gpio-cells = <2>;
270*7ab12d5aSNuno Sá        };
271*7ab12d5aSNuno Sá    };
272*7ab12d5aSNuno Sá...
273