mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
hwmon: (lm90) Add explicit support for NCT210
Unlike ADM1023 and compatible chips, NCT210 does not support a temperature offset register. A real chip was found to have a chip revision of 0x3f. Use it to detect NCT210 explicitly. Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
df18fccd99
commit
af4540b112
@ -137,6 +137,16 @@ Supported chips:
|
||||
|
||||
https://www.onsemi.com/PowerSolutions/product.do?id=NCT1008
|
||||
|
||||
* ON Semiconductor NCT210
|
||||
|
||||
Prefix: 'adm1021'
|
||||
|
||||
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
|
||||
|
||||
Datasheet: Publicly available at the ON Semiconductor website
|
||||
|
||||
https://www.onsemi.com/PowerSolutions/product.do?id=NCT210
|
||||
|
||||
* Maxim MAX1617
|
||||
|
||||
Prefix: 'max1617'
|
||||
@ -421,6 +431,10 @@ ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
|
||||
* 8 bit sensor resolution
|
||||
* Low temperature limits
|
||||
|
||||
NCT210:
|
||||
* 11 bit sensor resolution for remote temperature sensor
|
||||
* Low temperature limits
|
||||
|
||||
ADM1021A, ADM1023:
|
||||
* Temperature offset register for remote temperature sensor
|
||||
* 11 bit resolution for remote temperature sensor
|
||||
|
@ -1365,7 +1365,7 @@ config SENSORS_LM90
|
||||
Maxim MAX1617, MAX6642, MAX6646, MAX6647, MAX6648, MAX6649, MAX6654,
|
||||
MAX6657, MAX6658, MAX6659, MAX6680, MAX6681, MAX6692, MAX6695,
|
||||
MAX6696,
|
||||
ON Semiconductor NCT1008, Winbond/Nuvoton W83L771W/G/AWG/ASG,
|
||||
ON Semiconductor NCT1008, NCT210, Winbond/Nuvoton W83L771W/G/AWG/ASG,
|
||||
Philips SA56004, GMT G781, Texas Instruments TMP451 and TMP461
|
||||
sensor chips.
|
||||
|
||||
|
@ -125,7 +125,7 @@ static const unsigned short normal_i2c[] = {
|
||||
enum chips { adm1023, adm1032, adt7461, adt7461a, adt7481,
|
||||
g781, lm84, lm90, lm99,
|
||||
max1617, max6642, max6646, max6648, max6654, max6657, max6659, max6680, max6696,
|
||||
sa56004, tmp451, tmp461, w83l771,
|
||||
nct210, sa56004, tmp451, tmp461, w83l771,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -257,6 +257,7 @@ static const struct i2c_device_id lm90_id[] = {
|
||||
{ "max6696", max6696 },
|
||||
{ "mc1066", max1617 },
|
||||
{ "nct1008", adt7461a },
|
||||
{ "nct210", nct210 },
|
||||
{ "w83l771", w83l771 },
|
||||
{ "sa56004", sa56004 },
|
||||
{ "thmc10", max1617 },
|
||||
@ -533,6 +534,14 @@ static const struct lm90_params lm90_params[] = {
|
||||
.reg_status2 = MAX6696_REG_STATUS2,
|
||||
.reg_local_ext = MAX6657_REG_LOCAL_TEMPL,
|
||||
},
|
||||
[nct210] = {
|
||||
.flags = LM90_HAVE_ALARMS | LM90_HAVE_BROKEN_ALERT
|
||||
| LM90_HAVE_REM_LIMIT_EXT | LM90_HAVE_LOW | LM90_HAVE_CONVRATE
|
||||
| LM90_HAVE_REMOTE_EXT,
|
||||
.alert_alarms = 0x7c,
|
||||
.resolution = 11,
|
||||
.max_convrate = 7,
|
||||
},
|
||||
[w83l771] = {
|
||||
.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT | LM90_HAVE_CRIT
|
||||
| LM90_HAVE_ALARMS | LM90_HAVE_LOW | LM90_HAVE_CONVRATE
|
||||
@ -1768,7 +1777,7 @@ static const char *lm90_detect_analog(struct i2c_client *client, bool common_add
|
||||
!(status & 0x03) && !(config1 & 0x3f) && !(convrate & 0xf8))
|
||||
name = "adm1021";
|
||||
break;
|
||||
case 0x30 ... 0x3f: /* ADM1021A, ADM1023 */
|
||||
case 0x30 ... 0x3e: /* ADM1021A, ADM1023 */
|
||||
/*
|
||||
* ADM1021A and compatible chips will be mis-detected as
|
||||
* ADM1023. Chips labeled 'ADM1021A' and 'ADM1023' were both
|
||||
@ -1786,6 +1795,11 @@ static const char *lm90_detect_analog(struct i2c_client *client, bool common_add
|
||||
!(status & 0x03) && !(config1 & 0x3f) && !(convrate & 0xf8))
|
||||
name = "adm1023";
|
||||
break;
|
||||
case 0x3f: /* NCT210 */
|
||||
if (man_id2 == 0x00 && chip_id2 == 0x00 && common_address &&
|
||||
!(status & 0x03) && !(config1 & 0x3f) && !(convrate & 0xf8))
|
||||
name = "nct210";
|
||||
break;
|
||||
case 0x40 ... 0x4f: /* ADM1032 */
|
||||
if (man_id2 == 0x00 && chip_id2 == 0x00 &&
|
||||
(address == 0x4c || address == 0x4d) && !(config1 & 0x3f) &&
|
||||
|
Loading…
Reference in New Issue
Block a user