Commit eabb0381 authored by Jean Delvare's avatar Jean Delvare Committed by Guenter Roeck

[PATCH} hwmon: (jc42) Properly detect TSE2004-compliant devices again

Commit b3e992f6 ("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: default avatarJean Delvare <jdelvare@suse.de>
Message-ID: <20241014141204.026f4641@endymion.delvare>
Fixes: b3e992f6 ("hwmon: (jc42)  Strengthen detect function")
Message-ID: <20241014220426.0c8f4d9c@endymion.delvare>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 8e929cb5
...@@ -417,7 +417,7 @@ static int jc42_detect(struct i2c_client *client, struct i2c_board_info *info) ...@@ -417,7 +417,7 @@ static int jc42_detect(struct i2c_client *client, struct i2c_board_info *info)
return -ENODEV; return -ENODEV;
if ((devid & TSE2004_DEVID_MASK) == TSE2004_DEVID && if ((devid & TSE2004_DEVID_MASK) == TSE2004_DEVID &&
(cap & 0x00e7) != 0x00e7) (cap & 0x0062) != 0x0062)
return -ENODEV; return -ENODEV;
for (i = 0; i < ARRAY_SIZE(jc42_chips); i++) { for (i = 0; i < ARRAY_SIZE(jc42_chips); i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment