1*4882a593SmuzhiyunKernel driver max34440 2*4882a593Smuzhiyun====================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSupported chips: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun * Maxim MAX34440 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun Prefixes: 'max34440' 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Addresses scanned: - 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34440.pdf 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun * Maxim MAX34441 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun PMBus 5-Channel Power-Supply Manager and Intelligent Fan Controller 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun Prefixes: 'max34441' 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun Addresses scanned: - 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34441.pdf 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun * Maxim MAX34446 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun PMBus Power-Supply Data Logger 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun Prefixes: 'max34446' 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun Addresses scanned: - 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34446.pdf 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun * Maxim MAX34451 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun PMBus 16-Channel V/I Monitor and 12-Channel Sequencer/Marginer 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun Prefixes: 'max34451' 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun Addresses scanned: - 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34451.pdf 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun * Maxim MAX34460 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun PMBus 12-Channel Voltage Monitor & Sequencer 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun Prefix: 'max34460' 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun Addresses scanned: - 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34460.pdf 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun * Maxim MAX34461 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun PMBus 16-Channel Voltage Monitor & Sequencer 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun Prefix: 'max34461' 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun Addresses scanned: - 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34461.pdf 63*4882a593Smuzhiyun 64*4882a593SmuzhiyunAuthor: Guenter Roeck <linux@roeck-us.net> 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun 67*4882a593SmuzhiyunDescription 68*4882a593Smuzhiyun----------- 69*4882a593Smuzhiyun 70*4882a593SmuzhiyunThis driver supports hardware monitoring for Maxim MAX34440 PMBus 6-Channel 71*4882a593SmuzhiyunPower-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager 72*4882a593Smuzhiyunand Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger. 73*4882a593SmuzhiyunIt also supports the MAX34451, MAX34460, and MAX34461 PMBus Voltage Monitor & 74*4882a593SmuzhiyunSequencers. The MAX34451 supports monitoring voltage or current of 12 channels 75*4882a593Smuzhiyunbased on GIN pins. The MAX34460 supports 12 voltage channels, and the MAX34461 76*4882a593Smuzhiyunsupports 16 voltage channels. 77*4882a593Smuzhiyun 78*4882a593SmuzhiyunThe driver is a client driver to the core PMBus driver. Please see 79*4882a593SmuzhiyunDocumentation/hwmon/pmbus.rst for details on PMBus client drivers. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun 82*4882a593SmuzhiyunUsage Notes 83*4882a593Smuzhiyun----------- 84*4882a593Smuzhiyun 85*4882a593SmuzhiyunThis driver does not auto-detect devices. You will have to instantiate the 86*4882a593Smuzhiyundevices explicitly. Please see Documentation/i2c/instantiating-devices.rst for 87*4882a593Smuzhiyundetails. 88*4882a593Smuzhiyun 89*4882a593SmuzhiyunFor MAX34446, the value of the currX_crit attribute determines if current or 90*4882a593Smuzhiyunvoltage measurement is enabled for a given channel. Voltage measurement is 91*4882a593Smuzhiyunenabled if currX_crit is set to 0; current measurement is enabled if the 92*4882a593Smuzhiyunattribute is set to a positive value. Power measurement is only enabled if 93*4882a593Smuzhiyunchannel 1 (3) is configured for voltage measurement, and channel 2 (4) is 94*4882a593Smuzhiyunconfigured for current measurement. 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunPlatform data support 98*4882a593Smuzhiyun--------------------- 99*4882a593Smuzhiyun 100*4882a593SmuzhiyunThe driver supports standard PMBus driver platform data. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun 103*4882a593SmuzhiyunSysfs entries 104*4882a593Smuzhiyun------------- 105*4882a593Smuzhiyun 106*4882a593SmuzhiyunThe following attributes are supported. Limits are read-write; all other 107*4882a593Smuzhiyunattributes are read-only. 108*4882a593Smuzhiyun 109*4882a593SmuzhiyunIn 110*4882a593Smuzhiyun~~ 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun======================= ======================================================= 113*4882a593Smuzhiyunin[1-6]_label "vout[1-6]". 114*4882a593Smuzhiyunin[1-6]_input Measured voltage. From READ_VOUT register. 115*4882a593Smuzhiyunin[1-6]_min Minimum Voltage. From VOUT_UV_WARN_LIMIT register. 116*4882a593Smuzhiyunin[1-6]_max Maximum voltage. From VOUT_OV_WARN_LIMIT register. 117*4882a593Smuzhiyunin[1-6]_lcrit Critical minimum Voltage. VOUT_UV_FAULT_LIMIT register. 118*4882a593Smuzhiyunin[1-6]_crit Critical maximum voltage. From VOUT_OV_FAULT_LIMIT 119*4882a593Smuzhiyun register. 120*4882a593Smuzhiyunin[1-6]_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status. 121*4882a593Smuzhiyunin[1-6]_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status. 122*4882a593Smuzhiyunin[1-6]_lcrit_alarm Voltage critical low alarm. From VOLTAGE_UV_FAULT 123*4882a593Smuzhiyun status. 124*4882a593Smuzhiyunin[1-6]_crit_alarm Voltage critical high alarm. From VOLTAGE_OV_FAULT 125*4882a593Smuzhiyun status. 126*4882a593Smuzhiyunin[1-6]_lowest Historical minimum voltage. 127*4882a593Smuzhiyunin[1-6]_highest Historical maximum voltage. 128*4882a593Smuzhiyunin[1-6]_reset_history Write any value to reset history. 129*4882a593Smuzhiyun======================= ======================================================= 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun.. note:: MAX34446 only supports in[1-4]. 132*4882a593Smuzhiyun 133*4882a593SmuzhiyunCurr 134*4882a593Smuzhiyun~~~~ 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun======================= ======================================================== 137*4882a593Smuzhiyuncurr[1-6]_label "iout[1-6]". 138*4882a593Smuzhiyuncurr[1-6]_input Measured current. From READ_IOUT register. 139*4882a593Smuzhiyuncurr[1-6]_max Maximum current. From IOUT_OC_WARN_LIMIT register. 140*4882a593Smuzhiyuncurr[1-6]_crit Critical maximum current. From IOUT_OC_FAULT_LIMIT 141*4882a593Smuzhiyun register. 142*4882a593Smuzhiyuncurr[1-6]_max_alarm Current high alarm. From IOUT_OC_WARNING status. 143*4882a593Smuzhiyuncurr[1-6]_crit_alarm Current critical high alarm. From IOUT_OC_FAULT status. 144*4882a593Smuzhiyuncurr[1-4]_average Historical average current (MAX34446/34451 only). 145*4882a593Smuzhiyuncurr[1-6]_highest Historical maximum current. 146*4882a593Smuzhiyuncurr[1-6]_reset_history Write any value to reset history. 147*4882a593Smuzhiyun======================= ======================================================== 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun.. note:: 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun - in6 and curr6 attributes only exist for MAX34440. 152*4882a593Smuzhiyun - MAX34446 only supports curr[1-4]. 153*4882a593Smuzhiyun 154*4882a593SmuzhiyunPower 155*4882a593Smuzhiyun~~~~~ 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun======================= ======================================================== 158*4882a593Smuzhiyunpower[1,3]_label "pout[1,3]" 159*4882a593Smuzhiyunpower[1,3]_input Measured power. 160*4882a593Smuzhiyunpower[1,3]_average Historical average power. 161*4882a593Smuzhiyunpower[1,3]_highest Historical maximum power. 162*4882a593Smuzhiyun======================= ======================================================== 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun.. note:: Power attributes only exist for MAX34446. 165*4882a593Smuzhiyun 166*4882a593SmuzhiyunTemp 167*4882a593Smuzhiyun~~~~ 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun======================= ======================================================== 170*4882a593Smuzhiyuntemp[1-8]_input Measured temperatures. From READ_TEMPERATURE_1 register. 171*4882a593Smuzhiyun temp1 is the chip's internal temperature. temp2..temp5 172*4882a593Smuzhiyun are remote I2C temperature sensors. For MAX34441, temp6 173*4882a593Smuzhiyun is a remote thermal-diode sensor. For MAX34440, temp6..8 174*4882a593Smuzhiyun are remote I2C temperature sensors. 175*4882a593Smuzhiyuntemp[1-8]_max Maximum temperature. From OT_WARN_LIMIT register. 176*4882a593Smuzhiyuntemp[1-8]_crit Critical high temperature. From OT_FAULT_LIMIT register. 177*4882a593Smuzhiyuntemp[1-8]_max_alarm Temperature high alarm. 178*4882a593Smuzhiyuntemp[1-8]_crit_alarm Temperature critical high alarm. 179*4882a593Smuzhiyuntemp[1-8]_average Historical average temperature (MAX34446 only). 180*4882a593Smuzhiyuntemp[1-8]_highest Historical maximum temperature. 181*4882a593Smuzhiyuntemp[1-8]_reset_history Write any value to reset history. 182*4882a593Smuzhiyun======================= ======================================================== 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun.. note:: 186*4882a593Smuzhiyun - temp7 and temp8 attributes only exist for MAX34440. 187*4882a593Smuzhiyun - MAX34446 only supports temp[1-3]. 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun.. note:: 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun - MAX34451 supports attribute groups in[1-16] (or curr[1-16] based on 193*4882a593Smuzhiyun input pins) and temp[1-5]. 194*4882a593Smuzhiyun - MAX34460 supports attribute groups in[1-12] and temp[1-5]. 195*4882a593Smuzhiyun - MAX34461 supports attribute groups in[1-16] and temp[1-5]. 196