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

From: Ricardo Ribalda Delgado
Date: Mon Oct 01 2018 - 04:19:21 EST


Hi Sakari
On Thu, Sep 27, 2018 at 9:35 PM Sakari Ailus <sakari.ailus@xxxxxx> 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@xxxxxx>
> > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
> > ---
> > 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@xxxxxx



--
Ricardo Ribalda