]> git.dujemihanovic.xyz Git - linux.git/commitdiff
net: pse-pd: tps23881: Fix the device ID check
authorKyle Swenson <kyle.swenson@est.tech>
Wed, 31 Jul 2024 15:42:14 +0000 (15:42 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 2 Aug 2024 23:34:06 +0000 (16:34 -0700)
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: 20e6d190ffe1 ("net: pse-pd: Add TI TPS23881 PSE controller driver")
Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20240731154152.4020668-1-kyle.swenson@est.tech
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/pse-pd/tps23881.c

index 61f6ad9c1934e1dc17447886728492aa1a1f509e..f90db758554b0e785350aecdc85a2584f19bc466 100644 (file)
@@ -29,6 +29,8 @@
 #define TPS23881_REG_TPON      BIT(0)
 #define TPS23881_REG_FWREV     0x41
 #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_DATA 0x61
 
@@ -750,7 +752,7 @@ static int tps23881_i2c_probe(struct i2c_client *client)
        if (ret < 0)
                return ret;
 
-       if (ret != 0x22) {
+       if (FIELD_GET(TPS23881_REG_DEVID_MASK, ret) != TPS23881_DEVICE_ID) {
                dev_err(dev, "Wrong device ID\n");
                return -ENXIO;
        }