1*7ebd8b66SMauro Carvalho ChehabKernel driver lineage-pem 2*7ebd8b66SMauro Carvalho Chehab========================= 3*7ebd8b66SMauro Carvalho Chehab 4*7ebd8b66SMauro Carvalho ChehabSupported devices: 5*7ebd8b66SMauro Carvalho Chehab 6*7ebd8b66SMauro Carvalho Chehab * Lineage Compact Power Line Power Entry Modules 7*7ebd8b66SMauro Carvalho Chehab 8*7ebd8b66SMauro Carvalho Chehab Prefix: 'lineage-pem' 9*7ebd8b66SMauro Carvalho Chehab 10*7ebd8b66SMauro Carvalho Chehab Addresses scanned: - 11*7ebd8b66SMauro Carvalho Chehab 12*7ebd8b66SMauro Carvalho Chehab Documentation: 13*7ebd8b66SMauro Carvalho Chehab 14*7ebd8b66SMauro Carvalho Chehab http://www.lineagepower.com/oem/pdf/CPLI2C.pdf 15*7ebd8b66SMauro Carvalho Chehab 16*7ebd8b66SMauro Carvalho ChehabAuthor: Guenter Roeck <linux@roeck-us.net> 17*7ebd8b66SMauro Carvalho Chehab 18*7ebd8b66SMauro Carvalho Chehab 19*7ebd8b66SMauro Carvalho ChehabDescription 20*7ebd8b66SMauro Carvalho Chehab----------- 21*7ebd8b66SMauro Carvalho Chehab 22*7ebd8b66SMauro Carvalho ChehabThis driver supports various Lineage Compact Power Line DC/DC and AC/DC 23*7ebd8b66SMauro Carvalho Chehabconverters such as CP1800, CP2000AC, CP2000DC, CP2100DC, and others. 24*7ebd8b66SMauro Carvalho Chehab 25*7ebd8b66SMauro Carvalho ChehabLineage CPL power entry modules are nominally PMBus compliant. However, most 26*7ebd8b66SMauro Carvalho Chehabstandard PMBus commands are not supported. Specifically, all hardware monitoring 27*7ebd8b66SMauro Carvalho Chehaband status reporting commands are non-standard. For this reason, a standard 28*7ebd8b66SMauro Carvalho ChehabPMBus driver can not be used. 29*7ebd8b66SMauro Carvalho Chehab 30*7ebd8b66SMauro Carvalho Chehab 31*7ebd8b66SMauro Carvalho ChehabUsage Notes 32*7ebd8b66SMauro Carvalho Chehab----------- 33*7ebd8b66SMauro Carvalho Chehab 34*7ebd8b66SMauro Carvalho ChehabThis driver does not probe for Lineage CPL devices, since there is no register 35*7ebd8b66SMauro Carvalho Chehabwhich can be safely used to identify the chip. You will have to instantiate 36*7ebd8b66SMauro Carvalho Chehabthe devices explicitly. 37*7ebd8b66SMauro Carvalho Chehab 38*7ebd8b66SMauro Carvalho ChehabExample: the following will load the driver for a Lineage PEM at address 0x40 39*7ebd8b66SMauro Carvalho Chehabon I2C bus #1:: 40*7ebd8b66SMauro Carvalho Chehab 41*7ebd8b66SMauro Carvalho Chehab $ modprobe lineage-pem 42*7ebd8b66SMauro Carvalho Chehab $ echo lineage-pem 0x40 > /sys/bus/i2c/devices/i2c-1/new_device 43*7ebd8b66SMauro Carvalho Chehab 44*7ebd8b66SMauro Carvalho ChehabAll Lineage CPL power entry modules have a built-in I2C bus master selector 45*7ebd8b66SMauro Carvalho Chehab(PCA9541). To ensure device access, this driver should only be used as client 46*7ebd8b66SMauro Carvalho Chehabdriver to the pca9541 I2C master selector driver. 47*7ebd8b66SMauro Carvalho Chehab 48*7ebd8b66SMauro Carvalho Chehab 49*7ebd8b66SMauro Carvalho ChehabSysfs entries 50*7ebd8b66SMauro Carvalho Chehab------------- 51*7ebd8b66SMauro Carvalho Chehab 52*7ebd8b66SMauro Carvalho ChehabAll Lineage CPL devices report output voltage and device temperature as well as 53*7ebd8b66SMauro Carvalho Chehabalarms for output voltage, temperature, input voltage, input current, input power, 54*7ebd8b66SMauro Carvalho Chehaband fan status. 55*7ebd8b66SMauro Carvalho Chehab 56*7ebd8b66SMauro Carvalho ChehabInput voltage, input current, input power, and fan speed measurement is only 57*7ebd8b66SMauro Carvalho Chehabsupported on newer devices. The driver detects if those attributes are supported, 58*7ebd8b66SMauro Carvalho Chehaband only creates respective sysfs entries if they are. 59*7ebd8b66SMauro Carvalho Chehab 60*7ebd8b66SMauro Carvalho Chehab======================= =============================== 61*7ebd8b66SMauro Carvalho Chehabin1_input Output voltage (mV) 62*7ebd8b66SMauro Carvalho Chehabin1_min_alarm Output undervoltage alarm 63*7ebd8b66SMauro Carvalho Chehabin1_max_alarm Output overvoltage alarm 64*7ebd8b66SMauro Carvalho Chehabin1_crit Output voltage critical alarm 65*7ebd8b66SMauro Carvalho Chehab 66*7ebd8b66SMauro Carvalho Chehabin2_input Input voltage (mV, optional) 67*7ebd8b66SMauro Carvalho Chehabin2_alarm Input voltage alarm 68*7ebd8b66SMauro Carvalho Chehab 69*7ebd8b66SMauro Carvalho Chehabcurr1_input Input current (mA, optional) 70*7ebd8b66SMauro Carvalho Chehabcurr1_alarm Input overcurrent alarm 71*7ebd8b66SMauro Carvalho Chehab 72*7ebd8b66SMauro Carvalho Chehabpower1_input Input power (uW, optional) 73*7ebd8b66SMauro Carvalho Chehabpower1_alarm Input power alarm 74*7ebd8b66SMauro Carvalho Chehab 75*7ebd8b66SMauro Carvalho Chehabfan1_input Fan 1 speed (rpm, optional) 76*7ebd8b66SMauro Carvalho Chehabfan2_input Fan 2 speed (rpm, optional) 77*7ebd8b66SMauro Carvalho Chehabfan3_input Fan 3 speed (rpm, optional) 78*7ebd8b66SMauro Carvalho Chehab 79*7ebd8b66SMauro Carvalho Chehabtemp1_input 80*7ebd8b66SMauro Carvalho Chehabtemp1_max 81*7ebd8b66SMauro Carvalho Chehabtemp1_crit 82*7ebd8b66SMauro Carvalho Chehabtemp1_alarm 83*7ebd8b66SMauro Carvalho Chehabtemp1_crit_alarm 84*7ebd8b66SMauro Carvalho Chehabtemp1_fault 85*7ebd8b66SMauro Carvalho Chehab======================= =============================== 86