17ebd8b66SMauro Carvalho ChehabKernel driver lm90 27ebd8b66SMauro Carvalho Chehab================== 37ebd8b66SMauro Carvalho Chehab 47ebd8b66SMauro Carvalho ChehabSupported chips: 57ebd8b66SMauro Carvalho Chehab 67ebd8b66SMauro Carvalho Chehab * National Semiconductor LM90 77ebd8b66SMauro Carvalho Chehab 87ebd8b66SMauro Carvalho Chehab Prefix: 'lm90' 97ebd8b66SMauro Carvalho Chehab 107ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 117ebd8b66SMauro Carvalho Chehab 127ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the National Semiconductor website 137ebd8b66SMauro Carvalho Chehab 147ebd8b66SMauro Carvalho Chehab http://www.national.com/pf/LM/LM90.html 157ebd8b66SMauro Carvalho Chehab 167ebd8b66SMauro Carvalho Chehab * National Semiconductor LM89 177ebd8b66SMauro Carvalho Chehab 187ebd8b66SMauro Carvalho Chehab Prefix: 'lm89' (no auto-detection) 197ebd8b66SMauro Carvalho Chehab 207ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c and 0x4d 217ebd8b66SMauro Carvalho Chehab 227ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the National Semiconductor website 237ebd8b66SMauro Carvalho Chehab 247ebd8b66SMauro Carvalho Chehab http://www.national.com/mpf/LM/LM89.html 257ebd8b66SMauro Carvalho Chehab 267ebd8b66SMauro Carvalho Chehab * National Semiconductor LM99 277ebd8b66SMauro Carvalho Chehab 287ebd8b66SMauro Carvalho Chehab Prefix: 'lm99' 297ebd8b66SMauro Carvalho Chehab 307ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c and 0x4d 317ebd8b66SMauro Carvalho Chehab 327ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the National Semiconductor website 337ebd8b66SMauro Carvalho Chehab 347ebd8b66SMauro Carvalho Chehab http://www.national.com/pf/LM/LM99.html 357ebd8b66SMauro Carvalho Chehab 367ebd8b66SMauro Carvalho Chehab * National Semiconductor LM86 377ebd8b66SMauro Carvalho Chehab 387ebd8b66SMauro Carvalho Chehab Prefix: 'lm86' 397ebd8b66SMauro Carvalho Chehab 407ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 417ebd8b66SMauro Carvalho Chehab 427ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the National Semiconductor website 437ebd8b66SMauro Carvalho Chehab 447ebd8b66SMauro Carvalho Chehab http://www.national.com/mpf/LM/LM86.html 457ebd8b66SMauro Carvalho Chehab 467ebd8b66SMauro Carvalho Chehab * Analog Devices ADM1032 477ebd8b66SMauro Carvalho Chehab 487ebd8b66SMauro Carvalho Chehab Prefix: 'adm1032' 497ebd8b66SMauro Carvalho Chehab 507ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c and 0x4d 517ebd8b66SMauro Carvalho Chehab 527ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the ON Semiconductor website 537ebd8b66SMauro Carvalho Chehab 546c7b66beSAlexander A. Klimov https://www.onsemi.com/PowerSolutions/product.do?id=ADM1032 557ebd8b66SMauro Carvalho Chehab 567ebd8b66SMauro Carvalho Chehab * Analog Devices ADT7461 577ebd8b66SMauro Carvalho Chehab 587ebd8b66SMauro Carvalho Chehab Prefix: 'adt7461' 597ebd8b66SMauro Carvalho Chehab 607ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c and 0x4d 617ebd8b66SMauro Carvalho Chehab 627ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the ON Semiconductor website 637ebd8b66SMauro Carvalho Chehab 646c7b66beSAlexander A. Klimov https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461 657ebd8b66SMauro Carvalho Chehab 667ebd8b66SMauro Carvalho Chehab * Analog Devices ADT7461A 677ebd8b66SMauro Carvalho Chehab 687ebd8b66SMauro Carvalho Chehab Prefix: 'adt7461a' 697ebd8b66SMauro Carvalho Chehab 707ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c and 0x4d 717ebd8b66SMauro Carvalho Chehab 727ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the ON Semiconductor website 737ebd8b66SMauro Carvalho Chehab 746c7b66beSAlexander A. Klimov https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461A 757ebd8b66SMauro Carvalho Chehab 767ebd8b66SMauro Carvalho Chehab * ON Semiconductor NCT1008 777ebd8b66SMauro Carvalho Chehab 787ebd8b66SMauro Carvalho Chehab Prefix: 'nct1008' 797ebd8b66SMauro Carvalho Chehab 807ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c and 0x4d 817ebd8b66SMauro Carvalho Chehab 827ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the ON Semiconductor website 837ebd8b66SMauro Carvalho Chehab 846c7b66beSAlexander A. Klimov https://www.onsemi.com/PowerSolutions/product.do?id=NCT1008 857ebd8b66SMauro Carvalho Chehab 867ebd8b66SMauro Carvalho Chehab * Maxim MAX6646 877ebd8b66SMauro Carvalho Chehab 887ebd8b66SMauro Carvalho Chehab Prefix: 'max6646' 897ebd8b66SMauro Carvalho Chehab 907ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4d 917ebd8b66SMauro Carvalho Chehab 927ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 937ebd8b66SMauro Carvalho Chehab 947ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497 957ebd8b66SMauro Carvalho Chehab 967ebd8b66SMauro Carvalho Chehab * Maxim MAX6647 977ebd8b66SMauro Carvalho Chehab 987ebd8b66SMauro Carvalho Chehab Prefix: 'max6646' 997ebd8b66SMauro Carvalho Chehab 1007ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4e 1017ebd8b66SMauro Carvalho Chehab 1027ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1037ebd8b66SMauro Carvalho Chehab 1047ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497 1057ebd8b66SMauro Carvalho Chehab 1067ebd8b66SMauro Carvalho Chehab * Maxim MAX6648 1077ebd8b66SMauro Carvalho Chehab 1087ebd8b66SMauro Carvalho Chehab Prefix: 'max6646' 1097ebd8b66SMauro Carvalho Chehab 1107ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 1117ebd8b66SMauro Carvalho Chehab 1127ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1137ebd8b66SMauro Carvalho Chehab 1147ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500 1157ebd8b66SMauro Carvalho Chehab 1167ebd8b66SMauro Carvalho Chehab * Maxim MAX6649 1177ebd8b66SMauro Carvalho Chehab 1187ebd8b66SMauro Carvalho Chehab Prefix: 'max6646' 1197ebd8b66SMauro Carvalho Chehab 1207ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 1217ebd8b66SMauro Carvalho Chehab 1227ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1237ebd8b66SMauro Carvalho Chehab 1247ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497 1257ebd8b66SMauro Carvalho Chehab 126229d495dSJosh Lehan * Maxim MAX6654 127229d495dSJosh Lehan 128229d495dSJosh Lehan Prefix: 'max6654' 129229d495dSJosh Lehan 130229d495dSJosh Lehan Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 131229d495dSJosh Lehan 132229d495dSJosh Lehan 0x4c, 0x4d and 0x4e 133229d495dSJosh Lehan 134229d495dSJosh Lehan Datasheet: Publicly available at the Maxim website 135229d495dSJosh Lehan 136229d495dSJosh Lehan https://www.maximintegrated.com/en/products/sensors/MAX6654.html 137229d495dSJosh Lehan 1387ebd8b66SMauro Carvalho Chehab * Maxim MAX6657 1397ebd8b66SMauro Carvalho Chehab 1407ebd8b66SMauro Carvalho Chehab Prefix: 'max6657' 1417ebd8b66SMauro Carvalho Chehab 1427ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 1437ebd8b66SMauro Carvalho Chehab 1447ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1457ebd8b66SMauro Carvalho Chehab 1467ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 1477ebd8b66SMauro Carvalho Chehab 1487ebd8b66SMauro Carvalho Chehab * Maxim MAX6658 1497ebd8b66SMauro Carvalho Chehab 1507ebd8b66SMauro Carvalho Chehab Prefix: 'max6657' 1517ebd8b66SMauro Carvalho Chehab 1527ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 1537ebd8b66SMauro Carvalho Chehab 1547ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1557ebd8b66SMauro Carvalho Chehab 1567ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 1577ebd8b66SMauro Carvalho Chehab 1587ebd8b66SMauro Carvalho Chehab * Maxim MAX6659 1597ebd8b66SMauro Carvalho Chehab 1607ebd8b66SMauro Carvalho Chehab Prefix: 'max6659' 1617ebd8b66SMauro Carvalho Chehab 1627ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c, 0x4d, 0x4e 1637ebd8b66SMauro Carvalho Chehab 1647ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1657ebd8b66SMauro Carvalho Chehab 1667ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 1677ebd8b66SMauro Carvalho Chehab 1687ebd8b66SMauro Carvalho Chehab * Maxim MAX6680 1697ebd8b66SMauro Carvalho Chehab 1707ebd8b66SMauro Carvalho Chehab Prefix: 'max6680' 1717ebd8b66SMauro Carvalho Chehab 1727ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 1737ebd8b66SMauro Carvalho Chehab 1747ebd8b66SMauro Carvalho Chehab 0x4c, 0x4d and 0x4e 1757ebd8b66SMauro Carvalho Chehab 1767ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1777ebd8b66SMauro Carvalho Chehab 1787ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370 1797ebd8b66SMauro Carvalho Chehab 1807ebd8b66SMauro Carvalho Chehab * Maxim MAX6681 1817ebd8b66SMauro Carvalho Chehab 1827ebd8b66SMauro Carvalho Chehab Prefix: 'max6680' 1837ebd8b66SMauro Carvalho Chehab 1847ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 1857ebd8b66SMauro Carvalho Chehab 1867ebd8b66SMauro Carvalho Chehab 0x4c, 0x4d and 0x4e 1877ebd8b66SMauro Carvalho Chehab 1887ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1897ebd8b66SMauro Carvalho Chehab 1907ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370 1917ebd8b66SMauro Carvalho Chehab 1927ebd8b66SMauro Carvalho Chehab * Maxim MAX6692 1937ebd8b66SMauro Carvalho Chehab 1947ebd8b66SMauro Carvalho Chehab Prefix: 'max6646' 1957ebd8b66SMauro Carvalho Chehab 1967ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 1977ebd8b66SMauro Carvalho Chehab 1987ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 1997ebd8b66SMauro Carvalho Chehab 2007ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500 2017ebd8b66SMauro Carvalho Chehab 2027ebd8b66SMauro Carvalho Chehab * Maxim MAX6695 2037ebd8b66SMauro Carvalho Chehab 2047ebd8b66SMauro Carvalho Chehab Prefix: 'max6695' 2057ebd8b66SMauro Carvalho Chehab 2067ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x18 2077ebd8b66SMauro Carvalho Chehab 2087ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 2097ebd8b66SMauro Carvalho Chehab 2107ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/datasheet/index.mvp/id/4199 2117ebd8b66SMauro Carvalho Chehab 2127ebd8b66SMauro Carvalho Chehab * Maxim MAX6696 2137ebd8b66SMauro Carvalho Chehab 2147ebd8b66SMauro Carvalho Chehab Prefix: 'max6695' 2157ebd8b66SMauro Carvalho Chehab 2167ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 2177ebd8b66SMauro Carvalho Chehab 2187ebd8b66SMauro Carvalho Chehab 0x4c, 0x4d and 0x4e 2197ebd8b66SMauro Carvalho Chehab 2207ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Maxim website 2217ebd8b66SMauro Carvalho Chehab 2227ebd8b66SMauro Carvalho Chehab http://www.maxim-ic.com/datasheet/index.mvp/id/4199 2237ebd8b66SMauro Carvalho Chehab 2247ebd8b66SMauro Carvalho Chehab * Winbond/Nuvoton W83L771W/G 2257ebd8b66SMauro Carvalho Chehab 2267ebd8b66SMauro Carvalho Chehab Prefix: 'w83l771' 2277ebd8b66SMauro Carvalho Chehab 2287ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 2297ebd8b66SMauro Carvalho Chehab 2307ebd8b66SMauro Carvalho Chehab Datasheet: No longer available 2317ebd8b66SMauro Carvalho Chehab 2327ebd8b66SMauro Carvalho Chehab * Winbond/Nuvoton W83L771AWG/ASG 2337ebd8b66SMauro Carvalho Chehab 2347ebd8b66SMauro Carvalho Chehab Prefix: 'w83l771' 2357ebd8b66SMauro Carvalho Chehab 2367ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 2377ebd8b66SMauro Carvalho Chehab 2387ebd8b66SMauro Carvalho Chehab Datasheet: Not publicly available, can be requested from Nuvoton 2397ebd8b66SMauro Carvalho Chehab 2407ebd8b66SMauro Carvalho Chehab * Philips/NXP SA56004X 2417ebd8b66SMauro Carvalho Chehab 2427ebd8b66SMauro Carvalho Chehab Prefix: 'sa56004' 2437ebd8b66SMauro Carvalho Chehab 2447ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x48 through 0x4F 2457ebd8b66SMauro Carvalho Chehab 2467ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at NXP website 2477ebd8b66SMauro Carvalho Chehab 2487ebd8b66SMauro Carvalho Chehab http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf 2497ebd8b66SMauro Carvalho Chehab 2507ebd8b66SMauro Carvalho Chehab * GMT G781 2517ebd8b66SMauro Carvalho Chehab 2527ebd8b66SMauro Carvalho Chehab Prefix: 'g781' 2537ebd8b66SMauro Carvalho Chehab 2547ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c, 0x4d 2557ebd8b66SMauro Carvalho Chehab 2567ebd8b66SMauro Carvalho Chehab Datasheet: Not publicly available from GMT 2577ebd8b66SMauro Carvalho Chehab 2587ebd8b66SMauro Carvalho Chehab * Texas Instruments TMP451 2597ebd8b66SMauro Carvalho Chehab 2607ebd8b66SMauro Carvalho Chehab Prefix: 'tmp451' 2617ebd8b66SMauro Carvalho Chehab 2627ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x4c 2637ebd8b66SMauro Carvalho Chehab 2647ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at TI website 2657ebd8b66SMauro Carvalho Chehab 2666c7b66beSAlexander A. Klimov https://www.ti.com/litv/pdf/sbos686 2677ebd8b66SMauro Carvalho Chehab 268f8344f76SGuenter Roeck * Texas Instruments TMP461 269f8344f76SGuenter Roeck 270f8344f76SGuenter Roeck Prefix: 'tmp461' 271f8344f76SGuenter Roeck 272f8344f76SGuenter Roeck Addresses scanned: I2C 0x48 through 0x4F 273f8344f76SGuenter Roeck 274f8344f76SGuenter Roeck Datasheet: Publicly available at TI website 275f8344f76SGuenter Roeck 276f8344f76SGuenter Roeck https://www.ti.com/lit/gpn/tmp461 277f8344f76SGuenter Roeck 2787ebd8b66SMauro Carvalho ChehabAuthor: Jean Delvare <jdelvare@suse.de> 2797ebd8b66SMauro Carvalho Chehab 2807ebd8b66SMauro Carvalho Chehab 2817ebd8b66SMauro Carvalho ChehabDescription 2827ebd8b66SMauro Carvalho Chehab----------- 2837ebd8b66SMauro Carvalho Chehab 2847ebd8b66SMauro Carvalho ChehabThe LM90 is a digital temperature sensor. It senses its own temperature as 2857ebd8b66SMauro Carvalho Chehabwell as the temperature of up to one external diode. It is compatible 2867ebd8b66SMauro Carvalho Chehabwith many other devices, many of which are supported by this driver. 2877ebd8b66SMauro Carvalho Chehab 2887ebd8b66SMauro Carvalho ChehabNote that there is no easy way to differentiate between the MAX6657, 2897ebd8b66SMauro Carvalho ChehabMAX6658 and MAX6659 variants. The extra features of the MAX6659 are only 2907ebd8b66SMauro Carvalho Chehabsupported by this driver if the chip is located at address 0x4d or 0x4e, 2917ebd8b66SMauro Carvalho Chehabor if the chip type is explicitly selected as max6659. 2927ebd8b66SMauro Carvalho ChehabThe MAX6680 and MAX6681 only differ in their pinout, therefore they obviously 2937ebd8b66SMauro Carvalho Chehabcan't (and don't need to) be distinguished. 2947ebd8b66SMauro Carvalho Chehab 2957ebd8b66SMauro Carvalho ChehabThe specificity of this family of chipsets over the ADM1021/LM84 2967ebd8b66SMauro Carvalho Chehabfamily is that it features critical limits with hysteresis, and an 2977ebd8b66SMauro Carvalho Chehabincreased resolution of the remote temperature measurement. 2987ebd8b66SMauro Carvalho Chehab 2997ebd8b66SMauro Carvalho ChehabThe different chipsets of the family are not strictly identical, although 3007ebd8b66SMauro Carvalho Chehabvery similar. For reference, here comes a non-exhaustive list of specific 3017ebd8b66SMauro Carvalho Chehabfeatures: 3027ebd8b66SMauro Carvalho Chehab 3037ebd8b66SMauro Carvalho ChehabLM90: 3047ebd8b66SMauro Carvalho Chehab * Filter and alert configuration register at 0xBF. 3057ebd8b66SMauro Carvalho Chehab * ALERT is triggered by temperatures over critical limits. 3067ebd8b66SMauro Carvalho Chehab 3077ebd8b66SMauro Carvalho ChehabLM86 and LM89: 3087ebd8b66SMauro Carvalho Chehab * Same as LM90 3097ebd8b66SMauro Carvalho Chehab * Better external channel accuracy 3107ebd8b66SMauro Carvalho Chehab 3117ebd8b66SMauro Carvalho ChehabLM99: 3127ebd8b66SMauro Carvalho Chehab * Same as LM89 3137ebd8b66SMauro Carvalho Chehab * External temperature shifted by 16 degrees down 3147ebd8b66SMauro Carvalho Chehab 3157ebd8b66SMauro Carvalho ChehabADM1032: 3167ebd8b66SMauro Carvalho Chehab * Consecutive alert register at 0x22. 3177ebd8b66SMauro Carvalho Chehab * Conversion averaging. 3187ebd8b66SMauro Carvalho Chehab * Up to 64 conversions/s. 3197ebd8b66SMauro Carvalho Chehab * ALERT is triggered by open remote sensor. 3207ebd8b66SMauro Carvalho Chehab * SMBus PEC support for Write Byte and Receive Byte transactions. 3217ebd8b66SMauro Carvalho Chehab 3227ebd8b66SMauro Carvalho ChehabADT7461, ADT7461A, NCT1008: 3237ebd8b66SMauro Carvalho Chehab * Extended temperature range (breaks compatibility) 3247ebd8b66SMauro Carvalho Chehab * Lower resolution for remote temperature 3257ebd8b66SMauro Carvalho Chehab 326229d495dSJosh LehanMAX6654: 327229d495dSJosh Lehan * Better local resolution 328229d495dSJosh Lehan * Selectable address 329229d495dSJosh Lehan * Remote sensor type selection 330229d495dSJosh Lehan * Extended temperature range 331229d495dSJosh Lehan * Extended resolution only available when conversion rate <= 1 Hz 332229d495dSJosh Lehan 3337ebd8b66SMauro Carvalho ChehabMAX6657 and MAX6658: 3347ebd8b66SMauro Carvalho Chehab * Better local resolution 3357ebd8b66SMauro Carvalho Chehab * Remote sensor type selection 3367ebd8b66SMauro Carvalho Chehab 3377ebd8b66SMauro Carvalho ChehabMAX6659: 3387ebd8b66SMauro Carvalho Chehab * Better local resolution 3397ebd8b66SMauro Carvalho Chehab * Selectable address 3407ebd8b66SMauro Carvalho Chehab * Second critical temperature limit 3417ebd8b66SMauro Carvalho Chehab * Remote sensor type selection 3427ebd8b66SMauro Carvalho Chehab 3437ebd8b66SMauro Carvalho ChehabMAX6680 and MAX6681: 3447ebd8b66SMauro Carvalho Chehab * Selectable address 3457ebd8b66SMauro Carvalho Chehab * Remote sensor type selection 3467ebd8b66SMauro Carvalho Chehab 3477ebd8b66SMauro Carvalho ChehabMAX6695 and MAX6696: 3487ebd8b66SMauro Carvalho Chehab * Better local resolution 3497ebd8b66SMauro Carvalho Chehab * Selectable address (max6696) 3507ebd8b66SMauro Carvalho Chehab * Second critical temperature limit 3517ebd8b66SMauro Carvalho Chehab * Two remote sensors 3527ebd8b66SMauro Carvalho Chehab 3537ebd8b66SMauro Carvalho ChehabW83L771W/G 3547ebd8b66SMauro Carvalho Chehab * The G variant is lead-free, otherwise similar to the W. 3557ebd8b66SMauro Carvalho Chehab * Filter and alert configuration register at 0xBF 3567ebd8b66SMauro Carvalho Chehab * Moving average (depending on conversion rate) 3577ebd8b66SMauro Carvalho Chehab 3587ebd8b66SMauro Carvalho ChehabW83L771AWG/ASG 3597ebd8b66SMauro Carvalho Chehab * Successor of the W83L771W/G, same features. 3607ebd8b66SMauro Carvalho Chehab * The AWG and ASG variants only differ in package format. 3617ebd8b66SMauro Carvalho Chehab * Diode ideality factor configuration (remote sensor) at 0xE3 3627ebd8b66SMauro Carvalho Chehab 3637ebd8b66SMauro Carvalho ChehabSA56004X: 3647ebd8b66SMauro Carvalho Chehab * Better local resolution 3657ebd8b66SMauro Carvalho Chehab 3667ebd8b66SMauro Carvalho ChehabAll temperature values are given in degrees Celsius. Resolution 3677ebd8b66SMauro Carvalho Chehabis 1.0 degree for the local temperature, 0.125 degree for the remote 368229d495dSJosh Lehantemperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have 369229d495dSJosh Lehana resolution of 0.125 degree for both temperatures. 3707ebd8b66SMauro Carvalho Chehab 3717ebd8b66SMauro Carvalho ChehabEach sensor has its own high and low limits, plus a critical limit. 3727ebd8b66SMauro Carvalho ChehabAdditionally, there is a relative hysteresis value common to both critical 3737ebd8b66SMauro Carvalho Chehabvalues. To make life easier to user-space applications, two absolute values 3747ebd8b66SMauro Carvalho Chehabare exported, one for each channel, but these values are of course linked. 3757ebd8b66SMauro Carvalho ChehabOnly the local hysteresis can be set from user-space, and the same delta 3767ebd8b66SMauro Carvalho Chehabapplies to the remote hysteresis. 3777ebd8b66SMauro Carvalho Chehab 3787ebd8b66SMauro Carvalho ChehabThe lm90 driver will not update its values more frequently than configured with 3797ebd8b66SMauro Carvalho Chehabthe update_interval attribute; reading them more often will do no harm, but will 3807ebd8b66SMauro Carvalho Chehabreturn 'old' values. 3817ebd8b66SMauro Carvalho Chehab 3827ebd8b66SMauro Carvalho ChehabSMBus Alert Support 3837ebd8b66SMauro Carvalho Chehab------------------- 3847ebd8b66SMauro Carvalho Chehab 3857ebd8b66SMauro Carvalho ChehabThis driver has basic support for SMBus alert. When an alert is received, 3867ebd8b66SMauro Carvalho Chehabthe status register is read and the faulty temperature channel is logged. 3877ebd8b66SMauro Carvalho Chehab 3887ebd8b66SMauro Carvalho ChehabThe Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON 3897ebd8b66SMauro Carvalho ChehabSemiconductor chips (NCT1008) do not implement the SMBus alert protocol 3907ebd8b66SMauro Carvalho Chehabproperly so additional care is needed: the ALERT output is disabled when 3917ebd8b66SMauro Carvalho Chehaban alert is received, and is re-enabled only when the alarm is gone. 3927ebd8b66SMauro Carvalho ChehabOtherwise the chip would block alerts from other chips in the bus as long 3937ebd8b66SMauro Carvalho Chehabas the alarm is active. 3947ebd8b66SMauro Carvalho Chehab 3957ebd8b66SMauro Carvalho ChehabPEC Support 3967ebd8b66SMauro Carvalho Chehab----------- 3977ebd8b66SMauro Carvalho Chehab 3987ebd8b66SMauro Carvalho ChehabThe ADM1032 is the only chip of the family which supports PEC. It does 3997ebd8b66SMauro Carvalho Chehabnot support PEC on all transactions though, so some care must be taken. 4007ebd8b66SMauro Carvalho Chehab 4017ebd8b66SMauro Carvalho ChehabWhen reading a register value, the PEC byte is computed and sent by the 4027ebd8b66SMauro Carvalho ChehabADM1032 chip. However, in the case of a combined transaction (SMBus Read 4037ebd8b66SMauro Carvalho ChehabByte), the ADM1032 computes the CRC value over only the second half of 4047ebd8b66SMauro Carvalho Chehabthe message rather than its entirety, because it thinks the first half 4057ebd8b66SMauro Carvalho Chehabof the message belongs to a different transaction. As a result, the CRC 4067ebd8b66SMauro Carvalho Chehabvalue differs from what the SMBus master expects, and all reads fail. 4077ebd8b66SMauro Carvalho Chehab 4087ebd8b66SMauro Carvalho ChehabFor this reason, the lm90 driver will enable PEC for the ADM1032 only if 4097ebd8b66SMauro Carvalho Chehabthe bus supports the SMBus Send Byte and Receive Byte transaction types. 4107ebd8b66SMauro Carvalho ChehabThese transactions will be used to read register values, instead of 4117ebd8b66SMauro Carvalho ChehabSMBus Read Byte, and PEC will work properly. 4127ebd8b66SMauro Carvalho Chehab 4137ebd8b66SMauro Carvalho ChehabAdditionally, the ADM1032 doesn't support SMBus Send Byte with PEC. 4147ebd8b66SMauro Carvalho ChehabInstead, it will try to write the PEC value to the register (because the 4157ebd8b66SMauro Carvalho ChehabSMBus Send Byte transaction with PEC is similar to a Write Byte transaction 4167ebd8b66SMauro Carvalho Chehabwithout PEC), which is not what we want. Thus, PEC is explicitly disabled 4177ebd8b66SMauro Carvalho Chehabon SMBus Send Byte transactions in the lm90 driver. 4187ebd8b66SMauro Carvalho Chehab 4197ebd8b66SMauro Carvalho ChehabPEC on byte data transactions represents a significant increase in bandwidth 4207ebd8b66SMauro Carvalho Chehabusage (+33% for writes, +25% for reads) in normal conditions. With the need 4217ebd8b66SMauro Carvalho Chehabto use two SMBus transaction for reads, this overhead jumps to +50%. Worse, 4227ebd8b66SMauro Carvalho Chehabtwo transactions will typically mean twice as much delay waiting for 4237ebd8b66SMauro Carvalho Chehabtransaction completion, effectively doubling the register cache refresh time. 4247ebd8b66SMauro Carvalho ChehabI guess reliability comes at a price, but it's quite expensive this time. 4257ebd8b66SMauro Carvalho Chehab 426*3b0982ffSGuenter RoeckSo, as not everyone might enjoy the slowdown, PEC is disabled by default and 427*3b0982ffSGuenter Roeckcan be enabled through sysfs. Just write 1 to the "pec" file and PEC will be 428*3b0982ffSGuenter Roeckenabled. Write 0 to that file to disable PEC again. 429