Kernel drivers ltc4282¶
Supported chips:
Analog Devices LTC4282
Prefix: ‘ltc4282’
Addresses scanned: - I2C 0x40 - 0x5A (7-bit) Addresses scanned: - I2C 0x80 - 0xB4 with a step of 2 (8-bit)
Datasheet:
Author: Nuno Sá <nuno.sa@analog.com>
Description¶
The LTC4282 hot swap controller allows a board to be safely inserted and removed from a live backplane. Using one or more external N-channel pass transistors, board supply voltage and inrush current are ramped up at an adjustable rate. An I2C interface and onboard ADC allows for monitoring of board current, voltage, power, energy and fault status. The device features analog foldback current limiting and supply monitoring for applications from 2.9V to 33V. Dual 12V gate drive allows high power applications to either share safe operating area across parallel MOSFETs or support a 2-stage start-up that first charges the load capacitance followed by enabling a low on-resistance path to the load. The LTC4282 is well suited to high power applications because the precise monitoring capability and accurate current limiting reduce the extremes in which both loads and power supplies must safely operate. Non-volatile configuration allows for flexibility in the autonomous generation of alerts and response to faults.
Sysfs entries¶
The following attributes are supported. Limits are read-write and all the other attributes are read-only. Note that in0 and in1 are mutually exclusive. Enabling one disables the other and disabling one enables the other.
in0_input |
Output voltage (mV). |
in0_min |
Undervoltage threshold |
in0_max |
Overvoltage threshold |
in0_lowest |
Lowest measured voltage |
in0_highest |
Highest measured voltage |
in0_reset_history |
Write 1 to reset in0 history. Also clears fet bad and short fault logs. |
in0_min_alarm |
Undervoltage alarm |
in0_max_alarm |
Overvoltage alarm |
in0_enable |
Enable/Disable VSOURCE monitoring |
in0_fault |
Failure in the MOSFETs. Either bad or shorted FET. |
in0_label |
Channel label (VSOURCE) |
in1_input |
Input 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 in1 history. Also clears over/undervoltage fault logs. |
in1_min_alarm |
Undervoltage alarm |
in1_max_alarm |
Overvoltage alarm |
in1_lcrit_alarm |
Critical Undervoltage alarm |
in1_crit_alarm |
Critical Overvoltage alarm |
in1_enable |
Enable/Disable VDD monitoring |
in1_label |
Channel label (VDD) |
in2_input |
GPIO 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 in2 history |
in2_min_alarm |
Undervoltage alarm |
in2_max_alarm |
Overvoltage alarm |
in2_label |
Channel label (VGPIO) |
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 bad 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/ltc4282-hwmon[X]/
contains the following attributes:
power1_bad_fault_log |
Set to 1 by a power1 bad fault occurring. |
in0_fet_short_fault_log |
Set to 1 when the ADC detects a FET-short fault. |
in0_fet_bad_fault_log |
Set to 1 when a FET-BAD fault occurs. |
in1_crit_fault_log |
Set to 1 by a VDD overvoltage fault occurring. |
in1_lcrit_fault_log |
Set to 1 by a VDD undervoltage fault occurring. |
curr1_crit_fault_log |
Set to 1 by an overcurrent fault occurring. |