drm: bridge: it66121: Extend match support for OF tables
The driver has OF match table, still it uses ID lookup table for retrieving match data. Currently the driver is working on the assumption that a I2C device registered via OF will always match a legacy I2C device ID. The correct approach is to have an OF device ID table using of_device_match_data() if the devices are registered via OF. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Robert Foss <rfoss@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20230818191817.340360-2-biju.das.jz@bp.renesas.com
This commit is contained in:
parent
c3ba2ada13
commit
c11c1a5057
@ -1523,7 +1523,10 @@ static int it66121_probe(struct i2c_client *client)
|
||||
|
||||
ctx->dev = dev;
|
||||
ctx->client = client;
|
||||
ctx->info = (const struct it66121_chip_info *) id->driver_data;
|
||||
if (dev_fwnode(&client->dev))
|
||||
ctx->info = of_device_get_match_data(&client->dev);
|
||||
else
|
||||
ctx->info = (const struct it66121_chip_info *) id->driver_data;
|
||||
|
||||
of_property_read_u32(ep, "bus-width", &ctx->bus_width);
|
||||
of_node_put(ep);
|
||||
@ -1609,13 +1612,6 @@ static void it66121_remove(struct i2c_client *client)
|
||||
mutex_destroy(&ctx->lock);
|
||||
}
|
||||
|
||||
static const struct of_device_id it66121_dt_match[] = {
|
||||
{ .compatible = "ite,it66121" },
|
||||
{ .compatible = "ite,it6610" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, it66121_dt_match);
|
||||
|
||||
static const struct it66121_chip_info it66121_chip_info = {
|
||||
.id = ID_IT66121,
|
||||
.vid = 0x4954,
|
||||
@ -1628,6 +1624,13 @@ static const struct it66121_chip_info it6610_chip_info = {
|
||||
.pid = 0x0611,
|
||||
};
|
||||
|
||||
static const struct of_device_id it66121_dt_match[] = {
|
||||
{ .compatible = "ite,it66121", &it66121_chip_info },
|
||||
{ .compatible = "ite,it6610", &it6610_chip_info },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, it66121_dt_match);
|
||||
|
||||
static const struct i2c_device_id it66121_id[] = {
|
||||
{ "it66121", (kernel_ulong_t) &it66121_chip_info },
|
||||
{ "it6610", (kernel_ulong_t) &it6610_chip_info },
|
||||
|
Loading…
x
Reference in New Issue
Block a user