Commit c4b28e56 authored by Kyle Swenson's avatar Kyle Swenson Committed by David S. Miller
Browse files

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>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8d5be2c4
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
	}