iio: dac: ad5686: Add support for AD5673R/AD5677R
authorMircea Caprioru <mircea.caprioru@analog.com>
Wed, 17 Feb 2021 07:41:02 +0000 (09:41 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 11 Mar 2021 20:47:10 +0000 (20:47 +0000)
The AD5673R/AD5677R are low power, 16-channel, 12-/16-bit buffered voltage
output digital-to-analog converters (DACs). They include a 2.5 V internal
reference (enabled by default).

These devices are very similar to AD5674R/AD5679R, except that they
have an i2c interface.

Signed-off-by: Mircea Caprioru <mircea.caprioru@analog.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210217074102.23148-1-alexandru.ardelean@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/dac/Kconfig
drivers/iio/dac/ad5686.c
drivers/iio/dac/ad5686.h
drivers/iio/dac/ad5696-i2c.c

index cea07b4..75e1f2b 100644 (file)
@@ -142,8 +142,9 @@ config AD5696_I2C
        select AD5686
        help
          Say yes here to build support for Analog Devices AD5311R, AD5338R,
-         AD5671R, AD5675R, AD5691R, AD5692R, AD5693, AD5693R, AD5694, AD5694R,
-         AD5695R, AD5696, and AD5696R Digital to Analog converters.
+         AD5671R, AD5673R, AD5675R, AD5677R, AD5691R, AD5692R, AD5693, AD5693R,
+         AD5694, AD5694R, AD5695R, AD5696, and AD5696R Digital to Analog
+         converters.
 
          To compile this driver as a module, choose M here: the module will be
          called ad5696.
index 7d6792a..99a9528 100644 (file)
@@ -301,6 +301,12 @@ static const struct ad5686_chip_info ad5686_chip_info_tbl[] = {
                .num_channels = 8,
                .regmap_type = AD5686_REGMAP,
        },
+       [ID_AD5673R] = {
+               .channels = ad5674r_channels,
+               .int_vref_mv = 2500,
+               .num_channels = 16,
+               .regmap_type = AD5686_REGMAP,
+       },
        [ID_AD5674R] = {
                .channels = ad5674r_channels,
                .int_vref_mv = 2500,
@@ -324,6 +330,12 @@ static const struct ad5686_chip_info ad5686_chip_info_tbl[] = {
                .num_channels = 8,
                .regmap_type = AD5686_REGMAP,
        },
+       [ID_AD5677R] = {
+               .channels = ad5679r_channels,
+               .int_vref_mv = 2500,
+               .num_channels = 16,
+               .regmap_type = AD5686_REGMAP,
+       },
        [ID_AD5679R] = {
                .channels = ad5679r_channels,
                .int_vref_mv = 2500,
index d9c8ba4..f89a6f9 100644 (file)
@@ -55,10 +55,12 @@ enum ad5686_supported_device_ids {
        ID_AD5338R,
        ID_AD5671R,
        ID_AD5672R,
+       ID_AD5673R,
        ID_AD5674R,
        ID_AD5675R,
        ID_AD5676,
        ID_AD5676R,
+       ID_AD5677R,
        ID_AD5679R,
        ID_AD5681R,
        ID_AD5682R,
index a39eda7..24a6a4a 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * AD5671R, AD5675R, AD5691R, AD5692R, AD5693, AD5693R,
- * AD5694, AD5694R, AD5695R, AD5696, AD5696R
+ * AD5338R, AD5671R, AD5673R, AD5675R, AD5677R, AD5691R, AD5692R, AD5693,
+ * AD5693R, AD5694, AD5694R, AD5695R, AD5696, AD5696R
  * Digital to analog converters driver
  *
  * Copyright 2018 Analog Devices Inc.
@@ -74,7 +74,9 @@ static const struct i2c_device_id ad5686_i2c_id[] = {
        {"ad5311r", ID_AD5311R},
        {"ad5338r", ID_AD5338R},
        {"ad5671r", ID_AD5671R},
+       {"ad5673r", ID_AD5673R},
        {"ad5675r", ID_AD5675R},
+       {"ad5677r", ID_AD5677R},
        {"ad5691r", ID_AD5691R},
        {"ad5692r", ID_AD5692R},
        {"ad5693", ID_AD5693},