Message ID | 20180920204751.29117-4-ricardo.ribalda@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v4,1/7,media] ad5820: Define entity function | expand |
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@gmail.com> > Acked-by: Pavel Machek <pavel@ucw.cz> > --- > 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,
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), }, .probe = ad5820_probe, .remove = ad5820_remove,