diff options
author | Guenter Roeck <linux@roeck-us.net> | 2013-03-29 17:56:07 -0700 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2013-04-07 21:16:42 -0700 |
commit | 4ce5b1fe317b4c5e4e3c8b977b95c00182179352 (patch) | |
tree | 8c5463f70c8c03956e11b75fe029830146ddbd83 | |
parent | e1eb49063b301fd885fca63e2f24d1dac1d65d0e (diff) | |
download | linux-4ce5b1fe317b4c5e4e3c8b977b95c00182179352.tar.bz2 |
hwmon: (tmp401) Fix device detection for TMP411B and TMP411C
Turns out that TMP411B and TMP411C have different and unique device IDs.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Jean Delvare <khali@linux-fr.org>
-rw-r--r-- | drivers/hwmon/tmp401.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c index f4290ec7d9e7..be71a3e17cca 100644 --- a/drivers/hwmon/tmp401.c +++ b/drivers/hwmon/tmp401.c @@ -89,7 +89,9 @@ static const u8 TMP411_TEMP_HIGHEST_LSB[2] = { 0x33, 0x37 }; /* Manufacturer / Device ID's */ #define TMP401_MANUFACTURER_ID 0x55 #define TMP401_DEVICE_ID 0x11 -#define TMP411_DEVICE_ID 0x12 +#define TMP411A_DEVICE_ID 0x12 +#define TMP411B_DEVICE_ID 0x13 +#define TMP411C_DEVICE_ID 0x10 #define TMP431_DEVICE_ID 0x31 /* @@ -561,7 +563,19 @@ static int tmp401_detect(struct i2c_client *client, return -ENODEV; kind = tmp401; break; - case TMP411_DEVICE_ID: + case TMP411A_DEVICE_ID: + if (client->addr != 0x4c) + return -ENODEV; + kind = tmp411; + break; + case TMP411B_DEVICE_ID: + if (client->addr != 0x4d) + return -ENODEV; + kind = tmp411; + break; + case TMP411C_DEVICE_ID: + if (client->addr != 0x4e) + return -ENODEV; kind = tmp411; break; case TMP431_DEVICE_ID: |