usb: typec: fsa4480: Relax CHIP_ID check
Some FSA4480-compatible chips like the OCP96011 used on Fairphone 5
return 0x00 from the CHIP_ID register. Handle that gracefully and only
fail probe when the I2C read has failed.
With this the dev_dbg will print 0 but otherwise continue working.
[ 0.251581] fsa4480 1-0042: Found FSA4480 v0.0 (Vendor ID = 0)
Cc: stable@vger.kernel.org
Fixes: e885f5f1f2
("usb: typec: fsa4480: Check if the chip is really there")
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240818-fsa4480-chipid-fix-v1-1-17c239435cf7@fairphone.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
16f2a21d9d
commit
4f83cae0ed
@ -274,7 +274,7 @@ static int fsa4480_probe(struct i2c_client *client)
|
|||||||
return dev_err_probe(dev, PTR_ERR(fsa->regmap), "failed to initialize regmap\n");
|
return dev_err_probe(dev, PTR_ERR(fsa->regmap), "failed to initialize regmap\n");
|
||||||
|
|
||||||
ret = regmap_read(fsa->regmap, FSA4480_DEVICE_ID, &val);
|
ret = regmap_read(fsa->regmap, FSA4480_DEVICE_ID, &val);
|
||||||
if (ret || !val)
|
if (ret)
|
||||||
return dev_err_probe(dev, -ENODEV, "FSA4480 not found\n");
|
return dev_err_probe(dev, -ENODEV, "FSA4480 not found\n");
|
||||||
|
|
||||||
dev_dbg(dev, "Found FSA4480 v%lu.%lu (Vendor ID = %lu)\n",
|
dev_dbg(dev, "Found FSA4480 v%lu.%lu (Vendor ID = %lu)\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user