Re: [PATCH v2 1/5] Staging: iio: adt7316: Add of_device_id table

From: Jonathan Cameron
Date: Sun Nov 25 2018 - 06:46:16 EST


On Tue, 20 Nov 2018 22:22:30 +0530
Shreeya Patel <shreeya.patel23498@xxxxxxxxx> 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@xxxxxxxxx>
> ---
>
> 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,