Re: [PATCH 2/2] iio: adc: ad7173: add support for ad4113
From: Nuno Sá
Date: Thu Aug 08 2024 - 07:53:07 EST
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@xxxxxxxxxx>
> ---
Reviewed-by: Nuno Sa <nuno.sa@xxxxxxxxxx>
> 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 },
>