^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Kernel driver lineage-pem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) =========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Supported devices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Lineage Compact Power Line Power Entry Modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Prefix: 'lineage-pem'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Addresses scanned: -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Documentation:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) http://www.lineagepower.com/oem/pdf/CPLI2C.pdf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Author: Guenter Roeck <linux@roeck-us.net>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) This driver supports various Lineage Compact Power Line DC/DC and AC/DC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) converters such as CP1800, CP2000AC, CP2000DC, CP2100DC, and others.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) Lineage CPL power entry modules are nominally PMBus compliant. However, most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) standard PMBus commands are not supported. Specifically, all hardware monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) and status reporting commands are non-standard. For this reason, a standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) PMBus driver can not be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) Usage Notes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) This driver does not probe for Lineage CPL devices, since there is no register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) which can be safely used to identify the chip. You will have to instantiate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) the devices explicitly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) Example: the following will load the driver for a Lineage PEM at address 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) on I2C bus #1::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) $ modprobe lineage-pem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) $ echo lineage-pem 0x40 > /sys/bus/i2c/devices/i2c-1/new_device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) All Lineage CPL power entry modules have a built-in I2C bus master selector
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) (PCA9541). To ensure device access, this driver should only be used as client
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) driver to the pca9541 I2C master selector driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Sysfs entries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) -------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) All Lineage CPL devices report output voltage and device temperature as well as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) alarms for output voltage, temperature, input voltage, input current, input power,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) and fan status.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) Input voltage, input current, input power, and fan speed measurement is only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) supported on newer devices. The driver detects if those attributes are supported,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) and only creates respective sysfs entries if they are.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) ======================= ===============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) in1_input Output voltage (mV)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) in1_min_alarm Output undervoltage alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) in1_max_alarm Output overvoltage alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) in1_crit Output voltage critical alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) in2_input Input voltage (mV, optional)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) in2_alarm Input voltage alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) curr1_input Input current (mA, optional)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) curr1_alarm Input overcurrent alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) power1_input Input power (uW, optional)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) power1_alarm Input power alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) fan1_input Fan 1 speed (rpm, optional)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) fan2_input Fan 2 speed (rpm, optional)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) fan3_input Fan 3 speed (rpm, optional)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) temp1_input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) temp1_max
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) temp1_crit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) temp1_alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) temp1_crit_alarm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) temp1_fault
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) ======================= ===============================