1 #ifndef SPI_ADIS16203_H_
2 #define SPI_ADIS16203_H_
4 #define ADIS16203_STARTUP_DELAY 220 /* ms */
6 /* Flash memory write count */
7 #define ADIS16203_FLASH_CNT 0x00
9 /* Output, power supply */
10 #define ADIS16203_SUPPLY_OUT 0x02
12 /* Output, auxiliary ADC input */
13 #define ADIS16203_AUX_ADC 0x08
15 /* Output, temperature */
16 #define ADIS16203_TEMP_OUT 0x0A
18 /* Output, x-axis inclination */
19 #define ADIS16203_XINCL_OUT 0x0C
21 /* Output, y-axis inclination */
22 #define ADIS16203_YINCL_OUT 0x0E
24 /* Incline null calibration */
25 #define ADIS16203_INCL_NULL 0x18
27 /* Alarm 1 amplitude threshold */
28 #define ADIS16203_ALM_MAG1 0x20
30 /* Alarm 2 amplitude threshold */
31 #define ADIS16203_ALM_MAG2 0x22
33 /* Alarm 1, sample period */
34 #define ADIS16203_ALM_SMPL1 0x24
36 /* Alarm 2, sample period */
37 #define ADIS16203_ALM_SMPL2 0x26
40 #define ADIS16203_ALM_CTRL 0x28
42 /* Auxiliary DAC data */
43 #define ADIS16203_AUX_DAC 0x30
45 /* General-purpose digital input/output control */
46 #define ADIS16203_GPIO_CTRL 0x32
48 /* Miscellaneous control */
49 #define ADIS16203_MSC_CTRL 0x34
51 /* Internal sample period (rate) control */
52 #define ADIS16203_SMPL_PRD 0x36
54 /* Operation, filter configuration */
55 #define ADIS16203_AVG_CNT 0x38
57 /* Operation, sleep mode control */
58 #define ADIS16203_SLP_CNT 0x3A
60 /* Diagnostics, system status register */
61 #define ADIS16203_DIAG_STAT 0x3C
63 /* Operation, system command register */
64 #define ADIS16203_GLOB_CMD 0x3E
68 /* Self-test at power-on: 1 = disabled, 0 = enabled */
69 #define ADIS16203_MSC_CTRL_PWRUP_SELF_TEST BIT(10)
71 /* Reverses rotation of both inclination outputs */
72 #define ADIS16203_MSC_CTRL_REVERSE_ROT_EN BIT(9)
74 /* Self-test enable */
75 #define ADIS16203_MSC_CTRL_SELF_TEST_EN BIT(8)
77 /* Data-ready enable: 1 = enabled, 0 = disabled */
78 #define ADIS16203_MSC_CTRL_DATA_RDY_EN BIT(2)
80 /* Data-ready polarity: 1 = active high, 0 = active low */
81 #define ADIS16203_MSC_CTRL_ACTIVE_HIGH BIT(1)
83 /* Data-ready line selection: 1 = DIO1, 0 = DIO0 */
84 #define ADIS16203_MSC_CTRL_DATA_RDY_DIO1 BIT(0)
88 /* Alarm 2 status: 1 = alarm active, 0 = alarm inactive */
89 #define ADIS16203_DIAG_STAT_ALARM2 BIT(9)
91 /* Alarm 1 status: 1 = alarm active, 0 = alarm inactive */
92 #define ADIS16203_DIAG_STAT_ALARM1 BIT(8)
94 /* Self-test diagnostic error flag */
95 #define ADIS16203_DIAG_STAT_SELFTEST_FAIL_BIT 5
97 /* SPI communications failure */
98 #define ADIS16203_DIAG_STAT_SPI_FAIL_BIT 3
100 /* Flash update failure */
101 #define ADIS16203_DIAG_STAT_FLASH_UPT_BIT 2
103 /* Power supply above 3.625 V */
104 #define ADIS16203_DIAG_STAT_POWER_HIGH_BIT 1
106 /* Power supply below 3.15 V */
107 #define ADIS16203_DIAG_STAT_POWER_LOW_BIT 0
111 #define ADIS16203_GLOB_CMD_SW_RESET BIT(7)
112 #define ADIS16203_GLOB_CMD_CLEAR_STAT BIT(4)
113 #define ADIS16203_GLOB_CMD_FACTORY_CAL BIT(1)
115 #define ADIS16203_ERROR_ACTIVE BIT(14)
117 enum adis16203_scan {
118 ADIS16203_SCAN_INCLI_X,
119 ADIS16203_SCAN_INCLI_Y,
120 ADIS16203_SCAN_SUPPLY,
121 ADIS16203_SCAN_AUX_ADC,
125 #endif /* SPI_ADIS16203_H_ */