Simplify the probe() by replacing device_get_match_data() with i2c_get_match_data(). While at it, drop unnecessary enum chip_ids by splitting the array yas5xx_chip_info_tbl[] as individual variables. Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> --- drivers/iio/magnetometer/yamaha-yas530.c | 150 +++++++++++------------ 1 file changed, 71 insertions(+), 79 deletions(-) diff --git a/drivers/iio/magnetometer/yamaha-yas530.c b/drivers/iio/magnetometer/yamaha-yas530.c index c5e485bfc6fc..0ff3d81e24b4 100644 --- a/drivers/iio/magnetometer/yamaha-yas530.c +++ b/drivers/iio/magnetometer/yamaha-yas530.c @@ -133,13 +133,6 @@ /* Turn off device regulators etc after 5 seconds of inactivity */ #define YAS5XX_AUTOSUSPEND_DELAY_MS 5000 -enum chip_ids { - yas530, - yas532, - yas533, - yas537, -}; - static const int yas530_volatile_reg[] = { YAS530_ACTUATE_INIT_COIL, YAS530_MEASURE, @@ -1321,67 +1314,68 @@ static int yas537_power_on(struct yas5xx *yas5xx) return 0; } -static const struct yas5xx_chip_info yas5xx_chip_info_tbl[] = { - [yas530] = { - .devid = YAS530_DEVICE_ID, - .product_name = "YAS530 MS-3E", - .version_names = { "A", "B" }, - .volatile_reg = yas530_volatile_reg, - .volatile_reg_qty = ARRAY_SIZE(yas530_volatile_reg), - .scaling_val2 = 100000000, /* picotesla to Gauss */ - .t_ref = 182, /* counts */ - .min_temp_x10 = -620, /* 1/10:s degrees Celsius */ - .get_measure = yas530_get_measure, - .get_calibration_data = yas530_get_calibration_data, - .dump_calibration = yas530_dump_calibration, - .measure_offsets = yas530_measure_offsets, - .power_on = yas530_power_on, - }, - [yas532] = { - .devid = YAS532_DEVICE_ID, - .product_name = "YAS532 MS-3R", - .version_names = { "AB", "AC" }, - .volatile_reg = yas530_volatile_reg, - .volatile_reg_qty = ARRAY_SIZE(yas530_volatile_reg), - .scaling_val2 = 100000, /* nanotesla to Gauss */ - .t_ref = 390, /* counts */ - .min_temp_x10 = -500, /* 1/10:s degrees Celsius */ - .get_measure = yas530_get_measure, - .get_calibration_data = yas532_get_calibration_data, - .dump_calibration = yas530_dump_calibration, - .measure_offsets = yas530_measure_offsets, - .power_on = yas530_power_on, - }, - [yas533] = { - .devid = YAS532_DEVICE_ID, - .product_name = "YAS533 MS-3F", - .version_names = { "AB", "AC" }, - .volatile_reg = yas530_volatile_reg, - .volatile_reg_qty = ARRAY_SIZE(yas530_volatile_reg), - .scaling_val2 = 100000, /* nanotesla to Gauss */ - .t_ref = 390, /* counts */ - .min_temp_x10 = -500, /* 1/10:s degrees Celsius */ - .get_measure = yas530_get_measure, - .get_calibration_data = yas532_get_calibration_data, - .dump_calibration = yas530_dump_calibration, - .measure_offsets = yas530_measure_offsets, - .power_on = yas530_power_on, - }, - [yas537] = { - .devid = YAS537_DEVICE_ID, - .product_name = "YAS537 MS-3T", - .version_names = { "v0", "v1" }, /* version naming unknown */ - .volatile_reg = yas537_volatile_reg, - .volatile_reg_qty = ARRAY_SIZE(yas537_volatile_reg), - .scaling_val2 = 100000, /* nanotesla to Gauss */ - .t_ref = 8120, /* counts */ - .min_temp_x10 = -3860, /* 1/10:s degrees Celsius */ - .get_measure = yas537_get_measure, - .get_calibration_data = yas537_get_calibration_data, - .dump_calibration = yas537_dump_calibration, - /* .measure_offets is not needed for yas537 */ - .power_on = yas537_power_on, - }, +static const struct yas5xx_chip_info yas530_chip_info = { + .devid = YAS530_DEVICE_ID, + .product_name = "YAS530 MS-3E", + .version_names = { "A", "B" }, + .volatile_reg = yas530_volatile_reg, + .volatile_reg_qty = ARRAY_SIZE(yas530_volatile_reg), + .scaling_val2 = 100000000, /* picotesla to Gauss */ + .t_ref = 182, /* counts */ + .min_temp_x10 = -620, /* 1/10:s degrees Celsius */ + .get_measure = yas530_get_measure, + .get_calibration_data = yas530_get_calibration_data, + .dump_calibration = yas530_dump_calibration, + .measure_offsets = yas530_measure_offsets, + .power_on = yas530_power_on, +}; + +static const struct yas5xx_chip_info yas532_chip_info = { + .devid = YAS532_DEVICE_ID, + .product_name = "YAS532 MS-3R", + .version_names = { "AB", "AC" }, + .volatile_reg = yas530_volatile_reg, + .volatile_reg_qty = ARRAY_SIZE(yas530_volatile_reg), + .scaling_val2 = 100000, /* nanotesla to Gauss */ + .t_ref = 390, /* counts */ + .min_temp_x10 = -500, /* 1/10:s degrees Celsius */ + .get_measure = yas530_get_measure, + .get_calibration_data = yas532_get_calibration_data, + .dump_calibration = yas530_dump_calibration, + .measure_offsets = yas530_measure_offsets, + .power_on = yas530_power_on, +}; + +static const struct yas5xx_chip_info yas533_chip_info = { + .devid = YAS532_DEVICE_ID, + .product_name = "YAS533 MS-3F", + .version_names = { "AB", "AC" }, + .volatile_reg = yas530_volatile_reg, + .volatile_reg_qty = ARRAY_SIZE(yas530_volatile_reg), + .scaling_val2 = 100000, /* nanotesla to Gauss */ + .t_ref = 390, /* counts */ + .min_temp_x10 = -500, /* 1/10:s degrees Celsius */ + .get_measure = yas530_get_measure, + .get_calibration_data = yas532_get_calibration_data, + .dump_calibration = yas530_dump_calibration, + .measure_offsets = yas530_measure_offsets, + .power_on = yas530_power_on, +}; + +static const struct yas5xx_chip_info yas537_chip_info = { + .devid = YAS537_DEVICE_ID, + .product_name = "YAS537 MS-3T", + .version_names = { "v0", "v1" }, /* version naming unknown */ + .volatile_reg = yas537_volatile_reg, + .volatile_reg_qty = ARRAY_SIZE(yas537_volatile_reg), + .scaling_val2 = 100000, /* nanotesla to Gauss */ + .t_ref = 8120, /* counts */ + .min_temp_x10 = -3860, /* 1/10:s degrees Celsius */ + .get_measure = yas537_get_measure, + .get_calibration_data = yas537_get_calibration_data, + .dump_calibration = yas537_dump_calibration, + /* .measure_offets is not needed for yas537 */ + .power_on = yas537_power_on, }; static int yas5xx_probe(struct i2c_client *i2c) @@ -1434,9 +1428,7 @@ static int yas5xx_probe(struct i2c_client *i2c) goto assert_reset; } - ci = device_get_match_data(dev); - if (!ci) - ci = (const struct yas5xx_chip_info *)id->driver_data; + ci = i2c_get_match_data(i2c); yas5xx->chip_info = ci; ret = regmap_read(yas5xx->map, YAS5XX_DEVICE_ID, &id_check); @@ -1582,19 +1574,19 @@ static DEFINE_RUNTIME_DEV_PM_OPS(yas5xx_dev_pm_ops, yas5xx_runtime_suspend, yas5xx_runtime_resume, NULL); static const struct i2c_device_id yas5xx_id[] = { - {"yas530", (kernel_ulong_t)&yas5xx_chip_info_tbl[yas530] }, - {"yas532", (kernel_ulong_t)&yas5xx_chip_info_tbl[yas532] }, - {"yas533", (kernel_ulong_t)&yas5xx_chip_info_tbl[yas533] }, - {"yas537", (kernel_ulong_t)&yas5xx_chip_info_tbl[yas537] }, + {"yas530", (kernel_ulong_t)&yas530_chip_info }, + {"yas532", (kernel_ulong_t)&yas532_chip_info }, + {"yas533", (kernel_ulong_t)&yas533_chip_info }, + {"yas537", (kernel_ulong_t)&yas537_chip_info }, {} }; MODULE_DEVICE_TABLE(i2c, yas5xx_id); static const struct of_device_id yas5xx_of_match[] = { - { .compatible = "yamaha,yas530", &yas5xx_chip_info_tbl[yas530] }, - { .compatible = "yamaha,yas532", &yas5xx_chip_info_tbl[yas532] }, - { .compatible = "yamaha,yas533", &yas5xx_chip_info_tbl[yas533] }, - { .compatible = "yamaha,yas537", &yas5xx_chip_info_tbl[yas537] }, + { .compatible = "yamaha,yas530", &yas530_chip_info }, + { .compatible = "yamaha,yas532", &yas532_chip_info }, + { .compatible = "yamaha,yas533", &yas533_chip_info }, + { .compatible = "yamaha,yas537", &yas537_chip_info }, {} }; MODULE_DEVICE_TABLE(of, yas5xx_of_match); -- 2.25.1