Kernel drivers ltc4283¶
Supported chips:
Analog Devices LTC4283
Prefix: ‘ltc4283’
Addresses scanned: -
Datasheet:
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: