Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / iio / dac / ad5624r.h
diff --git a/kernel/drivers/iio/dac/ad5624r.h b/kernel/drivers/iio/dac/ad5624r.h
new file mode 100644 (file)
index 0000000..5dca302
--- /dev/null
@@ -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_ */