aboutsummaryrefslogtreecommitdiff
path: root/drivers/hwmon/adt7475.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2009-12-09 20:36:07 +0100
committerJean Delvare <khali@linux-fr.org>2009-12-09 20:36:07 +0100
commitd07ca4ad2f67ebb1bf48a2308a7a0cd81ef8f70a (patch)
treebeb16069a4596825534943bc524f873c8421a308 /drivers/hwmon/adt7475.c
parent378933c99402f26587ad80e97bff405265116f9e (diff)
hwmon: (adt7475) Print device information on probe
Print the device name and revision at probe time, as well as a list of all optional features which are available. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
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 d20130723d6..688b0a1af5a 100644
--- a/drivers/hwmon/adt7475.c
+++ b/drivers/hwmon/adt7475.c
@@ -40,6 +40,8 @@
/* 7475 Common Registers */
+#define REG_DEVREV2 0x12 /* ADT7490 only */
+
#define REG_VTT 0x1E /* ADT7490 only */
#define REG_EXTEND3 0x1F /* ADT7490 only */
@@ -1149,6 +1151,12 @@ static void adt7475_remove_files(struct i2c_client *client,
static int adt7475_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
+ static const char *names[] = {
+ [adt7473] = "ADT7473",
+ [adt7475] = "ADT7475",
+ [adt7490] = "ADT7490",
+ };
+
struct adt7475_data *data;
int i, ret = 0, revision;
u8 config3;
@@ -1165,6 +1173,8 @@ static int adt7475_probe(struct i2c_client *client,
case adt7490:
data->has_voltage = 0x3e; /* in1 to in5 */
revision = adt7475_read(REG_DEVID2) & 0x03;
+ if (revision == 0x03)
+ revision += adt7475_read(REG_DEVREV2);
break;
default:
data->has_voltage = 0x06; /* in1, in2 */
@@ -1234,6 +1244,14 @@ static int adt7475_probe(struct i2c_client *client,
goto eremove;
}
+ dev_info(&client->dev, "%s device, revision %d\n",
+ names[id->driver_data], revision);
+ if ((data->has_voltage & (1 << 0)) || data->has_fan4 || data->has_pwm2)
+ dev_info(&client->dev, "Optional features:%s%s%s\n",
+ (data->has_voltage & (1 << 0)) ? " in0" : "",
+ data->has_fan4 ? " fan4" : "",
+ data->has_pwm2 ? " pwm2" : "");
+
return 0;
eremove: