Kernel driver fs1412¶
Supported chips:
TDK FS1412
Prefix: ‘fs1412’
Addresses scanned: -
TDK FS1525
Prefix: ‘fs1525’
Addresses scanned: -
Datasheet: Publicly available at the TDK website
- Authors:
Abdurrahman Hussain <abdurrahman@nexthop.ai>
Description¶
This driver implements support for the TDK FS1412 and FS1525 uPOL DC/DC regulators.
The FS1412 is a 12A part with PMBus monitoring of its input voltage, output voltage and temperature. It has over-current and over-temperature protection with programmable fault limits but no current telemetry, so no current attributes are provided.
The FS1525 is a 25A part that adds output current telemetry and an over-temperature warning limit.
Both parts read “KDT” from MFR_ID. The driver tells them apart by IC_DEVICE_ID and warns if the detected part does not match the one it was instantiated as.
The FS1412 answers on two I2C addresses: a register interface at the I2C base address (0x08 by default) and the PMBus interface at the PMBus base address (0x70 by default), each plus the offset strapped on the ADDR pin. This driver binds to the PMBus address.
The driver is a client driver to the core PMBus driver. Please see Kernel driver pmbus for details on PMBus client drivers.
Usage Notes¶
This driver does not auto-detect devices. You will have to instantiate the devices explicitly. Please see How to instantiate I2C devices for details.
Both parts store their output voltage limits relative to VOUT_COMMAND (VOUT_MODE bit 7 set). The PMBus core converts them to and from absolute voltages, so the output voltage limits read and write in volts. A written limit is stored as a fraction of VOUT_COMMAND in the resolution of VOUT_MODE (1/256 on the FS1412, 1/1024 on the FS1525), so it may read back rounded. The over-voltage protection itself engages at one of four thresholds the device rounds the fault limit to; see the datasheet.
When the output voltage is set with an external resistor divider, VOUT_COMMAND holds the feedback pin target rather than the output voltage, and the two parts differ:
The FS1412 reports READ_VOUT at the feedback pin, so in2_input and the in2 limits are all in the feedback domain. Scale them by the divider ratio in user space.
The FS1525 reports READ_VOUT as the output voltage. Its warning and under-voltage limits are compared by the device against READ_VOUT but are still relative to VOUT_COMMAND, so in2_max, in2_min and in2_lcrit are the thresholds the device actually applies to in2_input. Its over-voltage fault is an analog comparison at the feedback pin, which would read below in2_input on such boards, so in2_crit is not provided for the FS1525.
The FS1412 reports an over-temperature warning at room temperature and has no OT_WARN_LIMIT in its command table, so temp1_max and its alarm are not provided for it; temp1_crit comes from OT_FAULT_LIMIT.
Sysfs entries¶
in1_label |
“vin” |
in1_input |
Measured input voltage |
in1_min |
Minimum input voltage |
in1_min_alarm |
Input voltage low alarm |
in1_crit |
Critical high input voltage |
in1_crit_alarm |
Input voltage critical high alarm |
in2_label |
“vout1” |
in2_input |
Measured output voltage (FS1412: at the feedback pin) |
in2_min |
Minimum output voltage |
in2_min_alarm |
Output voltage low alarm |
in2_max |
Maximum output voltage |
in2_max_alarm |
Output voltage high alarm |
in2_lcrit |
Critical low output voltage |
in2_lcrit_alarm |
Output voltage critical low alarm |
in2_crit |
Critical high output voltage (FS1412 only) |
in2_crit_alarm |
Output voltage critical high alarm (FS1412 only) |
curr1_label |
“iout1” (FS1525 only) |
curr1_input |
Measured output current (FS1525 only) |
curr1_max |
Maximum output current (FS1525 only) |
curr1_max_alarm |
Output current high alarm (FS1525 only) |
curr1_crit |
Critical high output current (FS1525 only) |
curr1_crit_alarm |
Output current critical high alarm (FS1525 only) |
temp1_input |
Measured temperature |
temp1_max |
Maximum temperature (FS1525 only) |
temp1_max_alarm |
Temperature high alarm (FS1525 only) |
temp1_crit |
Critical high temperature |
temp1_crit_alarm |
Temperature critical high alarm |