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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
|
.. SPDX-License-Identifier: GPL-2.0-only
Kernel drivers ltc4283
==========================================
Supported chips:
* Analog Devices LTC4283
Prefix: 'ltc4283'
Addresses scanned: -
Datasheet:
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4283.pdf
Author: Nuno Sá <nuno.sa@analog.com>
Description
___________
The LTC4283 negative voltage hot swap controller drives an external N-channel
MOSFET to allow a board to be safely inserted and removed from a live backplane.
The device features programmable current limit with foldback and independently
adjustable inrush current to optimize the MOSFET safe operating area (SOA). The
SOA timer limits MOSFET temperature rise for reliable protection against
overstresses. An I2C interface and onboard gear-shift ADC allow monitoring of
board current, voltage, power, energy, and fault status. Additional features
respond to input UV/OV, interrupt the host when a fault has occurred, notify
when output power is good, detect insertion of a board, turn off the MOSFET
if an external supply monitor fails to indicate power good within a timeout
period, and auto-reboot after a programmable delay following a host commanded
turn-off.
Sysfs entries
_____________
The following attributes are supported. Limits are read-write and all the other
attributes are read-only. Note that the VADIOx channels might not be available
if the ADIO pins are used as GPIOs (naturally also affects the respective
differential channels).
======================= ==========================================
in0_lcrit_alarm Critical Undervoltage alarm
in0_crit_alarm Critical Overvoltage alarm
in0_reset_history Clears Under and Overvoltage fault logs.
in0_label Channel label (VIN)
in1_input Output voltage (mV).
in1_min Undervoltage threshold
in1_max Overvoltage threshold
in1_lowest Lowest measured voltage
in1_highest Highest measured voltage
in1_reset_history Write 1 to reset history.
in1_min_alarm Undervoltage alarm
in1_max_alarm Overvoltage alarm
in1_label Channel label (VPWR)
in2_input Output voltage (mV).
in2_min Undervoltage threshold
in2_max Overvoltage threshold
in2_lowest Lowest measured voltage
in2_highest Highest measured voltage
in2_reset_history Write 1 to reset history.
in2_min_alarm Undervoltage alarm
in2_max_alarm Overvoltage alarm
in2_enable Enable/Disable monitoring.
in2_label Channel label (VADI1)
in3_input Output voltage (mV).
in3_min Undervoltage threshold
in3_max Overvoltage threshold
in3_lowest Lowest measured voltage
in3_highest Highest measured voltage
in3_reset_history Write 1 to reset history.
in3_min_alarm Undervoltage alarm
in3_max_alarm Overvoltage alarm
in3_enable Enable/Disable monitoring.
in3_label Channel label (VADI2)
in4_input Output voltage (mV).
in4_min Undervoltage threshold
in4_max Overvoltage threshold
in4_lowest Lowest measured voltage
in4_highest Highest measured voltage
in4_reset_history Write 1 to reset history.
in4_min_alarm Undervoltage alarm
in4_max_alarm Overvoltage alarm
in4_enable Enable/Disable monitoring.
in4_label Channel label (VADI3)
in5_input Output voltage (mV).
in5_min Undervoltage threshold
in5_max Overvoltage threshold
in5_lowest Lowest measured voltage
in5_highest Highest measured voltage
in5_reset_history Write 1 to reset history.
in5_min_alarm Undervoltage alarm
in5_max_alarm Overvoltage alarm
in5_enable Enable/Disable monitoring.
in5_label Channel label (VADI4)
in6_input Output voltage (mV).
in6_min Undervoltage threshold
in6_max Overvoltage threshold
in6_lowest Lowest measured voltage
in6_highest Highest measured voltage
in6_reset_history Write 1 to reset history.
in6_min_alarm Undervoltage alarm
in6_max_alarm Overvoltage alarm
in6_enable Enable/Disable monitoring.
in6_label Channel label (VADIO1)
in7_input Output voltage (mV).
in7_min Undervoltage threshold
in7_max Overvoltage threshold
in7_lowest Lowest measured voltage
in7_highest Highest measured voltage
in7_reset_history Write 1 to reset history.
in7_min_alarm Undervoltage alarm
in7_max_alarm Overvoltage alarm
in7_enable Enable/Disable monitoring.
in7_label Channel label (VADIO2)
in8_input Output voltage (mV).
in8_min Undervoltage threshold
in8_max Overvoltage threshold
in8_lowest Lowest measured voltage
in8_highest Highest measured voltage
in8_reset_history Write 1 to reset history.
in8_min_alarm Undervoltage alarm
in8_max_alarm Overvoltage alarm
in8_enable Enable/Disable monitoring.
in8_label Channel label (VADIO3)
in9_input Output voltage (mV).
in9_min Undervoltage threshold
in9_max Overvoltage threshold
in9_lowest Lowest measured voltage
in9_highest Highest measured voltage
in9_reset_history Write 1 to reset history.
in9_min_alarm Undervoltage alarm
in9_max_alarm Overvoltage alarm
in9_enable Enable/Disable monitoring.
in9_label Channel label (VADIO4)
in10_input Output voltage (mV).
in10_min Undervoltage threshold
in10_max Overvoltage threshold
in10_lowest Lowest measured voltage
in10_highest Highest measured voltage
in10_reset_history Write 1 to reset history.
in10_min_alarm Undervoltage alarm
in10_max_alarm Overvoltage alarm
in10_enable Enable/Disable monitoring.
in10_label Channel label (DRNS)
in11_input Output voltage (mV).
in11_min Undervoltage threshold
in11_max Overvoltage threshold
in11_lowest Lowest measured voltage
in11_highest Highest measured voltage
in11_reset_history Write 1 to reset history.
Also clears fet bad and short fault logs.
in11_min_alarm Undervoltage alarm
in11_max_alarm Overvoltage alarm
in11_enable Enable/Disable monitoring
in11_fault Failure in the MOSFET. Either bad or shorted FET.
in11_label Channel label (DRAIN)
in12_input Output voltage (mV).
in12_min Undervoltage threshold
in12_max Overvoltage threshold
in12_lowest Lowest measured voltage
in12_highest Highest measured voltage
in12_reset_history Write 1 to reset history.
in12_min_alarm Undervoltage alarm
in12_max_alarm Overvoltage alarm
in12_enable Enable/Disable monitoring.
in12_label Channel label (ADIN2-ADIN1)
in13_input Output voltage (mV).
in13_min Undervoltage threshold
in13_max Overvoltage threshold
in13_lowest Lowest measured voltage
in13_highest Highest measured voltage
in13_reset_history Write 1 to reset history.
in13_min_alarm Undervoltage alarm
in13_max_alarm Overvoltage alarm
in13_enable Enable/Disable monitoring.
in13_label Channel label (ADIN4-ADIN3)
in14_input Output voltage (mV).
in14_min Undervoltage threshold
in14_max Overvoltage threshold
in14_lowest Lowest measured voltage
in14_highest Highest measured voltage
in14_reset_history Write 1 to reset history.
in14_min_alarm Undervoltage alarm
in14_max_alarm Overvoltage alarm
in14_enable Enable/Disable monitoring.
in14_label Channel label (ADIO2-ADIO1)
in15_input Output voltage (mV).
in15_min Undervoltage threshold
in15_max Overvoltage threshold
in15_lowest Lowest measured voltage
in15_highest Highest measured voltage
in15_reset_history Write 1 to reset history.
in15_min_alarm Undervoltage alarm
in15_max_alarm Overvoltage alarm
in15_enable Enable/Disable monitoring.
in15_label Channel label (ADIO4-ADIO3)
curr1_input Sense current (mA)
curr1_min Undercurrent threshold
curr1_max Overcurrent threshold
curr1_lowest Lowest measured current
curr1_highest Highest measured current
curr1_reset_history Write 1 to reset curr1 history.
Also clears overcurrent fault logs.
curr1_min_alarm Undercurrent alarm
curr1_max_alarm Overcurrent alarm
curr1_crit_alarm Critical Overcurrent alarm
curr1_label Channel label (ISENSE)
power1_input Power (in uW)
power1_min Low power threshold
power1_max High power threshold
power1_input_lowest Historical minimum power use
power1_input_highest Historical maximum power use
power1_reset_history Write 1 to reset power1 history.
Also clears power fault logs.
power1_min_alarm Low power alarm
power1_max_alarm High power alarm
power1_label Channel label (Power)
energy1_input Measured energy over time (in microJoule)
energy1_enable Enable/Disable Energy accumulation
======================= ==========================================
DebugFs entries
_______________
The chip also has a fault log register where failures can be logged. Hence,
as these are logging events, we give access to them in debugfs. Note that
even if some failure is detected in these logs, it does necessarily mean
that the failure is still present. As mentioned in the proper Sysfs entries,
these logs can be cleared by writing in the proper reset_history attribute.
.. warning:: The debugfs interface is subject to change without notice
and is only available when the kernel is compiled with
``CONFIG_DEBUG_FS`` defined.
``/sys/kernel/debug/i2c/i2c-[X]/[X]-addr/``
contains the following attributes:
============================== ==========================================================
power1_failed_fault_log Set to 1 by a power1 fault occurring.
power1_good_input_fault_log Set to 1 by a power1 good input fault occurring at PGIO3.
in11_fet_short_fault_log Set to 1 when a FET-short fault occurs.
in11_fet_bad_fault_log Set to 1 when a FET-BAD fault occurs.
in0_lcrit_fault_log Set to 1 by a VIN undervoltage fault occurring.
in0_crit_fault_log Set to 1 by a VIN overvoltage fault occurring.
curr1_crit_fault_log Set to 1 by an overcurrent fault occurring.
============================== ==========================================================
|