All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.