iio: accel: bma180: Convert enum->pointer for data in the match table
Convert enum->pointer for data in the match table, so that device_get_match_data() can do match against OF/ACPI/I2C tables, once i2c bus type match support added to it. Replace enum->struct *bma180_part_info for data in the match table and simplify bma180_probe(). Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20230812141044.151520-1-biju.das.jz@bp.renesas.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
9f6001e390
commit
fe11e38911
@ -926,7 +926,6 @@ static int bma180_probe(struct i2c_client *client)
|
||||
struct device *dev = &client->dev;
|
||||
struct bma180_data *data;
|
||||
struct iio_dev *indio_dev;
|
||||
enum chip_ids chip;
|
||||
int ret;
|
||||
|
||||
indio_dev = devm_iio_device_alloc(dev, sizeof(*data));
|
||||
@ -936,11 +935,7 @@ static int bma180_probe(struct i2c_client *client)
|
||||
data = iio_priv(indio_dev);
|
||||
i2c_set_clientdata(client, indio_dev);
|
||||
data->client = client;
|
||||
if (client->dev.of_node)
|
||||
chip = (uintptr_t)of_device_get_match_data(dev);
|
||||
else
|
||||
chip = id->driver_data;
|
||||
data->part_info = &bma180_part_info[chip];
|
||||
data->part_info = i2c_get_match_data(client);
|
||||
|
||||
ret = iio_read_mount_matrix(dev, &data->orientation);
|
||||
if (ret)
|
||||
@ -1092,11 +1087,11 @@ static int bma180_resume(struct device *dev)
|
||||
static DEFINE_SIMPLE_DEV_PM_OPS(bma180_pm_ops, bma180_suspend, bma180_resume);
|
||||
|
||||
static const struct i2c_device_id bma180_ids[] = {
|
||||
{ "bma023", BMA023 },
|
||||
{ "bma150", BMA150 },
|
||||
{ "bma180", BMA180 },
|
||||
{ "bma250", BMA250 },
|
||||
{ "smb380", BMA150 },
|
||||
{ "bma023", (kernel_ulong_t)&bma180_part_info[BMA023] },
|
||||
{ "bma150", (kernel_ulong_t)&bma180_part_info[BMA150] },
|
||||
{ "bma180", (kernel_ulong_t)&bma180_part_info[BMA180] },
|
||||
{ "bma250", (kernel_ulong_t)&bma180_part_info[BMA250] },
|
||||
{ "smb380", (kernel_ulong_t)&bma180_part_info[BMA150] },
|
||||
{ }
|
||||
};
|
||||
|
||||
@ -1105,23 +1100,23 @@ MODULE_DEVICE_TABLE(i2c, bma180_ids);
|
||||
static const struct of_device_id bma180_of_match[] = {
|
||||
{
|
||||
.compatible = "bosch,bma023",
|
||||
.data = (void *)BMA023
|
||||
.data = &bma180_part_info[BMA023]
|
||||
},
|
||||
{
|
||||
.compatible = "bosch,bma150",
|
||||
.data = (void *)BMA150
|
||||
.data = &bma180_part_info[BMA150]
|
||||
},
|
||||
{
|
||||
.compatible = "bosch,bma180",
|
||||
.data = (void *)BMA180
|
||||
.data = &bma180_part_info[BMA180]
|
||||
},
|
||||
{
|
||||
.compatible = "bosch,bma250",
|
||||
.data = (void *)BMA250
|
||||
.data = &bma180_part_info[BMA250]
|
||||
},
|
||||
{
|
||||
.compatible = "bosch,smb380",
|
||||
.data = (void *)BMA150
|
||||
.data = &bma180_part_info[BMA150]
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user