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 |
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),
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 --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),
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(-)