Kernel driver lineage-pem

Supported devices:

Author: Guenter Roeck <linux@roeck-us.net>

Description

This driver supports various Lineage Compact Power Line DC/DC and AC/DC converters such as CP1800, CP2000AC, CP2000DC, CP2100DC, and others.

Lineage CPL power entry modules are nominally PMBus compliant. However, most standard PMBus commands are not supported. Specifically, all hardware monitoring and status reporting commands are non-standard. For this reason, a standard PMBus driver can not be used.

Usage Notes

This driver does not probe for Lineage CPL devices, since there is no register which can be safely used to identify the chip. You will have to instantiate the devices explicitly.

Example: the following will load the driver for a Lineage PEM at address 0x40 on I2C bus #1:

$ modprobe lineage-pem
$ echo lineage-pem 0x40 > /sys/bus/i2c/devices/i2c-1/new_device

All Lineage CPL power entry modules have a built-in I2C bus master selector (PCA9541). To ensure device access, this driver should only be used as client driver to the pca9541 I2C master selector driver.

Sysfs entries

All Lineage CPL devices report output voltage and device temperature as well as alarms for output voltage, temperature, input voltage, input current, input power, and fan status.

Input voltage, input current, input power, and fan speed measurement is only supported on newer devices. The driver detects if those attributes are supported, and only creates respective sysfs entries if they are.

in1_input Output voltage (mV)
in1_min_alarm Output undervoltage alarm
in1_max_alarm Output overvoltage alarm
in1_crit Output voltage critical alarm
in2_input Input voltage (mV, optional)
in2_alarm Input voltage alarm
curr1_input Input current (mA, optional)
curr1_alarm Input overcurrent alarm
power1_input Input power (uW, optional)
power1_alarm Input power alarm
fan1_input Fan 1 speed (rpm, optional)
fan2_input Fan 2 speed (rpm, optional)
fan3_input Fan 3 speed (rpm, optional)
temp1_input  
temp1_max  
temp1_crit  
temp1_alarm  
temp1_crit_alarm  
temp1_fault