1 #ifndef SPI_ADIS16209_H_
2 #define SPI_ADIS16209_H_
4 #define ADIS16209_STARTUP_DELAY 220
6 #define ADIS16209_READ_REG(a) a
7 #define ADIS16209_WRITE_REG(a) ((a) | 0x80)
10 #define ADIS16209_FLASH_CNT 0x00
12 #define ADIS16209_SUPPLY_OUT 0x02
14 #define ADIS16209_XACCL_OUT 0x04
16 #define ADIS16209_YACCL_OUT 0x06
18 #define ADIS16209_AUX_ADC 0x08
20 #define ADIS16209_TEMP_OUT 0x0A
22 #define ADIS16209_XINCL_OUT 0x0C
24 #define ADIS16209_YINCL_OUT 0x0E
26 #define ADIS16209_ROT_OUT 0x10
28 #define ADIS16209_XACCL_NULL 0x12
30 #define ADIS16209_YACCL_NULL 0x14
32 #define ADIS16209_XINCL_NULL 0x16
34 #define ADIS16209_YINCL_NULL 0x18
36 #define ADIS16209_ROT_NULL 0x1A
38 #define ADIS16209_ALM_MAG1 0x20
40 #define ADIS16209_ALM_MAG2 0x22
42 #define ADIS16209_ALM_SMPL1 0x24
44 #define ADIS16209_ALM_SMPL2 0x26
46 #define ADIS16209_ALM_CTRL 0x28
48 #define ADIS16209_AUX_DAC 0x30
50 #define ADIS16209_GPIO_CTRL 0x32
52 #define ADIS16209_MSC_CTRL 0x34
54 #define ADIS16209_SMPL_PRD 0x36
56 #define ADIS16209_AVG_CNT 0x38
58 #define ADIS16209_SLP_CNT 0x3A
60 #define ADIS16209_DIAG_STAT 0x3C
62 #define ADIS16209_GLOB_CMD 0x3E
64 #define ADIS16209_OUTPUTS 8
68 #define ADIS16209_MSC_CTRL_PWRUP_SELF_TEST (1 << 10)
70 #define ADIS16209_MSC_CTRL_SELF_TEST_EN (1 << 8)
72 #define ADIS16209_MSC_CTRL_DATA_RDY_EN (1 << 2)
74 #define ADIS16209_MSC_CTRL_ACTIVE_HIGH (1 << 1)
76 #define ADIS16209_MSC_CTRL_DATA_RDY_DIO2 (1 << 0)
80 #define ADIS16209_DIAG_STAT_ALARM2 (1<<9)
82 #define ADIS16209_DIAG_STAT_ALARM1 (1<<8)
84 #define ADIS16209_DIAG_STAT_SELFTEST_FAIL (1<<5)
86 #define ADIS16209_DIAG_STAT_SPI_FAIL (1<<3)
88 #define ADIS16209_DIAG_STAT_FLASH_UPT (1<<2)
90 #define ADIS16209_DIAG_STAT_POWER_HIGH (1<<1)
92 #define ADIS16209_DIAG_STAT_POWER_LOW (1<<0)
95 #define ADIS16209_GLOB_CMD_SW_RESET (1<<7)
96 #define ADIS16209_GLOB_CMD_CLEAR_STAT (1<<4)
97 #define ADIS16209_GLOB_CMD_FACTORY_CAL (1<<1)
99 #define ADIS16209_MAX_TX 24
100 #define ADIS16209_MAX_RX 24
102 #define ADIS16209_ERROR_ACTIVE (1<<14)
122 #define ADIS16209_SCAN_SUPPLY 0
123 #define ADIS16209_SCAN_ACC_X 1
124 #define ADIS16209_SCAN_ACC_Y 2
125 #define ADIS16209_SCAN_AUX_ADC 3
126 #define ADIS16209_SCAN_TEMP 4
127 #define ADIS16209_SCAN_INCLI_X 5
128 #define ADIS16209_SCAN_INCLI_Y 6
129 #define ADIS16209_SCAN_ROT 7
131 #ifdef CONFIG_IIO_BUFFER
155 adis16209_read_data_from_ring(
struct device *
dev,