diff mbox series

[2/2] iio: adc: ad7173: add support for ad4113

Message ID 20240807-ad4113-v1-2-2d338f702c7b@analog.com (mailing list archive)
State Changes Requested
Headers show
Series Add support for AD4113 | expand

Commit Message

Ceclan, Dumitru Aug. 7, 2024, 2:58 p.m. UTC
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(-)

Comments

Nuno Sá Aug. 8, 2024, 11:56 a.m. UTC | #1
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 mbox series

Patch

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