| /* | 
 |  * 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_ */ |