mfd: da9062: Simplify obtaining I2C match data
Simplify probe() by replacing of_device_get_match_data() and ID lookup for retrieving match data by i2c_get_match_data(). Some minor cleanups: * Remove the trailing comma in the terminator entry for the ID table making code robust against (theoretical) misrebases or other similar things where the new entry goes _after_ the termination without the compiler noticing. * Move OF table near to the user. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20231204124507.124758-1-biju.das.jz@bp.renesas.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
@@ -588,16 +588,8 @@ static struct regmap_config da9062_regmap_config = {
|
||||
.volatile_table = &da9062_aa_volatile_table,
|
||||
};
|
||||
|
||||
static const struct of_device_id da9062_dt_ids[] = {
|
||||
{ .compatible = "dlg,da9061", .data = (void *)COMPAT_TYPE_DA9061, },
|
||||
{ .compatible = "dlg,da9062", .data = (void *)COMPAT_TYPE_DA9062, },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, da9062_dt_ids);
|
||||
|
||||
static int da9062_i2c_probe(struct i2c_client *i2c)
|
||||
{
|
||||
const struct i2c_device_id *id = i2c_client_get_device_id(i2c);
|
||||
struct da9062 *chip;
|
||||
unsigned int irq_base = 0;
|
||||
const struct mfd_cell *cell;
|
||||
@@ -611,10 +603,7 @@ static int da9062_i2c_probe(struct i2c_client *i2c)
|
||||
if (!chip)
|
||||
return -ENOMEM;
|
||||
|
||||
if (i2c->dev.of_node)
|
||||
chip->chip_type = (uintptr_t)of_device_get_match_data(&i2c->dev);
|
||||
else
|
||||
chip->chip_type = id->driver_data;
|
||||
chip->chip_type = (uintptr_t)i2c_get_match_data(i2c);
|
||||
|
||||
i2c_set_clientdata(i2c, chip);
|
||||
chip->dev = &i2c->dev;
|
||||
@@ -714,10 +703,17 @@ static void da9062_i2c_remove(struct i2c_client *i2c)
|
||||
regmap_del_irq_chip(i2c->irq, chip->regmap_irq);
|
||||
}
|
||||
|
||||
static const struct of_device_id da9062_dt_ids[] = {
|
||||
{ .compatible = "dlg,da9061", .data = (void *)COMPAT_TYPE_DA9061 },
|
||||
{ .compatible = "dlg,da9062", .data = (void *)COMPAT_TYPE_DA9062 },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, da9062_dt_ids);
|
||||
|
||||
static const struct i2c_device_id da9062_i2c_id[] = {
|
||||
{ "da9061", COMPAT_TYPE_DA9061 },
|
||||
{ "da9062", COMPAT_TYPE_DA9062 },
|
||||
{ },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, da9062_i2c_id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user