]> www.infradead.org Git - users/hch/misc.git/commitdiff
[PATCH} hwmon: (jc42) Properly detect TSE2004-compliant devices again
authorJean Delvare <jdelvare@suse.de>
Mon, 14 Oct 2024 20:04:26 +0000 (22:04 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 15 Oct 2024 02:14:08 +0000 (19:14 -0700)
Commit b3e992f69c23 ("hwmon: (jc42)  Strengthen detect function")
attempted to make the detect function more robust for
TSE2004-compliant devices by checking capability bits which, according
to the JEDEC 21-C specification, should always be set. Unfortunately,
not all real-world implementations fully adhere to this specification,
so this change caused a regression.

Stop testing bit 7 (EVSD) of the Capabilities register, as it was
found to be 0 on one real-world device.

Also stop testing bits 0 (EVENT) and 2 (RANGE) as vendor datasheets
(Renesas TSE2004GB2B0, ST STTS2004) suggest that they may not always
be set either.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Message-ID: <20241014141204.026f4641@endymion.delvare>
Fixes: b3e992f69c23 ("hwmon: (jc42) Strengthen detect function")
Message-ID: <20241014220426.0c8f4d9c@endymion.delvare>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/jc42.c

index a260cff750a5842a289f7aeb36c2c6cd7b86cab9..c459dce496a6edd75c63468553b31f250df732af 100644 (file)
@@ -417,7 +417,7 @@ static int jc42_detect(struct i2c_client *client, struct i2c_board_info *info)
                return -ENODEV;
 
        if ((devid & TSE2004_DEVID_MASK) == TSE2004_DEVID &&
-           (cap & 0x00e7) != 0x00e7)
+           (cap & 0x0062) != 0x0062)
                return -ENODEV;
 
        for (i = 0; i < ARRAY_SIZE(jc42_chips); i++) {