diff options
Diffstat (limited to 'drivers/iio/dac/ad5624r.h')
| -rw-r--r-- | drivers/iio/dac/ad5624r.h | 79 | 
1 files changed, 79 insertions, 0 deletions
diff --git a/drivers/iio/dac/ad5624r.h b/drivers/iio/dac/ad5624r.h new file mode 100644 index 00000000000..5dca3028cdf --- /dev/null +++ b/drivers/iio/dac/ad5624r.h @@ -0,0 +1,79 @@ +/* + * AD5624R SPI DAC driver + * + * Copyright 2010-2011 Analog Devices Inc. + * + * Licensed under the GPL-2. + */ +#ifndef SPI_AD5624R_H_ +#define SPI_AD5624R_H_ + +#define AD5624R_DAC_CHANNELS			4 + +#define AD5624R_ADDR_DAC0			0x0 +#define AD5624R_ADDR_DAC1			0x1 +#define AD5624R_ADDR_DAC2			0x2 +#define AD5624R_ADDR_DAC3			0x3 +#define AD5624R_ADDR_ALL_DAC			0x7 + +#define AD5624R_CMD_WRITE_INPUT_N		0x0 +#define AD5624R_CMD_UPDATE_DAC_N		0x1 +#define AD5624R_CMD_WRITE_INPUT_N_UPDATE_ALL	0x2 +#define AD5624R_CMD_WRITE_INPUT_N_UPDATE_N	0x3 +#define AD5624R_CMD_POWERDOWN_DAC		0x4 +#define AD5624R_CMD_RESET			0x5 +#define AD5624R_CMD_LDAC_SETUP			0x6 +#define AD5624R_CMD_INTERNAL_REFER_SETUP	0x7 + +#define AD5624R_LDAC_PWRDN_NONE			0x0 +#define AD5624R_LDAC_PWRDN_1K			0x1 +#define AD5624R_LDAC_PWRDN_100K			0x2 +#define AD5624R_LDAC_PWRDN_3STATE		0x3 + +/** + * struct ad5624r_chip_info - chip specific information + * @channels:		channel spec for the DAC + * @int_vref_mv:	AD5620/40/60: the internal reference voltage + */ + +struct ad5624r_chip_info { +	const struct iio_chan_spec	*channels; +	u16				int_vref_mv; +}; + +/** + * struct ad5446_state - driver instance specific data + * @indio_dev:		the industrial I/O device + * @us:			spi_device + * @chip_info:		chip model specific constants, available modes etc + * @reg:		supply regulator + * @vref_mv:		actual reference voltage used + * @pwr_down_mask	power down mask + * @pwr_down_mode	current power down mode + */ + +struct ad5624r_state { +	struct spi_device		*us; +	const struct ad5624r_chip_info	*chip_info; +	struct regulator		*reg; +	unsigned short			vref_mv; +	unsigned			pwr_down_mask; +	unsigned			pwr_down_mode; +}; + +/** + * ad5624r_supported_device_ids: + * The AD5624/44/64 parts are available in different + * fixed internal reference voltage options. + */ + +enum ad5624r_supported_device_ids { +	ID_AD5624R3, +	ID_AD5644R3, +	ID_AD5664R3, +	ID_AD5624R5, +	ID_AD5644R5, +	ID_AD5664R5, +}; + +#endif /* SPI_AD5624R_H_ */  | 
