Re: [PATCH] staging: iio: dac: Add support for AD5541A, AD5512A digital to analog convertors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/19/10 13:56, michael.hennerich@xxxxxxxxxx wrote:
> From: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> 
Looks fine to me.
> Signed-off-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
Acked-by: Jonathan Cameron <jic23@xxxxxxxxx>
> ---
>  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_ */

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux