summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Hennerich <michael.hennerich@analog.com>2011-03-10 13:26:48 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-14 11:50:28 -0700
commit2b61535a6e210358255c872b3187e48869e16e27 (patch)
treeb5d823af9dd3014448f28490afda670e62460af6
parentbbed4dc791036e97cbe844935dece153fdace0dc (diff)
downloadlinux-2b61535a6e210358255c872b3187e48869e16e27.tar.gz
linux-2b61535a6e210358255c872b3187e48869e16e27.tar.bz2
linux-2b61535a6e210358255c872b3187e48869e16e27.zip
staging: IIO: DAC: AD5446: Add support for AD5601/AD5611/AD5621
This patch adds support for the AD5601/AD5611/AD5621 single channel, 8-/10-/12-bit, buffered voltage output DACs. Changes since v1: Sort Kconfig description my number Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/iio/dac/Kconfig3
-rw-r--r--drivers/staging/iio/dac/ad5446.c24
-rw-r--r--drivers/staging/iio/dac/ad5446.h3
3 files changed, 29 insertions, 1 deletions
diff --git a/drivers/staging/iio/dac/Kconfig b/drivers/staging/iio/dac/Kconfig
index 3c72871389a2..67defcb359b1 100644
--- a/drivers/staging/iio/dac/Kconfig
+++ b/drivers/staging/iio/dac/Kconfig
@@ -15,7 +15,8 @@ config AD5446
depends on SPI
help
Say yes here to build support for Analog Devices AD5444, AD5446,
- AD5512A, AD5542A, AD5543, AD5553, AD5620, AD5640, AD5660 DACs.
+ AD5512A, AD5542A, AD5543, AD5553, AD5601, AD5611, AD5620, AD5621,
+ AD5640, AD5660 DACs.
To compile this driver as a module, choose M here: the
module will be called ad5446.
diff --git a/drivers/staging/iio/dac/ad5446.c b/drivers/staging/iio/dac/ad5446.c
index 861a7eacdaf7..8623a72e046c 100644
--- a/drivers/staging/iio/dac/ad5446.c
+++ b/drivers/staging/iio/dac/ad5446.c
@@ -269,6 +269,27 @@ static const struct ad5446_chip_info ad5446_chip_info_tbl[] = {
.left_shift = 0,
.store_sample = ad5542_store_sample,
},
+ [ID_AD5601] = {
+ .bits = 8,
+ .storagebits = 16,
+ .left_shift = 6,
+ .store_sample = ad5542_store_sample,
+ .store_pwr_down = ad5620_store_pwr_down,
+ },
+ [ID_AD5611] = {
+ .bits = 10,
+ .storagebits = 16,
+ .left_shift = 4,
+ .store_sample = ad5542_store_sample,
+ .store_pwr_down = ad5620_store_pwr_down,
+ },
+ [ID_AD5621] = {
+ .bits = 12,
+ .storagebits = 16,
+ .left_shift = 2,
+ .store_sample = ad5542_store_sample,
+ .store_pwr_down = ad5620_store_pwr_down,
+ },
[ID_AD5620_2500] = {
.bits = 12,
.storagebits = 16,
@@ -424,6 +445,9 @@ static const struct spi_device_id ad5446_id[] = {
{"ad5542a", ID_AD5542A},
{"ad5543", ID_AD5543},
{"ad5553", ID_AD5553},
+ {"ad5601", ID_AD5601},
+ {"ad5611", ID_AD5611},
+ {"ad5621", ID_AD5621},
{"ad5620-2500", ID_AD5620_2500}, /* AD5620/40/60: */
{"ad5620-1250", ID_AD5620_1250}, /* part numbers may look differently */
{"ad5640-2500", ID_AD5640_2500},
diff --git a/drivers/staging/iio/dac/ad5446.h b/drivers/staging/iio/dac/ad5446.h
index e9397a6783c5..7ac63ab8a11d 100644
--- a/drivers/staging/iio/dac/ad5446.h
+++ b/drivers/staging/iio/dac/ad5446.h
@@ -96,6 +96,9 @@ enum ad5446_supported_device_ids {
ID_AD5543,
ID_AD5512A,
ID_AD5553,
+ ID_AD5601,
+ ID_AD5611,
+ ID_AD5621,
ID_AD5620_2500,
ID_AD5620_1250,
ID_AD5640_2500,