From: Guenter Roeck <guenter.roeck@ericsson.com>
To: lm-sensors@vger.kernel.org
Subject: [lm-sensors] MAX6642 chip detection and other stuff
Date: Sat, 28 May 2011 04:51:13 +0000 [thread overview]
Message-ID: <20110528045113.GA8833@ericsson.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2213 bytes --]
Hi all,
I finally got MAX6642 samples, so I am able to play around with the chip.
The attached patch (on top of Per's most recent patch) works quite nicely.
Per, maybe you can just merge it with your patch and resubmit it.
While testing the chip, I found another little problem: the fault attribute is named
temp_fault. That will have to be renamed to temp2_fault, first because it reflects
a fault with the external diode and second to match the ABI. We will need a separate
patch to fix this problem.
Here is the output of i2cdump for the MAX6642 (with open/unconnected external sensor).
root@groeck-desktop:/home/groeck# i2cdump -y 5 0x48
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 18 ff 84 10 10 46 46 78 78 78 78 78 78 78 78 78 ?.???FFxxxxxxxxx
10: c0 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 ?@@@@@@@@@@@@@@@
20: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
30: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
40: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
50: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
60: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
70: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
80: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
90: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
a0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
b0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
c0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
d0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
e0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
f0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 4d 4d @@@@@@@@@@@@@@MM
root@groeck-desktop:/home/groeck# modprobe max6642
root@groeck-desktop:/home/groeck# sensors
max6642-i2c-5-48
Adapter: i2c-devantech-iss at bus 001 device 007
temp1: +24.0°C (high = +70.0°C)
temp2: FAULT (high = +120.0°C)
Thanks,
Guenter
[-- Attachment #2: 0001-hwmon-max6642-Improve-chip-detection.patch --]
[-- Type: text/x-diff, Size: 2733 bytes --]
From 197b9b4fb23c372de6d08afad4a0ebd72cfaadc6 Mon Sep 17 00:00:00 2001
From: Guenter Roeck <guenter.roeck@ericsson.com>
Date: Fri, 27 May 2011 21:39:59 -0700
Subject: [PATCH] hwmon: (max6642) Improve chip detection
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
---
drivers/hwmon/max6642.c | 35 ++++++++++++++++++-----------------
1 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/drivers/hwmon/max6642.c b/drivers/hwmon/max6642.c
index 872155e..160853c 100644
--- a/drivers/hwmon/max6642.c
+++ b/drivers/hwmon/max6642.c
@@ -64,14 +64,6 @@ static const unsigned short normal_i2c[] = {
#define MAX6642_REG_W_REMOTE_HIGH 0x0D
/*
- * Registers for detection tests. These registers are not present and,
- * when read, will only return the last valid register read.
- */
-#define MAX6642_REG_R_DUMMY_1 0x04
-#define MAX6642_REG_R_DUMMY_2 0x06
-#define MAX6642_REG_R_DUMMY_3 0xFF
-
-/*
* Conversions
*/
@@ -134,7 +126,7 @@ static int max6642_detect(struct i2c_client *client,
struct i2c_board_info *info)
{
struct i2c_adapter *adapter = client->adapter;
- u8 reg_config, reg_status, man_id, dummy_reg;
+ u8 reg_config, reg_status, man_id;
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
return -ENODEV;
@@ -145,16 +137,13 @@ static int max6642_detect(struct i2c_client *client,
return -ENODEV;
/* sanity check */
- dummy_reg = i2c_smbus_read_byte_data(client, MAX6642_REG_R_DUMMY_1);
- if (dummy_reg != 0x4D)
+ if (i2c_smbus_read_byte_data(client, 0x04) != 0x4D)
return -ENODEV;
- dummy_reg = i2c_smbus_read_byte_data(client, MAX6642_REG_R_DUMMY_2);
- if (dummy_reg != 0x4D)
+ if (i2c_smbus_read_byte_data(client, 0x06) != 0x4D)
return -ENODEV;
- dummy_reg = i2c_smbus_read_byte_data(client, MAX6642_REG_R_DUMMY_3);
- if (dummy_reg != 0x4D)
+ if (i2c_smbus_read_byte_data(client, 0xff) != 0x4D)
return -ENODEV;
/*
@@ -163,9 +152,21 @@ static int max6642_detect(struct i2c_client *client,
* zero in the status register.
*/
reg_config = i2c_smbus_read_byte_data(client, MAX6642_REG_R_CONFIG);
+ if ((reg_config & 0x0f) != 0x00)
+ return -ENODEV;
+
+ /* in between, another round of sanity checks */
+ if (i2c_smbus_read_byte_data(client, 0x04) != reg_config)
+ return -ENODEV;
+
+ if (i2c_smbus_read_byte_data(client, 0x06) != reg_config)
+ return -ENODEV;
+
+ if (i2c_smbus_read_byte_data(client, 0xff) != reg_config)
+ return -ENODEV;
+
reg_status = i2c_smbus_read_byte_data(client, MAX6642_REG_R_STATUS);
- if (((reg_config & 0x0f) != 0x00) ||
- ((reg_status & 0x2b) != 0x00))
+ if ((reg_status & 0x2b) != 0x00)
return -ENODEV;
strlcpy(info->type, "max6642", I2C_NAME_SIZE);
--
1.7.3.1
[-- Attachment #3: Type: text/plain, Size: 153 bytes --]
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next reply other threads:[~2011-05-28 4:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-28 4:51 Guenter Roeck [this message]
2011-05-28 8:36 ` [lm-sensors] MAX6642 chip detection and other stuff Jean Delvare
2011-05-28 14:04 ` Guenter Roeck
2011-06-01 6:44 ` Per Dalén
2011-06-01 7:42 ` Per Dalén
2011-06-01 9:47 ` Jean Delvare
2011-06-01 15:38 ` Guenter Roeck
2011-06-01 15:43 ` Guenter Roeck
2011-06-04 17:29 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110528045113.GA8833@ericsson.com \
--to=guenter.roeck@ericsson.com \
--cc=lm-sensors@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.