Make similar OF and ID table to extend support for ID match using i2c_match_data(). Currently it works only for OF match tables as the driver_data is wrong for ID match. Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> --- drivers/mfd/palmas.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 71df70e1bd33..9f614bbca007 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -489,6 +489,15 @@ static const struct of_device_id of_palmas_match_tbl[] = { }; MODULE_DEVICE_TABLE(of, of_palmas_match_tbl); +static const struct i2c_device_id palmas_i2c_id[] = { + { "palmas", (kernel_ulong_t)&palmas_data }, + { "twl6035", (kernel_ulong_t)&palmas_data }, + { "twl6037", (kernel_ulong_t)&palmas_data }, + { "tps65913", (kernel_ulong_t)&palmas_data }, + { /* end */ } +}; +MODULE_DEVICE_TABLE(i2c, palmas_i2c_id); + static int palmas_i2c_probe(struct i2c_client *i2c) { struct palmas *palmas; @@ -521,7 +530,7 @@ static int palmas_i2c_probe(struct i2c_client *i2c) palmas->dev = &i2c->dev; palmas->irq = i2c->irq; - driver_data = device_get_match_data(&i2c->dev); + driver_data = i2c_get_match_data(i2c); palmas->features = driver_data->features; for (i = 0; i < PALMAS_NUM_CLIENTS; i++) { @@ -698,15 +707,6 @@ static void palmas_i2c_remove(struct i2c_client *i2c) } } -static const struct i2c_device_id palmas_i2c_id[] = { - { "palmas", }, - { "twl6035", }, - { "twl6037", }, - { "tps65913", }, - { /* end */ } -}; -MODULE_DEVICE_TABLE(i2c, palmas_i2c_id); - static struct i2c_driver palmas_i2c_driver = { .driver = { .name = "palmas", -- 2.25.1