diff mbox series

[v4,4/7,media] ad5820: Add support for of-autoload

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

Commit Message

Ricardo Ribalda Delgado Sept. 20, 2018, 8:47 p.m. UTC
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(+)

Comments

Sakari Ailus Sept. 27, 2018, 7:29 p.m. UTC | #1
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 mbox series

Patch

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,