iio: imu: inv_icm45600: Use I2C match data

The I2C driver provides chip_info through both the OF match table and
the I2C id table, but probe reads it with device_get_match_data().  That
misses id-table driver_data for non-firmware I2C matches and can reject
a supported device with -ENODEV.

Use i2c_get_match_data() so the id-table chip_info is used when firmware
match data is not present.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Reviewed-by: Joshua Crofts <joshua.crofts1@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
Pengpeng Hou 2026-06-24 13:38:23 +08:00 committed by Jonathan Cameron
parent 9f16490c4e
commit e6026ff7e6

View File

@ -23,7 +23,7 @@ static int inv_icm45600_probe(struct i2c_client *client)
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_I2C_BLOCK))
return -ENODEV;
chip_info = device_get_match_data(&client->dev);
chip_info = i2c_get_match_data(client);
if (!chip_info)
return -ENODEV;