|
@@ -9,46 +9,6 @@
|
|
|
#ifndef SPI_AD5791_H_
|
|
|
#define SPI_AD5791_H_
|
|
|
|
|
|
-#define AD5791_RES_MASK(x) ((1 << (x)) - 1)
|
|
|
-#define AD5791_DAC_MASK AD5791_RES_MASK(20)
|
|
|
-#define AD5791_DAC_MSB (1 << 19)
|
|
|
-
|
|
|
-#define AD5791_CMD_READ (1 << 23)
|
|
|
-#define AD5791_CMD_WRITE (0 << 23)
|
|
|
-#define AD5791_ADDR(addr) ((addr) << 20)
|
|
|
-
|
|
|
-/* Registers */
|
|
|
-#define AD5791_ADDR_NOOP 0
|
|
|
-#define AD5791_ADDR_DAC0 1
|
|
|
-#define AD5791_ADDR_CTRL 2
|
|
|
-#define AD5791_ADDR_CLRCODE 3
|
|
|
-#define AD5791_ADDR_SW_CTRL 4
|
|
|
-
|
|
|
-/* Control Register */
|
|
|
-#define AD5791_CTRL_RBUF (1 << 1)
|
|
|
-#define AD5791_CTRL_OPGND (1 << 2)
|
|
|
-#define AD5791_CTRL_DACTRI (1 << 3)
|
|
|
-#define AD5791_CTRL_BIN2SC (1 << 4)
|
|
|
-#define AD5791_CTRL_SDODIS (1 << 5)
|
|
|
-#define AD5761_CTRL_LINCOMP(x) ((x) << 6)
|
|
|
-
|
|
|
-#define AD5791_LINCOMP_0_10 0
|
|
|
-#define AD5791_LINCOMP_10_12 1
|
|
|
-#define AD5791_LINCOMP_12_16 2
|
|
|
-#define AD5791_LINCOMP_16_19 3
|
|
|
-#define AD5791_LINCOMP_19_20 12
|
|
|
-
|
|
|
-#define AD5780_LINCOMP_0_10 0
|
|
|
-#define AD5780_LINCOMP_10_20 12
|
|
|
-
|
|
|
-/* Software Control Register */
|
|
|
-#define AD5791_SWCTRL_LDAC (1 << 0)
|
|
|
-#define AD5791_SWCTRL_CLR (1 << 1)
|
|
|
-#define AD5791_SWCTRL_RESET (1 << 2)
|
|
|
-
|
|
|
-#define AD5791_DAC_PWRDN_6K 0
|
|
|
-#define AD5791_DAC_PWRDN_3STATE 1
|
|
|
-
|
|
|
/*
|
|
|
* TODO: struct ad5791_platform_data needs to go into include/linux/iio
|
|
|
*/
|
|
@@ -66,47 +26,4 @@ struct ad5791_platform_data {
|
|
|
bool use_rbuf_gain2;
|
|
|
};
|
|
|
|
|
|
-/**
|
|
|
- * struct ad5791_chip_info - chip specific information
|
|
|
- * @get_lin_comp: function pointer to the device specific function
|
|
|
- */
|
|
|
-
|
|
|
-struct ad5791_chip_info {
|
|
|
- int (*get_lin_comp) (unsigned int span);
|
|
|
-};
|
|
|
-
|
|
|
-/**
|
|
|
- * struct ad5791_state - driver instance specific data
|
|
|
- * @us: spi_device
|
|
|
- * @reg_vdd: positive supply regulator
|
|
|
- * @reg_vss: negative supply regulator
|
|
|
- * @chip_info: chip model specific constants
|
|
|
- * @vref_mv: actual reference voltage used
|
|
|
- * @vref_neg_mv: voltage of the negative supply
|
|
|
- * @pwr_down_mode current power down mode
|
|
|
- */
|
|
|
-
|
|
|
-struct ad5791_state {
|
|
|
- struct spi_device *spi;
|
|
|
- struct regulator *reg_vdd;
|
|
|
- struct regulator *reg_vss;
|
|
|
- const struct ad5791_chip_info *chip_info;
|
|
|
- unsigned short vref_mv;
|
|
|
- unsigned int vref_neg_mv;
|
|
|
- unsigned ctrl;
|
|
|
- unsigned pwr_down_mode;
|
|
|
- bool pwr_down;
|
|
|
-};
|
|
|
-
|
|
|
-/**
|
|
|
- * ad5791_supported_device_ids:
|
|
|
- */
|
|
|
-
|
|
|
-enum ad5791_supported_device_ids {
|
|
|
- ID_AD5760,
|
|
|
- ID_AD5780,
|
|
|
- ID_AD5781,
|
|
|
- ID_AD5791,
|
|
|
-};
|
|
|
-
|
|
|
#endif /* SPI_AD5791_H_ */
|