Message ID | 20181120165230.7079-1-shreeya.patel23498@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Remove platform data and introduce DT bindings | expand |
On Tue, 20 Nov 2018 22:22:30 +0530 Shreeya Patel <shreeya.patel23498@gmail.com> wrote: > When the kernel starts up, it kicks off compiled-in drivers > that match “compatible” entries it finds in the device tree. > At a later stage (when /lib/modules is available), all kernel modules > that match “compatible” entries in the device tree are loaded. > > But if there is no dt table then there should be a fall back path > with which desired kernel modules can be loaded. Hence, add > of_device_id table in the i2c driver to be able to use when there > is no dt table. The patch is fine, but this description is confusing. of_device_id is a device tree table (confusing naming in the kernel, but of is open firmware, a standard from which device tree emerged). I've just dropped this second paragraph from the description to avoid confusion. Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > > Signed-off-by: Shreeya Patel <shreeya.patel23498@gmail.com> > --- > > Changes in v2: > - Make the commit message appropriate and assign of_match_table > in the driver structure. > > drivers/staging/iio/addac/adt7316-i2c.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/staging/iio/addac/adt7316-i2c.c b/drivers/staging/iio/addac/adt7316-i2c.c > index 473e5e34ec00..41bc4ca008bc 100644 > --- a/drivers/staging/iio/addac/adt7316-i2c.c > +++ b/drivers/staging/iio/addac/adt7316-i2c.c > @@ -126,9 +126,22 @@ static const struct i2c_device_id adt7316_i2c_id[] = { > > MODULE_DEVICE_TABLE(i2c, adt7316_i2c_id); > > +static const struct of_device_id adt7316_of_match[] = { > + { .compatible = "adi,adt7316" }, > + { .compatible = "adi,adt7317" }, > + { .compatible = "adi,adt7318" }, > + { .compatible = "adi,adt7516" }, > + { .compatible = "adi,adt7517" }, > + { .compatible = "adi,adt7519" }, > + { }, > +}; > + > +MODULE_DEVICE_TABLE(of, adt7316_of_match); > + > static struct i2c_driver adt7316_driver = { > .driver = { > .name = "adt7316", > + .of_match_table = adt7316_of_match, > .pm = ADT7316_PM_OPS, > }, > .probe = adt7316_i2c_probe,
diff --git a/drivers/staging/iio/addac/adt7316-i2c.c b/drivers/staging/iio/addac/adt7316-i2c.c index 473e5e34ec00..41bc4ca008bc 100644 --- a/drivers/staging/iio/addac/adt7316-i2c.c +++ b/drivers/staging/iio/addac/adt7316-i2c.c @@ -126,9 +126,22 @@ static const struct i2c_device_id adt7316_i2c_id[] = { MODULE_DEVICE_TABLE(i2c, adt7316_i2c_id); +static const struct of_device_id adt7316_of_match[] = { + { .compatible = "adi,adt7316" }, + { .compatible = "adi,adt7317" }, + { .compatible = "adi,adt7318" }, + { .compatible = "adi,adt7516" }, + { .compatible = "adi,adt7517" }, + { .compatible = "adi,adt7519" }, + { }, +}; + +MODULE_DEVICE_TABLE(of, adt7316_of_match); + static struct i2c_driver adt7316_driver = { .driver = { .name = "adt7316", + .of_match_table = adt7316_of_match, .pm = ADT7316_PM_OPS, }, .probe = adt7316_i2c_probe,
When the kernel starts up, it kicks off compiled-in drivers that match “compatible” entries it finds in the device tree. At a later stage (when /lib/modules is available), all kernel modules that match “compatible” entries in the device tree are loaded. But if there is no dt table then there should be a fall back path with which desired kernel modules can be loaded. Hence, add of_device_id table in the i2c driver to be able to use when there is no dt table. Signed-off-by: Shreeya Patel <shreeya.patel23498@gmail.com> --- Changes in v2: - Make the commit message appropriate and assign of_match_table in the driver structure. drivers/staging/iio/addac/adt7316-i2c.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)