Kernel driver ltc4245¶
Supported chips:
Linear Technology LTC4245
Prefix: ‘ltc4245’
Addresses scanned: 0x20-0x3f
Datasheet:
Author: Ira W. Snyder <iws@ovro.caltech.edu>
Description¶
The LTC4245 controller allows a board to be safely inserted and removed from a live backplane in multiple supply systems such as CompactPCI and PCI Express.
Usage Notes¶
This driver does not probe for LTC4245 devices, due to the fact that some of the possible addresses are unfriendly to probing. You will have to instantiate the devices explicitly.
Example: the following will load the driver for an LTC4245 at address 0x23 on I2C bus #1:
$ modprobe ltc4245
$ echo ltc4245 0x23 > /sys/bus/i2c/devices/i2c-1/new_device
Sysfs entries¶
The LTC4245 has built-in limits for over and under current warnings. This makes it very likely that the reference circuit will be used.
This driver uses the values in the datasheet to change the register values into the values specified in the sysfs-interface document. The current readings rely on the sense resistors listed in Table 2: “Sense Resistor Values”.
in1_input | 12v input voltage (mV) |
in2_input | 5v input voltage (mV) |
in3_input | 3v input voltage (mV) |
in4_input | Vee (-12v) input voltage (mV) |
in1_min_alarm | 12v input undervoltage alarm |
in2_min_alarm | 5v input undervoltage alarm |
in3_min_alarm | 3v input undervoltage alarm |
in4_min_alarm | Vee (-12v) input undervoltage alarm |
curr1_input | 12v current (mA) |
curr2_input | 5v current (mA) |
curr3_input | 3v current (mA) |
curr4_input | Vee (-12v) current (mA) |
curr1_max_alarm | 12v overcurrent alarm |
curr2_max_alarm | 5v overcurrent alarm |
curr3_max_alarm | 3v overcurrent alarm |
curr4_max_alarm | Vee (-12v) overcurrent alarm |
in5_input | 12v output voltage (mV) |
in6_input | 5v output voltage (mV) |
in7_input | 3v output voltage (mV) |
in8_input | Vee (-12v) output voltage (mV) |
in5_min_alarm | 12v output undervoltage alarm |
in6_min_alarm | 5v output undervoltage alarm |
in7_min_alarm | 3v output undervoltage alarm |
in8_min_alarm | Vee (-12v) output undervoltage alarm |
in9_input | GPIO voltage data (see note 1) |
in10_input | GPIO voltage data (see note 1) |
in11_input | GPIO voltage data (see note 1) |
power1_input | 12v power usage (mW) |
power2_input | 5v power usage (mW) |
power3_input | 3v power usage (mW) |
power4_input | Vee (-12v) power usage (mW) |
Note 1¶
If you have NOT configured the driver to sample all GPIO pins as analog voltages, then the in10_input and in11_input sysfs attributes will not be created. The driver will sample the GPIO pin that is currently connected to the ADC as an analog voltage, and report the value in in9_input.
If you have configured the driver to sample all GPIO pins as analog voltages, then they will be sampled in round-robin fashion. If userspace reads too slowly, -EAGAIN will be returned when you read the sysfs attribute containing the sensor reading.
The LTC4245 chip can be configured to sample all GPIO pins with two methods:
- platform data – see include/linux/platform_data/ltc4245.h
- OF device tree – add the “ltc4245,use-extra-gpios” property to each chip
The default mode of operation is to sample a single GPIO pin.