iio: dac: ad5446: Add support for new AD5600 DAC
authorStefan Popa <stefan.popa@analog.com>
Wed, 6 Nov 2019 09:47:21 +0000 (11:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Dec 2019 15:36:00 +0000 (16:36 +0100)
[ Upstream commit 6376cbe549fffb378403cee78efd26b8a2c8e450 ]

The AD5600 is a single channel, 16-bit resolution, voltage output digital
to analog converter (DAC). The AD5600 uses a 3-wire SPI interface. It is
part of the AD5541 family of DACs.

The ad5446 IIO driver implements support for some of these DACs (in the
AD5441 family), so the change is a simple entry in this driver.

Link: https://www.analog.com/media/en/technical-documentation/data-sheets/AD5600.pdf
Signed-off-by: Stefan Popa <stefan.popa@analog.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iio/dac/Kconfig
drivers/iio/dac/ad5446.c

index 80beb64..69f4cfa 100644 (file)
@@ -59,8 +59,8 @@ config AD5446
        help
          Say yes here to build support for Analog Devices AD5300, AD5301, AD5310,
          AD5311, AD5320, AD5321, AD5444, AD5446, AD5450, AD5451, AD5452, AD5453,
-         AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5601, AD5602, AD5611, AD5612,
-         AD5620, AD5621, AD5622, AD5640, AD5641, AD5660, AD5662 DACs
+         AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5600, AD5601, AD5602, AD5611,
+         AD5612, AD5620, AD5621, AD5622, AD5640, AD5641, AD5660, AD5662 DACs
          as well as Texas Instruments DAC081S101, DAC101S101, DAC121S101.
 
          To compile this driver as a module, choose M here: the
index fd26a42..d3ce5de 100644 (file)
@@ -328,6 +328,7 @@ enum ad5446_supported_spi_device_ids {
        ID_AD5541A,
        ID_AD5512A,
        ID_AD5553,
+       ID_AD5600,
        ID_AD5601,
        ID_AD5611,
        ID_AD5621,
@@ -382,6 +383,10 @@ static const struct ad5446_chip_info ad5446_spi_chip_info[] = {
                .channel = AD5446_CHANNEL(14, 16, 0),
                .write = ad5446_write,
        },
+       [ID_AD5600] = {
+               .channel = AD5446_CHANNEL(16, 16, 0),
+               .write = ad5446_write,
+       },
        [ID_AD5601] = {
                .channel = AD5446_CHANNEL_POWERDOWN(8, 16, 6),
                .write = ad5446_write,
@@ -449,6 +454,7 @@ static const struct spi_device_id ad5446_spi_ids[] = {
        {"ad5542a", ID_AD5541A}, /* ad5541a and ad5542a are compatible */
        {"ad5543", ID_AD5541A}, /* ad5541a and ad5543 are compatible */
        {"ad5553", ID_AD5553},
+       {"ad5600", ID_AD5600},
        {"ad5601", ID_AD5601},
        {"ad5611", ID_AD5611},
        {"ad5621", ID_AD5621},