* [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors
@ 2010-11-19 13:56 michael.hennerich
2010-11-19 14:45 ` Jonathan Cameron
0 siblings, 1 reply; 4+ messages in thread
From: michael.hennerich @ 2010-11-19 13:56 UTC (permalink / raw)
To: jic23; +Cc: linux-iio, drivers, device-drivers-devel, Michael Hennerich
From: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
---
drivers/staging/iio/dac/Kconfig | 6 +++---
drivers/staging/iio/dac/ad5446.c | 27 +++++++++++++++++++++++++--
drivers/staging/iio/dac/ad5446.h | 2 ++
3 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/iio/dac/Kconfig b/drivers/staging/iio/dac/Kconfig
index 88914e9..9c497cc 100644
--- a/drivers/staging/iio/dac/Kconfig
+++ b/drivers/staging/iio/dac/Kconfig
@@ -11,11 +11,11 @@ config AD5624R_SPI
AD5664R convertors (DAC). This driver uses the common SPI interface.
config AD5446
- tristate "Analog Devices AD5444, AD5446 DAC SPI driver"
+ tristate "Analog Devices AD5444, AD5446 and AD5541A, AD5512A DAC SPI driver"
depends on SPI
help
- Say yes here to build support for Analog Devices AD5444 and AD5446
- multiplying DACs.
+ Say yes here to build support for Analog Devices AD5444, AD5446
+ and AD5541A, AD5512A 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 c70243a..154a7c2 100644
--- a/drivers/staging/iio/dac/ad5446.c
+++ b/drivers/staging/iio/dac/ad5446.c
@@ -43,8 +43,17 @@ static ssize_t ad5446_write(struct device *dev,
}
mutex_lock(&dev_info->mlock);
- st->data = cpu_to_be16(AD5446_LOAD |
- (val << st->chip_info->res_shift));
+ switch (spi_get_device_id(st->spi)->driver_data) {
+ case ID_AD5444:
+ case ID_AD5446:
+ st->data = cpu_to_be16(AD5446_LOAD |
+ (val << st->chip_info->res_shift));
+ break;
+ case ID_AD5542A:
+ case ID_AD5512A:
+ st->data = cpu_to_be16(val << st->chip_info->res_shift);
+ break;
+ }
ret = spi_sync(st->spi, &st->msg);
mutex_unlock(&dev_info->mlock);
@@ -103,6 +112,18 @@ static const struct ad5446_chip_info ad5446_chip_info_tbl[] = {
.res_shift = 0,
.sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
},
+ [ID_AD5542A] = {
+ .bits = 16,
+ .storagebits = 16,
+ .res_shift = 0,
+ .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
+ },
+ [ID_AD5512A] = {
+ .bits = 12,
+ .storagebits = 16,
+ .res_shift = 4,
+ .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
+ },
};
static int __devinit ad5446_probe(struct spi_device *spi)
@@ -196,6 +217,8 @@ static int ad5446_remove(struct spi_device *spi)
static const struct spi_device_id ad5446_id[] = {
{"ad5444", ID_AD5444},
{"ad5446", ID_AD5446},
+ {"ad5542a", ID_AD5542A},
+ {"ad5512a", ID_AD5512A},
{}
};
diff --git a/drivers/staging/iio/dac/ad5446.h b/drivers/staging/iio/dac/ad5446.h
index 3456382..0a655f1 100644
--- a/drivers/staging/iio/dac/ad5446.h
+++ b/drivers/staging/iio/dac/ad5446.h
@@ -39,6 +39,8 @@ struct ad5446_state {
enum ad5446_supported_device_ids {
ID_AD5444,
ID_AD5446,
+ ID_AD5542A,
+ ID_AD5512A,
};
#endif /* IIO_ADC_AD5446_H_ */
--
1.6.0.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors
2010-11-19 13:56 [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors michael.hennerich
@ 2010-11-19 14:45 ` Jonathan Cameron
2010-11-19 14:51 ` Hennerich, Michael
0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Cameron @ 2010-11-19 14:45 UTC (permalink / raw)
To: michael.hennerich; +Cc: linux-iio, drivers, device-drivers-devel
On 11/19/10 13:56, michael.hennerich@analog.com wrote:
> From: Michael Hennerich <michael.hennerich@analog.com>
>
Looks fine to me.
> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
> ---
> drivers/staging/iio/dac/Kconfig | 6 +++---
> drivers/staging/iio/dac/ad5446.c | 27 +++++++++++++++++++++++++--
> drivers/staging/iio/dac/ad5446.h | 2 ++
> 3 files changed, 30 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/staging/iio/dac/Kconfig b/drivers/staging/iio/dac/Kconfig
> index 88914e9..9c497cc 100644
> --- a/drivers/staging/iio/dac/Kconfig
> +++ b/drivers/staging/iio/dac/Kconfig
> @@ -11,11 +11,11 @@ config AD5624R_SPI
> AD5664R convertors (DAC). This driver uses the common SPI interface.
>
> config AD5446
> - tristate "Analog Devices AD5444, AD5446 DAC SPI driver"
> + tristate "Analog Devices AD5444, AD5446 and AD5541A, AD5512A DAC SPI driver"
> depends on SPI
> help
> - Say yes here to build support for Analog Devices AD5444 and AD5446
> - multiplying DACs.
> + Say yes here to build support for Analog Devices AD5444, AD5446
> + and AD5541A, AD5512A 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 c70243a..154a7c2 100644
> --- a/drivers/staging/iio/dac/ad5446.c
> +++ b/drivers/staging/iio/dac/ad5446.c
> @@ -43,8 +43,17 @@ static ssize_t ad5446_write(struct device *dev,
> }
>
> mutex_lock(&dev_info->mlock);
> - st->data = cpu_to_be16(AD5446_LOAD |
> - (val << st->chip_info->res_shift));
> + switch (spi_get_device_id(st->spi)->driver_data) {
> + case ID_AD5444:
> + case ID_AD5446:
> + st->data = cpu_to_be16(AD5446_LOAD |
> + (val << st->chip_info->res_shift));
> + break;
> + case ID_AD5542A:
> + case ID_AD5512A:
> + st->data = cpu_to_be16(val << st->chip_info->res_shift);
> + break;
> + }
>
> ret = spi_sync(st->spi, &st->msg);
> mutex_unlock(&dev_info->mlock);
> @@ -103,6 +112,18 @@ static const struct ad5446_chip_info ad5446_chip_info_tbl[] = {
> .res_shift = 0,
> .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
> },
> + [ID_AD5542A] = {
> + .bits = 16,
> + .storagebits = 16,
> + .res_shift = 0,
> + .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
> + },
> + [ID_AD5512A] = {
> + .bits = 12,
> + .storagebits = 16,
> + .res_shift = 4,
> + .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
> + },
> };
>
> static int __devinit ad5446_probe(struct spi_device *spi)
> @@ -196,6 +217,8 @@ static int ad5446_remove(struct spi_device *spi)
> static const struct spi_device_id ad5446_id[] = {
> {"ad5444", ID_AD5444},
> {"ad5446", ID_AD5446},
> + {"ad5542a", ID_AD5542A},
> + {"ad5512a", ID_AD5512A},
> {}
> };
>
> diff --git a/drivers/staging/iio/dac/ad5446.h b/drivers/staging/iio/dac/ad5446.h
> index 3456382..0a655f1 100644
> --- a/drivers/staging/iio/dac/ad5446.h
> +++ b/drivers/staging/iio/dac/ad5446.h
> @@ -39,6 +39,8 @@ struct ad5446_state {
> enum ad5446_supported_device_ids {
> ID_AD5444,
> ID_AD5446,
> + ID_AD5542A,
> + ID_AD5512A,
> };
>
> #endif /* IIO_ADC_AD5446_H_ */
^ permalink raw reply [flat|nested] 4+ messages in thread* RE: [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors
2010-11-19 14:45 ` Jonathan Cameron
@ 2010-11-19 14:51 ` Hennerich, Michael
2010-11-19 17:51 ` Jonathan Cameron
0 siblings, 1 reply; 4+ messages in thread
From: Hennerich, Michael @ 2010-11-19 14:51 UTC (permalink / raw)
To: Jonathan Cameron
Cc: linux-iio@vger.kernel.org, Drivers,
device-drivers-devel@blackfin.uclinux.org
Jonathan Cameron wrote on 2010-11-19:
> On 11/19/10 13:56, michael.hennerich@analog.com wrote:
>> From: Michael Hennerich <michael.hennerich@analog.com>
>>
>> Looks fine to me.
This one is for a new driver, that you haven't reviewed yet.
>>Signed-off-by: Michael Hennerich
>> <michael.hennerich@analog.com> Acked-by: Jonathan Cameron
>> <jic23@cam.ac.uk> ---
>> drivers/staging/iio/dac/Kconfig | 6 +++---
>> drivers/staging/iio/dac/ad5446.c | 27 +++++++++++++++++++++++++--
>> drivers/staging/iio/dac/ad5446.h | 2 ++
>> 3 files changed, 30 insertions(+), 5 deletions(-)
>> diff --git a/drivers/staging/iio/dac/Kconfig
>> b/drivers/staging/iio/dac/Kconfig index 88914e9..9c497cc 100644
>> --- a/drivers/staging/iio/dac/Kconfig
>> +++ b/drivers/staging/iio/dac/Kconfig
>> @@ -11,11 +11,11 @@ config AD5624R_SPI
>> AD5664R convertors (DAC). This driver uses the common SPI
> interface.
>>
>> config AD5446
>> - tristate "Analog Devices AD5444, AD5446 DAC SPI driver"
>> + tristate "Analog Devices AD5444, AD5446 and AD5541A, AD5512A DAC
> SPI driver"
>> depends on SPI
>> help
>> - Say yes here to build support for Analog Devices AD5444 and AD544=
6
>> - multiplying DACs. + Say yes here to build support for Analog
>> Devices AD5444, AD5446 + and AD5541A, AD5512A 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 c70243a..154a7c2 100644
>> --- a/drivers/staging/iio/dac/ad5446.c
>> +++ b/drivers/staging/iio/dac/ad5446.c
>> @@ -43,8 +43,17 @@ static ssize_t ad5446_write(struct device *dev,
>> }
>>
>> mutex_lock(&dev_info->mlock);
>> - st->data =3D cpu_to_be16(AD5446_LOAD |
>> - (val << st->chip_info->res_shift));
>> + switch (spi_get_device_id(st->spi)->driver_data) {
>> + case ID_AD5444:
>> + case ID_AD5446:
>> + st->data =3D cpu_to_be16(AD5446_LOAD |
>> + (val << st->chip_info->res_shift));
>> + break;
>> + case ID_AD5542A:
>> + case ID_AD5512A:
>> + st->data =3D cpu_to_be16(val << st->chip_info-
>> res_shift);
>> + break;
>> + }
>>
>> ret =3D spi_sync(st->spi, &st->msg);
>> mutex_unlock(&dev_info->mlock);
>> @@ -103,6 +112,18 @@ static const struct ad5446_chip_info
> ad5446_chip_info_tbl[] =3D {
>> .res_shift =3D 0,
>> .sign =3D 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
>> },
>> + [ID_AD5542A] =3D {
>> + .bits =3D 16,
>> + .storagebits =3D 16,
>> + .res_shift =3D 0,
>> + .sign =3D 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
>> + },
>> + [ID_AD5512A] =3D {
>> + .bits =3D 12,
>> + .storagebits =3D 16,
>> + .res_shift =3D 4,
>> + .sign =3D 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
>> + },
>> };
>>
>> static int __devinit ad5446_probe(struct spi_device *spi) @@ -196,6
>> +217,8 @@ static int ad5446_remove(struct spi_device *spi) static
>> const struct spi_device_id ad5446_id[] =3D {
>> {"ad5444", ID_AD5444},
>> {"ad5446", ID_AD5446},
>> + {"ad5542a", ID_AD5542A},
>> + {"ad5512a", ID_AD5512A},
>> {}
>> };
>> diff --git a/drivers/staging/iio/dac/ad5446.h
>> b/drivers/staging/iio/dac/ad5446.h
>> index 3456382..0a655f1 100644
>> --- a/drivers/staging/iio/dac/ad5446.h
>> +++ b/drivers/staging/iio/dac/ad5446.h
>> @@ -39,6 +39,8 @@ struct ad5446_state { enum
>> ad5446_supported_device_ids {
>> ID_AD5444,
>> ID_AD5446,
>> + ID_AD5542A,
>> + ID_AD5512A,
>> };
>>
>> #endif /* IIO_ADC_AD5446_H_ */
Greetings,
Michael
--
Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen
Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 4036 Geschaeft=
sfuehrer Thomas Wessel, William A. Martin, Margaret Seif
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors
2010-11-19 14:51 ` Hennerich, Michael
@ 2010-11-19 17:51 ` Jonathan Cameron
0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2010-11-19 17:51 UTC (permalink / raw)
To: Hennerich, Michael
Cc: linux-iio@vger.kernel.org, Drivers,
device-drivers-devel@blackfin.uclinux.org
On 11/19/10 14:51, Hennerich, Michael wrote:
> Jonathan Cameron wrote on 2010-11-19:
>> On 11/19/10 13:56, michael.hennerich@analog.com wrote:
>>> From: Michael Hennerich <michael.hennerich@analog.com>
>>>
>>> Looks fine to me.
>
> This one is for a new driver, that you haven't reviewed yet.
lol. That kind of shows up that I never tested if it applies. Must be
getting lazy ;)
>
>>> Signed-off-by: Michael Hennerich
>>> <michael.hennerich@analog.com> Acked-by: Jonathan Cameron
>>> <jic23@cam.ac.uk> ---
>>> drivers/staging/iio/dac/Kconfig | 6 +++---
>>> drivers/staging/iio/dac/ad5446.c | 27 +++++++++++++++++++++++++--
>>> drivers/staging/iio/dac/ad5446.h | 2 ++
>>> 3 files changed, 30 insertions(+), 5 deletions(-)
>>> diff --git a/drivers/staging/iio/dac/Kconfig
>>> b/drivers/staging/iio/dac/Kconfig index 88914e9..9c497cc 100644
>>> --- a/drivers/staging/iio/dac/Kconfig
>>> +++ b/drivers/staging/iio/dac/Kconfig
>>> @@ -11,11 +11,11 @@ config AD5624R_SPI
>>> AD5664R convertors (DAC). This driver uses the common SPI
>> interface.
>>>
>>> config AD5446
>>> - tristate "Analog Devices AD5444, AD5446 DAC SPI driver"
>>> + tristate "Analog Devices AD5444, AD5446 and AD5541A, AD5512A DAC
>> SPI driver"
>>> depends on SPI
>>> help
>>> - Say yes here to build support for Analog Devices AD5444 and AD5446
>>> - multiplying DACs. + Say yes here to build support for Analog
>>> Devices AD5444, AD5446 + and AD5541A, AD5512A 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 c70243a..154a7c2 100644
>>> --- a/drivers/staging/iio/dac/ad5446.c
>>> +++ b/drivers/staging/iio/dac/ad5446.c
>>> @@ -43,8 +43,17 @@ static ssize_t ad5446_write(struct device *dev,
>>> }
>>>
>>> mutex_lock(&dev_info->mlock);
>>> - st->data = cpu_to_be16(AD5446_LOAD |
>>> - (val << st->chip_info->res_shift));
>>> + switch (spi_get_device_id(st->spi)->driver_data) {
>>> + case ID_AD5444:
>>> + case ID_AD5446:
>>> + st->data = cpu_to_be16(AD5446_LOAD |
>>> + (val << st->chip_info->res_shift));
>>> + break;
>>> + case ID_AD5542A:
>>> + case ID_AD5512A:
>>> + st->data = cpu_to_be16(val << st->chip_info-
>>> res_shift);
>>> + break;
>>> + }
>>>
>>> ret = spi_sync(st->spi, &st->msg);
>>> mutex_unlock(&dev_info->mlock);
>>> @@ -103,6 +112,18 @@ static const struct ad5446_chip_info
>> ad5446_chip_info_tbl[] = {
>>> .res_shift = 0,
>>> .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
>>> },
>>> + [ID_AD5542A] = {
>>> + .bits = 16,
>>> + .storagebits = 16,
>>> + .res_shift = 0,
>>> + .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
>>> + },
>>> + [ID_AD5512A] = {
>>> + .bits = 12,
>>> + .storagebits = 16,
>>> + .res_shift = 4,
>>> + .sign = 'u', /* IIO_SCAN_EL_TYPE_UNSIGNED */
>>> + },
>>> };
>>>
>>> static int __devinit ad5446_probe(struct spi_device *spi) @@ -196,6
>>> +217,8 @@ static int ad5446_remove(struct spi_device *spi) static
>>> const struct spi_device_id ad5446_id[] = {
>>> {"ad5444", ID_AD5444},
>>> {"ad5446", ID_AD5446},
>>> + {"ad5542a", ID_AD5542A},
>>> + {"ad5512a", ID_AD5512A},
>>> {}
>>> };
>>> diff --git a/drivers/staging/iio/dac/ad5446.h
>>> b/drivers/staging/iio/dac/ad5446.h
>>> index 3456382..0a655f1 100644
>>> --- a/drivers/staging/iio/dac/ad5446.h
>>> +++ b/drivers/staging/iio/dac/ad5446.h
>>> @@ -39,6 +39,8 @@ struct ad5446_state { enum
>>> ad5446_supported_device_ids {
>>> ID_AD5444,
>>> ID_AD5446,
>>> + ID_AD5542A,
>>> + ID_AD5512A,
>>> };
>>>
>>> #endif /* IIO_ADC_AD5446_H_ */
>
> Greetings,
> Michael
>
> --
> Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen
> Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 4036 Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-11-19 17:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-19 13:56 [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors michael.hennerich
2010-11-19 14:45 ` Jonathan Cameron
2010-11-19 14:51 ` Hennerich, Michael
2010-11-19 17:51 ` Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.