aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/adt7475.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/hwmon/adt7475.c')
-rw-r--r--drivers/hwmon/adt7475.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c
index d20130723d68..688b0a1af5a8 100644
--- a/drivers/hwmon/adt7475.c
+++ b/drivers/hwmon/adt7475.c
@@ -40,6 +40,8 @@
40 40
41/* 7475 Common Registers */ 41/* 7475 Common Registers */
42 42
43#define REG_DEVREV2 0x12 /* ADT7490 only */
44
43#define REG_VTT 0x1E /* ADT7490 only */ 45#define REG_VTT 0x1E /* ADT7490 only */
44#define REG_EXTEND3 0x1F /* ADT7490 only */ 46#define REG_EXTEND3 0x1F /* ADT7490 only */
45 47
@@ -1149,6 +1151,12 @@ static void adt7475_remove_files(struct i2c_client *client,
1149static int adt7475_probe(struct i2c_client *client, 1151static int adt7475_probe(struct i2c_client *client,
1150 const struct i2c_device_id *id) 1152 const struct i2c_device_id *id)
1151{ 1153{
1154 static const char *names[] = {
1155 [adt7473] = "ADT7473",
1156 [adt7475] = "ADT7475",
1157 [adt7490] = "ADT7490",
1158 };
1159
1152 struct adt7475_data *data; 1160 struct adt7475_data *data;
1153 int i, ret = 0, revision; 1161 int i, ret = 0, revision;
1154 u8 config3; 1162 u8 config3;
@@ -1165,6 +1173,8 @@ static int adt7475_probe(struct i2c_client *client,
1165 case adt7490: 1173 case adt7490:
1166 data->has_voltage = 0x3e; /* in1 to in5 */ 1174 data->has_voltage = 0x3e; /* in1 to in5 */
1167 revision = adt7475_read(REG_DEVID2) & 0x03; 1175 revision = adt7475_read(REG_DEVID2) & 0x03;
1176 if (revision == 0x03)
1177 revision += adt7475_read(REG_DEVREV2);
1168 break; 1178 break;
1169 default: 1179 default:
1170 data->has_voltage = 0x06; /* in1, in2 */ 1180 data->has_voltage = 0x06; /* in1, in2 */
@@ -1234,6 +1244,14 @@ static int adt7475_probe(struct i2c_client *client,
1234 goto eremove; 1244 goto eremove;
1235 } 1245 }
1236 1246
1247 dev_info(&client->dev, "%s device, revision %d\n",
1248 names[id->driver_data], revision);
1249 if ((data->has_voltage & (1 << 0)) || data->has_fan4 || data->has_pwm2)
1250 dev_info(&client->dev, "Optional features:%s%s%s\n",
1251 (data->has_voltage & (1 << 0)) ? " in0" : "",
1252 data->has_fan4 ? " fan4" : "",
1253 data->has_pwm2 ? " pwm2" : "");
1254
1237 return 0; 1255 return 0;
1238 1256
1239eremove: 1257eremove: