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>
This commit is contained in:
parent
64ba992675
commit
6771ea1fff
@ -84,6 +84,10 @@ Supported chips:
|
|||||||
Addresses scanned: I2C 0x4c
|
Addresses scanned: I2C 0x4c
|
||||||
Datasheet: Publicly available at the Maxim website
|
Datasheet: Publicly available at the Maxim website
|
||||||
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
|
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
|
||||||
|
* Winbond/Nuvoton W83L771AWG/ASG
|
||||||
|
Prefix: 'w83l771'
|
||||||
|
Addresses scanned: I2C 0x4c
|
||||||
|
Datasheet: Not publicly available, can be requested from Nuvoton
|
||||||
|
|
||||||
|
|
||||||
Author: Jean Delvare <khali@linux-fr.org>
|
Author: Jean Delvare <khali@linux-fr.org>
|
||||||
@ -147,6 +151,12 @@ MAX6680 and MAX6681:
|
|||||||
* Selectable address
|
* Selectable address
|
||||||
* Remote sensor type selection
|
* Remote sensor type selection
|
||||||
|
|
||||||
|
W83L771AWG/ASG
|
||||||
|
* The AWG and ASG variants only differ in package format.
|
||||||
|
* Filter and alert configuration register at 0xBF
|
||||||
|
* Diode ideality factor configuration (remote sensor) at 0xE3
|
||||||
|
* Moving average (depending on conversion rate)
|
||||||
|
|
||||||
All temperature values are given in degrees Celsius. Resolution
|
All temperature values are given in degrees Celsius. Resolution
|
||||||
is 1.0 degree for the local temperature, 0.125 degree for the remote
|
is 1.0 degree for the local temperature, 0.125 degree for the remote
|
||||||
temperature, except for the MAX6657, MAX6658 and MAX6659 which have a
|
temperature, except for the MAX6657, MAX6658 and MAX6659 which have a
|
||||||
|
@ -563,9 +563,10 @@ config SENSORS_LM90
|
|||||||
depends on I2C
|
depends on I2C
|
||||||
help
|
help
|
||||||
If you say yes here you get support for National Semiconductor LM90,
|
If you say yes here you get support for National Semiconductor LM90,
|
||||||
LM86, LM89 and LM99, Analog Devices ADM1032 and ADT7461, and Maxim
|
LM86, LM89 and LM99, Analog Devices ADM1032 and ADT7461, Maxim
|
||||||
MAX6646, MAX6647, MAX6648, MAX6649, MAX6657, MAX6658, MAX6659,
|
MAX6646, MAX6647, MAX6648, MAX6649, MAX6657, MAX6658, MAX6659,
|
||||||
MAX6680, MAX6681 and MAX6692 sensor chips.
|
MAX6680, MAX6681 and MAX6692, and Winbond/Nuvoton W83L771AWG/ASG
|
||||||
|
sensor chips.
|
||||||
|
|
||||||
This driver can also be built as a module. If so, the module
|
This driver can also be built as a module. If so, the module
|
||||||
will be called lm90.
|
will be called lm90.
|
||||||
|
@ -93,7 +93,8 @@
|
|||||||
static const unsigned short normal_i2c[] = {
|
static const unsigned short normal_i2c[] = {
|
||||||
0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
|
0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e, I2C_CLIENT_END };
|
||||||
|
|
||||||
enum chips { lm90, adm1032, lm99, lm86, max6657, adt7461, max6680, max6646 };
|
enum chips { lm90, adm1032, lm99, lm86, max6657, adt7461, max6680, max6646,
|
||||||
|
w83l771 };
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The LM90 registers
|
* The LM90 registers
|
||||||
@ -173,6 +174,7 @@ static const struct i2c_device_id lm90_id[] = {
|
|||||||
{ "max6659", max6657 },
|
{ "max6659", max6657 },
|
||||||
{ "max6680", max6680 },
|
{ "max6680", max6680 },
|
||||||
{ "max6681", max6680 },
|
{ "max6681", max6680 },
|
||||||
|
{ "w83l771", w83l771 },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(i2c, lm90_id);
|
MODULE_DEVICE_TABLE(i2c, lm90_id);
|
||||||
@ -758,6 +760,14 @@ static int lm90_detect(struct i2c_client *new_client,
|
|||||||
&& reg_convrate <= 0x07) {
|
&& reg_convrate <= 0x07) {
|
||||||
name = "max6646";
|
name = "max6646";
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (address == 0x4C
|
||||||
|
&& man_id == 0x5C) { /* Winbond/Nuvoton */
|
||||||
|
if ((chip_id & 0xFE) == 0x10 /* W83L771AWG/ASG */
|
||||||
|
&& (reg_config1 & 0x2A) == 0x00
|
||||||
|
&& reg_convrate <= 0x08) {
|
||||||
|
name = "w83l771";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!name) { /* identification failed */
|
if (!name) { /* identification failed */
|
||||||
|
Loading…
Reference in New Issue
Block a user