aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2010-03-05 16:17:13 -0500
committerJean Delvare <khali@linux-fr.org>2010-03-05 16:17:13 -0500
commit6771ea1fff988651593f78c122bc02e80f5100a0 (patch)
treea7583f89769b553d7d8bbba42d30687043cd4a35 /drivers/hwmon
parent64ba9926759792cf7b95f823402e2781edd1b5d4 (diff)
hwmon: (lm90) Add support for the Winbond/Nuvoton W83L771AWG/ASG
This chips is found on several Zotac Ion ITX boards, amongst others. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: MC Matti <mcmatti17@googlemail.com> Cc: Manuel Lamotte-Schubert <mls@pronego.com>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r--drivers/hwmon/Kconfig5
-rw-r--r--drivers/hwmon/lm90.c12
2 files changed, 14 insertions, 3 deletions
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 68cf87749a42..9234c2e2c7d9 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -563,9 +563,10 @@ config SENSORS_LM90
563 depends on I2C 563 depends on I2C
564 help 564 help
565 If you say yes here you get support for National Semiconductor LM90, 565 If you say yes here you get support for National Semiconductor LM90,
566 LM86, LM89 and LM99, Analog Devices ADM1032 and ADT7461, and Maxim 566 LM86, LM89 and LM99, Analog Devices ADM1032 and ADT7461, Maxim
567 MAX6646, MAX6647, MAX6648, MAX6649, MAX6657, MAX6658, MAX6659, 567 MAX6646, MAX6647, MAX6648, MAX6649, MAX6657, MAX6658, MAX6659,
568 MAX6680, MAX6681 and MAX6692 sensor chips. 568 MAX6680, MAX6681 and MAX6692, and Winbond/Nuvoton W83L771AWG/ASG
569 sensor chips.
569 570
570 This driver can also be built as a module. If so, the module 571 This driver can also be built as a module. If so, the module
571 will be called lm90. 572 will be called lm90.
diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
index 7c9bdc167426..ddf617f3a713 100644
--- a/drivers/hwmon/lm90.c
+++ b/drivers/hwmon/lm90.c
@@ -93,7 +93,8 @@
93static const unsigned short normal_i2c[] = { 93static const unsigned short normal_i2c[] = {
94 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END }; 94 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
95 95
96enum chips { lm90, adm1032, lm99, lm86, max6657, adt7461, max6680, max6646 }; 96enum chips { lm90, adm1032, lm99, lm86, max6657, adt7461, max6680, max6646,
97 w83l771 };
97 98
98/* 99/*
99 * The LM90 registers 100 * The LM90 registers
@@ -173,6 +174,7 @@ static const struct i2c_device_id lm90_id[] = {
173 { "max6659", max6657 }, 174 { "max6659", max6657 },
174 { "max6680", max6680 }, 175 { "max6680", max6680 },
175 { "max6681", max6680 }, 176 { "max6681", max6680 },
177 { "w83l771", w83l771 },
176 { } 178 { }
177}; 179};
178MODULE_DEVICE_TABLE(i2c, lm90_id); 180MODULE_DEVICE_TABLE(i2c, lm90_id);
@@ -758,6 +760,14 @@ static int lm90_detect(struct i2c_client *new_client,
758 && reg_convrate <= 0x07) { 760 && reg_convrate <= 0x07) {
759 name = "max6646"; 761 name = "max6646";
760 } 762 }
763 } else
764 if (address == 0x4C
765 && man_id == 0x5C) { /* Winbond/Nuvoton */
766 if ((chip_id & 0xFE) == 0x10 /* W83L771AWG/ASG */
767 && (reg_config1 & 0x2A) == 0x00
768 && reg_convrate <= 0x08) {
769 name = "w83l771";
770 }
761 } 771 }
762 772
763 if (!name) { /* identification failed */ 773 if (!name) { /* identification failed */