Message ID | 20240807-ad4113-v1-2-2d338f702c7b@analog.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Add support for AD4113 | expand |
On Wed, 2024-08-07 at 17:58 +0300, Dumitru Ceclan wrote: > This commit adds support for the AD4113 ADC. > The AD4113 is a low power, low noise, 16-bit, Σ-Δ analog-to-digital > converter (ADC) that integrates an analog front end (AFE) for four > fully differential or eight single-ended inputs. > > Signed-off-by: Dumitru Ceclan <dumitru.ceclan@analog.com> > --- Reviewed-by: Nuno Sa <nuno.sa@analog.com> > drivers/iio/adc/ad7173.c | 22 +++++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c > index a854f2d30174..82b63f9705b3 100644 > --- a/drivers/iio/adc/ad7173.c > +++ b/drivers/iio/adc/ad7173.c > @@ -3,7 +3,7 @@ > * AD717x and AD411x family SPI ADC driver > * > * Supported devices: > - * AD4111/AD4112/AD4114/AD4115/AD4116 > + * AD4111/AD4112/AD4113/AD4114/AD4115/AD4116 > * AD7172-2/AD7172-4/AD7173-8/AD7175-2 > * AD7175-8/AD7176-2/AD7177-2 > * > @@ -84,6 +84,7 @@ > #define AD4111_ID AD7173_ID > #define AD4112_ID AD7173_ID > #define AD4114_ID AD7173_ID > +#define AD4113_ID 0x31D0 > #define AD4116_ID 0x34d0 > #define AD4115_ID 0x38d0 > #define AD7175_8_ID 0x3cd0 > @@ -294,6 +295,23 @@ static const struct ad7173_device_info ad4112_device_info > = { > .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), > }; > > +static const struct ad7173_device_info ad4113_device_info = { > + .name = "ad4113", > + .id = AD4113_ID, > + .num_voltage_in_div = 8, > + .num_channels = 16, > + .num_configs = 8, > + .num_voltage_in = 8, > + .num_gpios = 2, > + .higher_gpio_bits = true, > + .has_vincom_input = true, > + .has_input_buf = true, > + .has_int_ref = true, > + .clock = 2 * HZ_PER_MHZ, > + .sinc5_data_rates = ad7173_sinc5_data_rates, > + .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), > +}; > + > static const struct ad7173_device_info ad4114_device_info = { > .name = "ad4114", > .id = AD4114_ID, > @@ -1437,6 +1455,7 @@ static int ad7173_probe(struct spi_device *spi) > static const struct of_device_id ad7173_of_match[] = { > { .compatible = "adi,ad4111", .data = &ad4111_device_info }, > { .compatible = "adi,ad4112", .data = &ad4112_device_info }, > + { .compatible = "adi,ad4113", .data = &ad4113_device_info }, > { .compatible = "adi,ad4114", .data = &ad4114_device_info }, > { .compatible = "adi,ad4115", .data = &ad4115_device_info }, > { .compatible = "adi,ad4116", .data = &ad4116_device_info }, > @@ -1454,6 +1473,7 @@ MODULE_DEVICE_TABLE(of, ad7173_of_match); > static const struct spi_device_id ad7173_id_table[] = { > { "ad4111", (kernel_ulong_t)&ad4111_device_info }, > { "ad4112", (kernel_ulong_t)&ad4112_device_info }, > + { "ad4113", (kernel_ulong_t)&ad4113_device_info }, > { "ad4114", (kernel_ulong_t)&ad4114_device_info }, > { "ad4115", (kernel_ulong_t)&ad4115_device_info }, > { "ad4116", (kernel_ulong_t)&ad4116_device_info }, >
diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c index a854f2d30174..82b63f9705b3 100644 --- a/drivers/iio/adc/ad7173.c +++ b/drivers/iio/adc/ad7173.c @@ -3,7 +3,7 @@ * AD717x and AD411x family SPI ADC driver * * Supported devices: - * AD4111/AD4112/AD4114/AD4115/AD4116 + * AD4111/AD4112/AD4113/AD4114/AD4115/AD4116 * AD7172-2/AD7172-4/AD7173-8/AD7175-2 * AD7175-8/AD7176-2/AD7177-2 * @@ -84,6 +84,7 @@ #define AD4111_ID AD7173_ID #define AD4112_ID AD7173_ID #define AD4114_ID AD7173_ID +#define AD4113_ID 0x31D0 #define AD4116_ID 0x34d0 #define AD4115_ID 0x38d0 #define AD7175_8_ID 0x3cd0 @@ -294,6 +295,23 @@ static const struct ad7173_device_info ad4112_device_info = { .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), }; +static const struct ad7173_device_info ad4113_device_info = { + .name = "ad4113", + .id = AD4113_ID, + .num_voltage_in_div = 8, + .num_channels = 16, + .num_configs = 8, + .num_voltage_in = 8, + .num_gpios = 2, + .higher_gpio_bits = true, + .has_vincom_input = true, + .has_input_buf = true, + .has_int_ref = true, + .clock = 2 * HZ_PER_MHZ, + .sinc5_data_rates = ad7173_sinc5_data_rates, + .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), +}; + static const struct ad7173_device_info ad4114_device_info = { .name = "ad4114", .id = AD4114_ID, @@ -1437,6 +1455,7 @@ static int ad7173_probe(struct spi_device *spi) static const struct of_device_id ad7173_of_match[] = { { .compatible = "adi,ad4111", .data = &ad4111_device_info }, { .compatible = "adi,ad4112", .data = &ad4112_device_info }, + { .compatible = "adi,ad4113", .data = &ad4113_device_info }, { .compatible = "adi,ad4114", .data = &ad4114_device_info }, { .compatible = "adi,ad4115", .data = &ad4115_device_info }, { .compatible = "adi,ad4116", .data = &ad4116_device_info }, @@ -1454,6 +1473,7 @@ MODULE_DEVICE_TABLE(of, ad7173_of_match); static const struct spi_device_id ad7173_id_table[] = { { "ad4111", (kernel_ulong_t)&ad4111_device_info }, { "ad4112", (kernel_ulong_t)&ad4112_device_info }, + { "ad4113", (kernel_ulong_t)&ad4113_device_info }, { "ad4114", (kernel_ulong_t)&ad4114_device_info }, { "ad4115", (kernel_ulong_t)&ad4115_device_info }, { "ad4116", (kernel_ulong_t)&ad4116_device_info },
This commit adds support for the AD4113 ADC. The AD4113 is a low power, low noise, 16-bit, Σ-Δ analog-to-digital converter (ADC) that integrates an analog front end (AFE) for four fully differential or eight single-ended inputs. Signed-off-by: Dumitru Ceclan <dumitru.ceclan@analog.com> --- drivers/iio/adc/ad7173.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-)