Hi Ricardo, On Thu, Sep 20, 2018 at 10:47:48PM +0200, Ricardo Ribalda Delgado wrote: > Since kernel 4.16, i2c devices with DT compatible tag are modprobed > using their DT modalias. > Without this patch, if this driver is build as module it would never > be autoprobed. > > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx> > Acked-by: Pavel Machek <pavel@xxxxxx> > --- > drivers/media/i2c/ad5820.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c > index 625867472929..e461d36201a4 100644 > --- a/drivers/media/i2c/ad5820.c > +++ b/drivers/media/i2c/ad5820.c > @@ -372,12 +372,21 @@ static const struct i2c_device_id ad5820_id_table[] = { > }; > MODULE_DEVICE_TABLE(i2c, ad5820_id_table); > > +#ifdef CONFIG_OF > +static const struct of_device_id ad5820_of_table[] = { > + { .compatible = "adi,ad5820" }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, ad5820_of_table); > +#endif > + > static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume); > > static struct i2c_driver ad5820_i2c_driver = { > .driver = { > .name = AD5820_NAME, > .pm = &ad5820_pm, > + .of_match_table = of_match_ptr(ad5820_of_table), No need to use of_match_ptr() or #ifdef above --- not doing so makes this work on ACPI, too. > }, > .probe = ad5820_probe, > .remove = ad5820_remove, -- Regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx