@@ -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);
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@bp.renesas.com> --- drivers/iio/magnetometer/yamaha-yas530.c | 150 +++++++++++------------ 1 file changed, 71 insertions(+), 79 deletions(-)