Commit 89108cb5 authored by Kyle Swenson's avatar Kyle Swenson Committed by Jakub Kicinski

net: pse-pd: tps23881: Fix the device ID check

The DEVID register contains two pieces of information: the device ID in
the upper nibble, and the silicon revision number in the lower nibble.
The driver should work fine with any silicon revision, so let's mask
that out in the device ID check.

Fixes: 20e6d190 ("net: pse-pd: Add TI TPS23881 PSE controller driver")
Signed-off-by: default avatarKyle Swenson <kyle.swenson@est.tech>
Reviewed-by: default avatarThomas Petazzoni <thomas.petazzoni@bootlin.com>
Acked-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20240731154152.4020668-1-kyle.swenson@est.techSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9ab0faa7
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
#define TPS23881_REG_TPON BIT(0) #define TPS23881_REG_TPON BIT(0)
#define TPS23881_REG_FWREV 0x41 #define TPS23881_REG_FWREV 0x41
#define TPS23881_REG_DEVID 0x43 #define TPS23881_REG_DEVID 0x43
#define TPS23881_REG_DEVID_MASK 0xF0
#define TPS23881_DEVICE_ID 0x02
#define TPS23881_REG_SRAM_CTRL 0x60 #define TPS23881_REG_SRAM_CTRL 0x60
#define TPS23881_REG_SRAM_DATA 0x61 #define TPS23881_REG_SRAM_DATA 0x61
...@@ -750,7 +752,7 @@ static int tps23881_i2c_probe(struct i2c_client *client) ...@@ -750,7 +752,7 @@ static int tps23881_i2c_probe(struct i2c_client *client)
if (ret < 0) if (ret < 0)
return ret; return ret;
if (ret != 0x22) { if (FIELD_GET(TPS23881_REG_DEVID_MASK, ret) != TPS23881_DEVICE_ID) {
dev_err(dev, "Wrong device ID\n"); dev_err(dev, "Wrong device ID\n");
return -ENXIO; return -ENXIO;
} }
......
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