From 4ce5b1fe317b4c5e4e3c8b977b95c00182179352 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 29 Mar 2013 17:56:07 -0700 Subject: [PATCH] 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 Acked-by: Jean Delvare --- drivers/hwmon/tmp401.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c index f4290ec7d9e..be71a3e17cc 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: -- 2.46.0