1 Kernel driver pmbus 2 =================== 3 4 Supported chips: 5 6 * Flex BMR310, BMR453, BMR454, BMR456, BMR45 7 BMR490, BMR491, BMR492 8 9 Prefixes: 'bmr310', 'bmr453', 'bmr454', 'b 10 'bmr490', 'bmr491', 'bmr492' 11 12 Addresses scanned: - 13 14 Datasheets: 15 16 https://flexpowermodules.com/products 17 18 19 * ON Semiconductor ADP4000, NCP4200, NCP4208 20 21 Prefixes: 'adp4000', 'ncp4200', 'ncp4208' 22 23 Addresses scanned: - 24 25 Datasheets: 26 27 https://www.onsemi.com/pub_link/Collat 28 29 https://www.onsemi.com/pub_link/Collat 30 31 https://www.onsemi.com/pub_link/Collat 32 33 * Lineage Power 34 35 Prefixes: 'mdt040', 'pdt003', 'pdt006', 'p 36 37 Addresses scanned: - 38 39 Datasheets: 40 41 http://www.lineagepower.com/oem/pdf/PD 42 43 http://www.lineagepower.com/oem/pdf/PD 44 45 http://www.lineagepower.com/oem/pdf/PD 46 47 http://www.lineagepower.com/oem/pdf/UD 48 49 http://www.lineagepower.com/oem/pdf/MD 50 51 * Texas Instruments TPS40400, TPS544B20, TPS 52 53 Prefixes: 'tps40400', 'tps544b20', 'tps544 54 55 Addresses scanned: - 56 57 Datasheets: 58 59 https://www.ti.com/lit/gpn/tps40400 60 61 https://www.ti.com/lit/gpn/tps544b20 62 63 https://www.ti.com/lit/gpn/tps544b25 64 65 https://www.ti.com/lit/gpn/tps544c20 66 67 https://www.ti.com/lit/gpn/tps544c25 68 69 * Maxim MAX20796 70 71 Prefix: 'max20796' 72 73 Addresses scanned: - 74 75 Datasheet: 76 77 Not published 78 79 * Generic PMBus devices 80 81 Prefix: 'pmbus' 82 83 Addresses scanned: - 84 85 Datasheet: n.a. 86 87 88 Author: Guenter Roeck <linux@roeck-us.net> 89 90 91 Description 92 ----------- 93 94 This driver supports hardware monitoring for v 95 It supports voltage, current, power, and tempe 96 by the device. 97 98 Each monitored channel has its own high and lo 99 limit. 100 101 Fan support will be added in a later version o 102 103 104 Usage Notes 105 ----------- 106 107 This driver does not probe for PMBus devices, 108 which can be safely used to identify the chip 109 supported by all chips), and since there is no 110 PMBus devices. You will have to instantiate th 111 112 Example: the following will load the driver fo 113 on I2C bus #1:: 114 115 $ modprobe pmbus 116 $ echo ltc2978 0x60 > /sys/bus/i2c/dev 117 118 119 Platform data support 120 --------------------- 121 122 Support for additional PMBus chips can be adde 123 a new chip specific driver file. For example, 124 Emerson DS1200 power modules might look as fol 125 126 static struct pmbus_driver_info ds1200_info 127 .pages = 1, 128 /* Note: All other sensors are in line 129 .direct[PSC_VOLTAGE_OUT] = true, 130 .direct[PSC_TEMPERATURE] = true, 131 .direct[PSC_CURRENT_OUT] = true, 132 .m[PSC_VOLTAGE_IN] = 1, 133 .b[PSC_VOLTAGE_IN] = 0, 134 .R[PSC_VOLTAGE_IN] = 3, 135 .m[PSC_VOLTAGE_OUT] = 1, 136 .b[PSC_VOLTAGE_OUT] = 0, 137 .R[PSC_VOLTAGE_OUT] = 3, 138 .m[PSC_TEMPERATURE] = 1, 139 .b[PSC_TEMPERATURE] = 0, 140 .R[PSC_TEMPERATURE] = 3, 141 .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE 142 | PMBUS_HAVE_VOUT | PMBUS_H 143 | PMBUS_HAVE_IOUT | PMBUS_H 144 | PMBUS_HAVE_PIN | PMBUS_HA 145 | PMBUS_HAVE_TEMP | PMBUS_H 146 | PMBUS_HAVE_FAN12 | PMBUS_ 147 }; 148 149 static int ds1200_probe(struct i2c_client *c 150 { 151 return pmbus_do_probe(client, &ds1200_ 152 } 153 154 static const struct i2c_device_id ds1200_id[ 155 {"ds1200"}, 156 {} 157 }; 158 159 MODULE_DEVICE_TABLE(i2c, ds1200_id); 160 161 /* This is the driver that will be inserted 162 static struct i2c_driver ds1200_driver = { 163 .driver = { 164 .name = "ds1200", 165 }, 166 .probe = ds1200_probe, 167 .id_table = ds1200_id, 168 }; 169 170 static int __init ds1200_init(void) 171 { 172 return i2c_add_driver(&ds1200_driver); 173 } 174 175 static void __exit ds1200_exit(void) 176 { 177 i2c_del_driver(&ds1200_driver); 178 } 179 180 181 Sysfs entries 182 ------------- 183 184 When probing the chip, the driver identifies w 185 supported, and determines available sensors fr 186 Attribute files only exist if respective senso 187 Labels are provided to inform the user about t 188 a given sysfs entry. 189 190 The following attributes are supported. Limits 191 attributes are read-only. 192 193 ======================= ====================== 194 inX_input Measured voltage. From 195 inX_min Minimum Voltage. 196 From VIN_UV_WARN_LIMIT 197 inX_max Maximum voltage. 198 From VIN_OV_WARN_LIMIT 199 inX_lcrit Critical minimum Volta 200 From VIN_UV_FAULT_LIMI 201 inX_crit Critical maximum volta 202 From VIN_OV_FAULT_LIMI 203 inX_min_alarm Voltage low alarm. Fro 204 inX_max_alarm Voltage high alarm. Fr 205 inX_lcrit_alarm Voltage critical low a 206 From VOLTAGE_UV_FAULT 207 inX_crit_alarm Voltage critical high 208 From VOLTAGE_OV_FAULT 209 inX_label "vin", "vcap", or "vou 210 inX_rated_min Minimum rated voltage. 211 From MFR_VIN_MIN or MF 212 inX_rated_max Maximum rated voltage. 213 From MFR_VIN_MAX or MF 214 215 currX_input Measured current. From 216 currX_max Maximum current. 217 From IIN_OC_WARN_LIMIT 218 currX_lcrit Critical minimum outpu 219 From IOUT_UC_FAULT_LIM 220 currX_crit Critical maximum curre 221 From IIN_OC_FAULT_LIMI 222 currX_alarm Current high alarm. 223 From IIN_OC_WARNING or 224 currX_max_alarm Current high alarm. 225 From IIN_OC_WARN_LIMIT 226 currX_lcrit_alarm Output current critica 227 From IOUT_UC_FAULT sta 228 currX_crit_alarm Current critical high 229 From IIN_OC_FAULT or I 230 currX_label "iin", "iinY", "iinY.Z 231 where Y reflects the p 232 phase. 233 currX_rated_max Maximum rated current. 234 From MFR_IIN_MAX or MF 235 236 powerX_input Measured power. From R 237 powerX_cap Output power cap. From 238 powerX_max Power limit. From PIN_ 239 POUT_OP_WARN_LIMIT reg 240 powerX_crit Critical output power 241 From POUT_OP_FAULT_LIM 242 powerX_alarm Power high alarm. 243 From PIN_OP_WARNING or 244 powerX_crit_alarm Output power critical 245 From POUT_OP_FAULT sta 246 powerX_label "pin", "pinY", "pinY.Z 247 where Y reflects the p 248 phase. 249 powerX_rated_max Maximum rated power. 250 From MFR_PIN_MAX or MF 251 252 tempX_input Measured temperature. 253 From READ_TEMPERATURE_ 254 tempX_min Minimum temperature. F 255 tempX_max Maximum temperature. F 256 tempX_lcrit Critical low temperatu 257 From UT_FAULT_LIMIT re 258 tempX_crit Critical high temperat 259 From OT_FAULT_LIMIT re 260 tempX_min_alarm Chip temperature low a 261 READ_TEMPERATURE_X wit 262 TEMP_UT_WARNING status 263 tempX_max_alarm Chip temperature high 264 READ_TEMPERATURE_X wit 265 TEMP_OT_WARNING status 266 tempX_lcrit_alarm Chip temperature criti 267 READ_TEMPERATURE_X wit 268 TEMP_UT_FAULT status i 269 tempX_crit_alarm Chip temperature criti 270 READ_TEMPERATURE_X wit 271 TEMP_OT_FAULT status i 272 tempX_rated_min Minimum rated temperat 273 From MFR_TAMBIENT_MIN 274 tempX_rated_max Maximum rated temperat 275 From MFR_TAMBIENT_MAX, 276 MFR_MAX_TEMP_3 registe 277 ======================= ======================
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.