diff mbox series

[v4,6/7,media] ad5820: Add support for ad5821 and ad5823

Message ID 20180920204751.29117-6-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
According to the datasheet, both AD5821 and AD5820 share a compatible
register-set:
http://www.analog.com/media/en/technical-documentation/data-sheets/AD5821.pdf

Some camera modules also refer that AD5823 is a replacement of AD5820:
https://download.kamami.com/p564094-OV8865_DS.pdf

Suggested-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
 drivers/media/i2c/ad5820.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Sakari Ailus Sept. 27, 2018, 7:35 p.m. UTC | #1
Hi Ricardo,

On Thu, Sep 20, 2018 at 10:47:50PM +0200, Ricardo Ribalda Delgado wrote:
> According to the datasheet, both AD5821 and AD5820 share a compatible
> register-set:
> http://www.analog.com/media/en/technical-documentation/data-sheets/AD5821.pdf
> 
> Some camera modules also refer that AD5823 is a replacement of AD5820:
> https://download.kamami.com/p564094-OV8865_DS.pdf

A silly question --- the maximum current of these devices differs from each
other. Is the control value range still the same?

> 
> Suggested-by: Pavel Machek <pavel@ucw.cz>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> ---
>  drivers/media/i2c/ad5820.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
> index 5d1185e7f78d..c52af302d516 100644
> --- a/drivers/media/i2c/ad5820.c
> +++ b/drivers/media/i2c/ad5820.c
> @@ -34,8 +34,6 @@
>  #include <media/v4l2-device.h>
>  #include <media/v4l2-subdev.h>
>  
> -#define AD5820_NAME		"ad5820"
> -
>  /* Register definitions */
>  #define AD5820_POWER_DOWN		(1 << 15)
>  #define AD5820_DAC_SHIFT		4
> @@ -368,7 +366,9 @@ static int ad5820_remove(struct i2c_client *client)
>  }
>  
>  static const struct i2c_device_id ad5820_id_table[] = {
> -	{ AD5820_NAME, 0 },
> +	{ "ad5820", 0 },
> +	{ "ad5821", 0 },
> +	{ "ad5823", 0 },
>  	{ }
>  };
>  MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
> @@ -376,6 +376,8 @@ MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
>  #ifdef CONFIG_OF
>  static const struct of_device_id ad5820_of_table[] = {
>  	{ .compatible = "adi,ad5820" },
> +	{ .compatible = "adi,ad5821" },
> +	{ .compatible = "adi,ad5823" },

You could set the subdev name accordingly as well.

>  	{ }
>  };
>  MODULE_DEVICE_TABLE(of, ad5820_of_table);
> @@ -384,6 +386,8 @@ MODULE_DEVICE_TABLE(of, ad5820_of_table);
>  #ifdef CONFIG_ACPI
>  static const struct acpi_device_id ad5820_acpi_ids[] = {
>  	{ "AD5820" },
> +	{ "AD5821" },
> +	{ "AD5823" },
>  	{ }
>  };
>  
> @@ -394,7 +398,7 @@ static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume);
>  
>  static struct i2c_driver ad5820_i2c_driver = {
>  	.driver		= {
> -		.name	= AD5820_NAME,
> +		.name	= "ad5820",
>  		.pm	= &ad5820_pm,
>  		.of_match_table = of_match_ptr(ad5820_of_table),
>  		.acpi_match_table = ACPI_PTR(ad5820_acpi_ids),
Ricardo Ribalda Delgado Oct. 1, 2018, 8:19 a.m. UTC | #2
Hi Sakari
On Thu, Sep 27, 2018 at 9:35 PM Sakari Ailus <sakari.ailus@iki.fi> wrote:
>
> Hi Ricardo,
>
> On Thu, Sep 20, 2018 at 10:47:50PM +0200, Ricardo Ribalda Delgado wrote:
> > According to the datasheet, both AD5821 and AD5820 share a compatible
> > register-set:
> > http://www.analog.com/media/en/technical-documentation/data-sheets/AD5821.pdf
> >
> > Some camera modules also refer that AD5823 is a replacement of AD5820:
> > https://download.kamami.com/p564094-OV8865_DS.pdf
>
> A silly question --- the maximum current of these devices differs from each
> other. Is the control value range still the same?

AFAIK yes, and fortuntately/unfortunatelly the control interface is in
a value, not in Amp, so there is nothing to convert on the driver.

Regards!

>
> >
> > Suggested-by: Pavel Machek <pavel@ucw.cz>
> > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> > ---
> >  drivers/media/i2c/ad5820.c | 12 ++++++++----
> >  1 file changed, 8 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
> > index 5d1185e7f78d..c52af302d516 100644
> > --- a/drivers/media/i2c/ad5820.c
> > +++ b/drivers/media/i2c/ad5820.c
> > @@ -34,8 +34,6 @@
> >  #include <media/v4l2-device.h>
> >  #include <media/v4l2-subdev.h>
> >
> > -#define AD5820_NAME          "ad5820"
> > -
> >  /* Register definitions */
> >  #define AD5820_POWER_DOWN            (1 << 15)
> >  #define AD5820_DAC_SHIFT             4
> > @@ -368,7 +366,9 @@ static int ad5820_remove(struct i2c_client *client)
> >  }
> >
> >  static const struct i2c_device_id ad5820_id_table[] = {
> > -     { AD5820_NAME, 0 },
> > +     { "ad5820", 0 },
> > +     { "ad5821", 0 },
> > +     { "ad5823", 0 },
> >       { }
> >  };
> >  MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
> > @@ -376,6 +376,8 @@ MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
> >  #ifdef CONFIG_OF
> >  static const struct of_device_id ad5820_of_table[] = {
> >       { .compatible = "adi,ad5820" },
> > +     { .compatible = "adi,ad5821" },
> > +     { .compatible = "adi,ad5823" },
>
> You could set the subdev name accordingly as well.
>
> >       { }
> >  };
> >  MODULE_DEVICE_TABLE(of, ad5820_of_table);
> > @@ -384,6 +386,8 @@ MODULE_DEVICE_TABLE(of, ad5820_of_table);
> >  #ifdef CONFIG_ACPI
> >  static const struct acpi_device_id ad5820_acpi_ids[] = {
> >       { "AD5820" },
> > +     { "AD5821" },
> > +     { "AD5823" },
> >       { }
> >  };
> >
> > @@ -394,7 +398,7 @@ static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume);
> >
> >  static struct i2c_driver ad5820_i2c_driver = {
> >       .driver         = {
> > -             .name   = AD5820_NAME,
> > +             .name   = "ad5820",
> >               .pm     = &ad5820_pm,
> >               .of_match_table = of_match_ptr(ad5820_of_table),
> >               .acpi_match_table = ACPI_PTR(ad5820_acpi_ids),
>
> --
> Regards,
>
> Sakari Ailus
> e-mail: sakari.ailus@iki.fi
diff mbox series

Patch

diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
index 5d1185e7f78d..c52af302d516 100644
--- a/drivers/media/i2c/ad5820.c
+++ b/drivers/media/i2c/ad5820.c
@@ -34,8 +34,6 @@ 
 #include <media/v4l2-device.h>
 #include <media/v4l2-subdev.h>
 
-#define AD5820_NAME		"ad5820"
-
 /* Register definitions */
 #define AD5820_POWER_DOWN		(1 << 15)
 #define AD5820_DAC_SHIFT		4
@@ -368,7 +366,9 @@  static int ad5820_remove(struct i2c_client *client)
 }
 
 static const struct i2c_device_id ad5820_id_table[] = {
-	{ AD5820_NAME, 0 },
+	{ "ad5820", 0 },
+	{ "ad5821", 0 },
+	{ "ad5823", 0 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
@@ -376,6 +376,8 @@  MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
 #ifdef CONFIG_OF
 static const struct of_device_id ad5820_of_table[] = {
 	{ .compatible = "adi,ad5820" },
+	{ .compatible = "adi,ad5821" },
+	{ .compatible = "adi,ad5823" },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, ad5820_of_table);
@@ -384,6 +386,8 @@  MODULE_DEVICE_TABLE(of, ad5820_of_table);
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id ad5820_acpi_ids[] = {
 	{ "AD5820" },
+	{ "AD5821" },
+	{ "AD5823" },
 	{ }
 };
 
@@ -394,7 +398,7 @@  static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume);
 
 static struct i2c_driver ad5820_i2c_driver = {
 	.driver		= {
-		.name	= AD5820_NAME,
+		.name	= "ad5820",
 		.pm	= &ad5820_pm,
 		.of_match_table = of_match_ptr(ad5820_of_table),
 		.acpi_match_table = ACPI_PTR(ad5820_acpi_ids),