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 },
>