43#define ADPD188_REG_STATUS 0x00
44#define ADPD188_REG_INT_MASK 0x01
45#define ADPD188_REG_GPIO_DRV 0x02
46#define ADPD188_REG_BG_STATUS 0x04
47#define ADPD188_REG_FIFO_THRESH 0x06
48#define ADPD188_REG_DEVID 0x08
49#define ADPD188_REG_I2CS_ID 0x09
50#define ADPD188_REG_CLK_RATIO 0x0A
51#define ADPD188_REG_GPIO_CTRL 0x0B
52#define ADPD188_REG_SLAVE_ADDR_KEY 0x0D
53#define ADPD188_REG_SW_RESET 0x0F
54#define ADPD188_REG_MODE 0x10
55#define ADPD188_REG_SLOT_EN 0x11
56#define ADPD188_REG_FSAMPLE 0x12
57#define ADPD188_REG_PD_LED_SELECT 0x14
58#define ADPD188_REG_NUM_AVG 0x15
59#define ADPD188_REG_BG_MEAS_A 0x16
60#define ADPD188_REG_INT_SEQ_A 0x17
61#define ADPD188_REG_SLOTA_CH1_OFFSET 0x18
62#define ADPD188_REG_SLOTA_CH2_OFFSET 0x19
63#define ADPD188_REG_SLOTA_CH3_OFFSET 0x1A
64#define ADPD188_REG_SLOTA_CH4_OFFSET 0x1B
65#define ADPD188_REG_BG_MEAS_B 0x1C
66#define ADPD188_REG_INT_SEQ_B 0x1D
67#define ADPD188_REG_SLOTB_CH1_OFFSET 0x1E
68#define ADPD188_REG_SLOTB_CH2_OFFSET 0x1F
69#define ADPD188_REG_SLOTB_CH3_OFFSET 0x20
70#define ADPD188_REG_SLOTB_CH4_OFFSET 0x21
71#define ADPD188_REG_ILED3_COARSE 0x22
72#define ADPD188_REG_ILED1_COARSE 0x23
73#define ADPD188_REG_ILED2_COARSE 0x24
74#define ADPD188_REG_ILED_FINE 0x25
75#define ADPD188_REG_SLOTA_LED_PULSE 0x30
76#define ADPD188_REG_SLOTA_NUMPULSES 0x31
77#define ADPD188_REG_LED_DISABLE 0x34
78#define ADPD188_REG_SLOTB_LED_PULSE 0x35
79#define ADPD188_REG_SLOTB_NUMPULSES 0x36
80#define ADPD188_REG_ALT_PWR_DN 0x37
81#define ADPD188_REG_EXT_SYNC_STARTUP 0x38
82#define ADPD188_REG_SLOTA_AFE_WINDOW 0x39
83#define ADPD188_REG_SLOTB_AFE_WINDOW 0x3B
84#define ADPD188_REG_AFE_PWR_CFG1 0x3C
85#define ADPD188_REG_SLOTA_FLOAT_LED 0x3E
86#define ADPD188_REG_SLOTB_FLOAT_LED 0x3F
87#define ADPD188_REG_SLOTA_TIA_CFG 0x42
88#define ADPD188_REG_SLOTA_AFE_CFG 0x43
89#define ADPD188_REG_SLOTB_TIA_CFG 0x44
90#define ADPD188_REG_SLOTB_AFE_CFG 0x45
91#define ADPD188_REG_SAMPLE_CLK 0x4B
92#define ADPD188_REG_CLK32M_ADJUST 0x4D
93#define ADPD188_REG_EXT_SYNC_SEL 0x4F
94#define ADPD188_REG_CLK32M_CAL_EN 0x50
95#define ADPD188_REG_AFE_PWR_CFG2 0x54
96#define ADPD188_REG_TIA_INDEP_GAIN 0x55
97#define ADPD188_REG_MATH 0x58
98#define ADPD188_REG_FLT_CONFIG_B 0x59
99#define ADPD188_REG_FLT_LED_FIRE 0x5A
100#define ADPD188_REG_FLT_CONFIG_A 0x5E
101#define ADPD188_REG_DATA_ACCESS_CTL 0x5F
102#define ADPD188_REG_FIFO_ACCESS 0x60
103#define ADPD188_REG_SLOTA_PD1_16BIT 0x64
104#define ADPD188_REG_SLOTA_PD2_16BIT 0x65
105#define ADPD188_REG_SLOTA_PD3_16BIT 0x66
106#define ADPD188_REG_SLOTA_PD4_16BIT 0x67
107#define ADPD188_REG_SLOTB_PD1_16BIT 0x68
108#define ADPD188_REG_SLOTB_PD2_16BIT 0x69
109#define ADPD188_REG_SLOTB_PD3_16BIT 0x6A
110#define ADPD188_REG_SLOTB_PD4_16BIT 0x6B
111#define ADPD188_REG_A_PD1_LOW 0x70
112#define ADPD188_REG_A_PD2_LOW 0x71
113#define ADPD188_REG_A_PD3_LOW 0x72
114#define ADPD188_REG_A_PD4_LOW 0x73
115#define ADPD188_REG_A_PD1_HIGH 0x74
116#define ADPD188_REG_A_PD2_HIGH 0x75
117#define ADPD188_REG_A_PD3_HIGH 0x76
118#define ADPD188_REG_A_PD4_HIGH 0x77
119#define ADPD188_REG_B_PD1_LOW 0x78
120#define ADPD188_REG_B_PD2_LOW 0x79
121#define ADPD188_REG_B_PD3_LOW 0x7A
122#define ADPD188_REG_B_PD4_LOW 0x7B
123#define ADPD188_REG_B_PD1_HIGH 0x7C
124#define ADPD188_REG_B_PD2_HIGH 0x7D
125#define ADPD188_REG_B_PD3_HIGH 0x7E
126#define ADPD188_REG_B_PD4_HIGH 0x7F
129#define ADPD188_STATUS_FIFO_SAMPLES_MASK 0xFF00
130#define ADPD188_STATUS_SLOTB_INT_MASK 0x0040
131#define ADPD188_STATUS_SLOTA_INT_MASK 0x0020
132#define ADPD188_STATUS_FIFO_SAMPLES_POS 8
133#define ADPD188_STATUS_SLOTB_INT_POS 6
134#define ADPD188_STATUS_SLOTA_INT_POS 5
137#define ADPD188_INT_MASK_FIFO_INT_MASK_MASK 0x0100
138#define ADPD188_INT_MASK_SLOTB_INT_MASK_MASK 0x0040
139#define ADPD188_INT_MASK_SLOTA_INT_MASK_MASK 0x0020
140#define ADPD188_INT_MASK_FIFO_INT_MASK_POS 8
141#define ADPD188_INT_MASK_SLOTB_INT_MASK_POS 6
142#define ADPD188_INT_MASK_SLOTA_INT_MASK_POS 5
145#define ADPD188_GPIO_DRV_GPIO1_DRV_MASK 0x0200
146#define ADPD188_GPIO_DRV_GPIO1_POL_MASK 0x0100
147#define ADPD188_GPIO_DRV_GPIO0_ENA_MASK 0x0004
148#define ADPD188_GPIO_DRV_GPIO0_DRV_MASK 0x0002
149#define ADPD188_GPIO_DRV_GPIO0_POL_MASK 0x0001
150#define ADPD188_GPIO_DRV_GPIO1_DRV_POS 9
151#define ADPD188_GPIO_DRV_GPIO1_POL_POS 8
152#define ADPD188_GPIO_DRV_GPIO0_ENA_POS 2
153#define ADPD188_GPIO_DRV_GPIO0_DRV_POS 1
154#define ADPD188_GPIO_DRV_GPIO0_POL_POS 0
157#define ADPD188_BG_STATUS_BG_STATUS_B_MASK 0x00F0
158#define ADPD188_BG_STATUS_BG_STATUS_A_MASK 0x000F
159#define ADPD188_BG_STATUS_BG_STATUS_B_POS 4
160#define ADPD188_BG_STATUS_BG_STATUS_A_POS 0
163#define ADPD188_FIFO_THRESH_FIFO_THRESH_MASK 0x3F00
164#define ADPD188_FIFO_THRESH_FIFO_THRESH_POS 8
165#define ADPD188_FIFO_THRESH_MAX_THRESHOLD 63
168#define ADPD188_DEVID_REV_NUM_MASK 0xFF00
169#define ADPD188_DEVID_DEV_ID_MASK 0x00FF
170#define ADPD188_DEVID_REV_NUM_POS 8
171#define ADPD188_DEVID_DEV_ID_POS 0
173#define ADPD188_DEVICE_ID 0x0916
175#define ADPD108X_DEVICE_ID 0x0A16
178#define ADPD188_I2CS_ID_ADDRESS_WRITE_KEY_MASK 0xFF00
179#define ADPD188_I2CS_ID_SLAVE_ADDRESS_MASK 0x00FE
180#define ADPD188_I2CS_ID_ADDRESS_WRITE_KEY_POS 8
181#define ADPD188_I2CS_ID_SLAVE_ADDRESS_POS 1
184#define ADPD188_CLK_RATIO_CLK_RATIO_MASK 0x0FFF
185#define ADPD188_CLK_RATIO_CLK_RATIO_POS 0
188#define ADPD188_GPIO_CTRL_GPIO1_ALT_CFG_MASK 0x1F00
189#define ADPD188_GPIO_CTRL_GPIO0_ALT_CFG_MASK 0x001F
190#define ADPD188_GPIO_CTRL_GPIO1_ALT_CFG_POS 8
191#define ADPD188_GPIO_CTRL_GPIO0_ALT_CFG_POS 0
194#define ADPD188_SW_RESET_SW_RESET_MASK 0x0001
195#define ADPD188_SW_RESET_SW_RESET_POS 0
198#define ADPD188_MODE_MODE_MASK 0x0003
199#define ADPD188_MODE_MODE_POS 0
202#define ADPD188_SLOT_EN_RDOUT_MODE_MASK 0x2000
203#define ADPD188_SLOT_EN_FIFO_OVRN_PREVENT_MASK 0x1000
204#define ADPD188_SLOT_EN_SLOTB_FIFO_MODE_MASK 0x01C0
205#define ADPD188_SLOT_EN_SLOTB_EN_MASK 0x0020
206#define ADPD188_SLOT_EN_SLOTA_FIFO_MODE_MASK 0x001C
207#define ADPD188_SLOT_EN_SLOTA_EN_MASK 0x0001
208#define ADPD188_SLOT_EN_RDOUT_MODE_POS 13
209#define ADPD188_SLOT_EN_FIFO_OVRN_PREVENT_POS 12
210#define ADPD188_SLOT_EN_SLOTB_FIFO_MODE_POS 6
211#define ADPD188_SLOT_EN_SLOTB_EN_POS 5
212#define ADPD188_SLOT_EN_SLOTA_FIFO_MODE_POS 2
213#define ADPD188_SLOT_EN_SLOTA_EN_POS 0
216#define ADPD188_PD_LED_SELECT_SLOTB_PD_SEL_MASK 0x0F00
217#define ADPD188_PD_LED_SELECT_SLOTA_PD_SEL_MASK 0x00F0
218#define ADPD188_PD_LED_SELECT_SLOTB_LED_SEL_MASK 0x000C
219#define ADPD188_PD_LED_SELECT_SLOTA_LED_SEL_MASK 0x0003
220#define ADPD188_PD_LED_SELECT_SLOTB_PD_SEL_POS 8
221#define ADPD188_PD_LED_SELECT_SLOTA_PD_SEL_POS 4
222#define ADPD188_PD_LED_SELECT_SLOTB_LED_SEL_POS 2
223#define ADPD188_PD_LED_SELECT_SLOTA_LED_SEL_POS 0
226#define ADPD188_NUM_AVG_SLOTB_NUM_AVG_MASK 0x0700
227#define ADPD188_NUM_AVG_SLOTA_NUM_AVG_MASK 0x0070
228#define ADPD188_NUM_AVG_SLOTB_NUM_AVG_POS 8
229#define ADPD188_NUM_AVG_SLOTA_NUM_AVG_POS 4
232#define ADPD188_BG_MEAS_A_BG_COUNT_A_MASK 0xC000
233#define ADPD188_BG_MEAS_A_BG_THRESH_A_MASK 0x3FFF
234#define ADPD188_BG_MEAS_A_BG_COUNT_A_POS 14
235#define ADPD188_BG_MEAS_A_BG_THRESH_A_POS 0
238#define ADPD188_INT_SEQ_A_INTEG_ORDER_A_MASK 0x000F
239#define ADPD188_INT_SEQ_A_INTEG_ORDER_A_POS 0
242#define ADPD188_BG_MEAS_B_BG_COUNT_B_MASK 0xC000
243#define ADPD188_BG_MEAS_B_BG_THRESH_B_MASK 0x3FFF
244#define ADPD188_BG_MEAS_B_BG_COUNT_B_POS 14
245#define ADPD188_BG_MEAS_B_BG_THRESH_B_POS 0
248#define ADPD188_INT_SEQ_B_INTEG_ORDER_B_MASK 0x000F
249#define ADPD188_INT_SEQ_B_INTEG_ORDER_B_POS 0
252#define ADPD188_ILED3_COARSE_ILED3_SCALE_MASK 0x2000
253#define ADPD188_ILED3_COARSE_ILED3_SLEW_MASK 0x0070
254#define ADPD188_ILED3_COARSE_ILED3_COARSE_MASK 0x000F
255#define ADPD188_ILED3_COARSE_ILED3_SCALE_POS 13
256#define ADPD188_ILED3_COARSE_ILED3_SLEW_POS 4
257#define ADPD188_ILED3_COARSE_ILED3_COARSE_POS 0
260#define ADPD188_ILED1_COARSE_ILED1_SCALE_MASK 0x2000
261#define ADPD188_ILED1_COARSE_ILED1_SLEW_MASK 0x0070
262#define ADPD188_ILED1_COARSE_ILED1_COARSE_MASK 0x000F
263#define ADPD188_ILED1_COARSE_ILED1_SCALE_POS 13
264#define ADPD188_ILED1_COARSE_ILED1_SLEW_POS 4
265#define ADPD188_ILED1_COARSE_ILED1_COARSE_POS 0
268#define ADPD188_ILED2_COARSE_ILED2_SCALE_MASK 0x2000
269#define ADPD188_ILED2_COARSE_ILED2_SLEW_MASK 0x0070
270#define ADPD188_ILED2_COARSE_ILED2_COARSE_MASK 0x000F
271#define ADPD188_ILED2_COARSE_ILED2_SCALE_POS 13
272#define ADPD188_ILED2_COARSE_ILED2_SLEW_POS 4
273#define ADPD188_ILED2_COARSE_ILED2_COARSE_POS 0
276#define ADPD188_ILED_FINE_ILED3_FINE_MASK 0xF800
277#define ADPD188_ILED_FINE_ILED2_FINE_MASK 0x07C0
278#define ADPD188_ILED_FINE_ILED1_FINE_MASK 0x001F
279#define ADPD188_ILED_FINE_ILED3_FINE_POS 11
280#define ADPD188_ILED_FINE_ILED2_FINE_POS 6
281#define ADPD188_ILED_FINE_ILED1_FINE_POS 0
284#define ADPD188_SLOTA_LED_PULSE_SLOTA_LED_WIDTH_MASK 0x1F00
285#define ADPD188_SLOTA_LED_PULSE_SLOTA_LED_OFFSET_MASK 0x00FF
286#define ADPD188_SLOTA_LED_PULSE_SLOTA_LED_WIDTH_POS 8
287#define ADPD188_SLOTA_LED_PULSE_SLOTA_LED_OFFSET_POS 0
290#define ADPD188_SLOTA_NUMPULSES_SLOTA_PULSES_MASK 0xFF00
291#define ADPD188_SLOTA_NUMPULSES_SLOTA_PERIOD_MASK 0x00FF
292#define ADPD188_SLOTA_NUMPULSES_SLOTA_PULSES_POS 8
293#define ADPD188_SLOTA_NUMPULSES_SLOTA_PERIOD_POS 0
296#define ADPD188_LED_DISABLE_SLOTB_LED_DIS_MASK 0x0200
297#define ADPD188_LED_DISABLE_SLOTA_LED_DIS_MASK 0x0100
298#define ADPD188_LED_DISABLE_SLOTB_LED_DIS_POS 9
299#define ADPD188_LED_DISABLE_SLOTA_LED_DIS_POS 8
302#define ADPD188_SLOTB_LED_PULSE_SLOTB_LED_WIDTH_MASK 0x1F00
303#define ADPD188_SLOTB_LED_PULSE_SLOTB_LED_OFFSET_MASK 0x00FF
304#define ADPD188_SLOTB_LED_PULSE_SLOTB_LED_WIDTH_POS 8
305#define ADPD188_SLOTB_LED_PULSE_SLOTB_LED_OFFSET_POS 0
308#define ADPD188_SLOTB_NUMPULSES_SLOTB_PULSES_MASK 0xFF00
309#define ADPD188_SLOTB_NUMPULSES_SLOTB_PERIOD_MASK 0x00FF
310#define ADPD188_SLOTB_NUMPULSES_SLOTB_PULSES_POS 8
311#define ADPD188_SLOTB_NUMPULSES_SLOTB_PERIOD_POS 0
314#define ADPD188_ALT_PWR_DN_CH34_DISABLE_MASK 0xE000
315#define ADPD188_ALT_PWR_DN_CH2_DISABLE_MASK 0x1C00
316#define ADPD188_ALT_PWR_DN_SLOTB_PERIOD_MASK 0x0300
317#define ADPD188_ALT_PWR_DN_SLOTA_PERIOD_MASK 0x0003
318#define ADPD188_ALT_PWR_DN_CH34_DISABLE_POS 13
319#define ADPD188_ALT_PWR_DN_CH2_DISABLE_POS 10
320#define ADPD188_ALT_PWR_DN_SLOTB_PERIOD_POS 8
321#define ADPD188_ALT_PWR_DN_SLOTA_PERIOD_POS 0
324#define ADPD188_SLOTA_AFE_WINDOW_SLOTA_AFE_WIDTH_MASK 0xF800
325#define ADPD188_SLOTA_AFE_WINDOW_SLOTA_AFE_OFFSET_MASK 0x07FF
326#define ADPD188_SLOTA_AFE_WINDOW_SLOTA_AFE_WIDTH_POS 11
327#define ADPD188_SLOTA_AFE_WINDOW_SLOTA_AFE_OFFSET_POS 0
330#define ADPD188_SLOTB_AFE_WINDOW_SLOTB_AFE_WIDTH_MASK 0xF800
331#define ADPD188_SLOTB_AFE_WINDOW_SLOTB_AFE_OFFSET_MASK 0x07FF
332#define ADPD188_SLOTB_AFE_WINDOW_SLOTB_AFE_WIDTH_POS 11
333#define ADPD188_SLOTB_AFE_WINDOW_SLOTB_AFE_OFFSET_POS 0
336#define ADPD188_AFE_PWR_CFG1_V_CATHODE_MASK 0x0200
337#define ADPD188_AFE_PWR_CFG1_AFE_POWERDOWN_MASK 0x01F8
338#define ADPD188_AFE_PWR_CFG1_V_CATHODE_POS 9
339#define ADPD188_AFE_PWR_CFG1_AFE_POWERDOWN_POS 3
342#define ADPD188_SLOTA_FLOAT_LED_FLT_LED_SELECT_A_MASK 0xC000
343#define ADPD188_SLOTA_FLOAT_LED_FLT_LED_WIDTH_A_MASK 0x1F00
344#define ADPD188_SLOTA_FLOAT_LED_FLT_LED_OFFSET_A_MASK 0x00FF
345#define ADPD188_SLOTA_FLOAT_LED_FLT_LED_SELECT_A_POS 14
346#define ADPD188_SLOTA_FLOAT_LED_FLT_LED_WIDTH_A_POS 8
347#define ADPD188_SLOTA_FLOAT_LED_FLT_LED_OFFSET_A_POS 0
350#define ADPD188_SLOTB_FLOAT_LED_FLT_LED_SELECT_B_MASK 0xC000
351#define ADPD188_SLOTB_FLOAT_LED_FLT_LED_WIDTH_B_MASK 0x1F00
352#define ADPD188_SLOTB_FLOAT_LED_FLT_LED_OFFSET_B_MASK 0x00FF
353#define ADPD188_SLOTB_FLOAT_LED_FLT_LED_SELECT_B_POS 14
354#define ADPD188_SLOTB_FLOAT_LED_FLT_LED_WIDTH_B_POS 8
355#define ADPD188_SLOTB_FLOAT_LED_FLT_LED_OFFSET_B_POS 0
359#define ADPD188_SLOTA_TIA_CFG_SLOTA_BUF_GAIN_MASK 0x0200
360#define ADPD188_SLOTA_TIA_CFG_SLOTA_BUF_GAIN_POS 9
362#define ADPD108X_SLOTA_TIA_CFG_SLOTA_BUF_GAIN_MASK 0x0300
363#define ADPD108X_SLOTA_TIA_CFG_SLOTA_INT_GAIN_POS 8
365#define ADPD188_SLOTA_TIA_CFG_SLOTA_AFE_MODE_MASK 0xFC00
366#define ADPD188_SLOTA_TIA_CFG_SLOTA_INT_AS_BUF_MASK 0x0080
367#define ADPD188_SLOTA_TIA_CFG_SLOTA_TIA_IND_EN_MASK 0x0040
368#define ADPD188_SLOTA_TIA_CFG_SLOTA_TIA_VREF_MASK 0x0030
369#define ADPD188_SLOTA_TIA_CFG_SLOTA_TIA_GAIN_MASK 0x0003
370#define ADPD188_SLOTA_TIA_CFG_SLOTA_AFE_MODE_POS 10
371#define ADPD188_SLOTA_TIA_CFG_SLOTA_INT_AS_BUF_POS 7
372#define ADPD188_SLOTA_TIA_CFG_SLOTA_TIA_IND_EN_POS 6
373#define ADPD188_SLOTA_TIA_CFG_SLOTA_TIA_VREF_POS 4
374#define ADPD188_SLOTA_TIA_CFG_SLOTA_TIA_GAIN_POS 0
378#define ADPD188_SLOTB_TIA_CFG_SLOTA_BUF_GAIN_MASK 0x0200
379#define ADPD188_SLOTB_TIA_CFG_SLOTA_BUF_GAIN_POS 9
381#define ADPD108X_SLOTB_TIA_CFG_SLOTA_BUF_GAIN_MASK 0x0300
382#define ADPD108X_SLOTB_TIA_CFG_SLOTA_INT_GAIN_POS 8
384#define ADPD188_SLOTB_TIA_CFG_SLOTB_AFE_MODE_MASK 0xFC00
385#define ADPD188_SLOTB_TIA_CFG_SLOTB_INT_AS_BUF_MASK 0x0080
386#define ADPD188_SLOTB_TIA_CFG_SLOTB_TIA_IND_EN_MASK 0x0040
387#define ADPD188_SLOTB_TIA_CFG_SLOTB_TIA_VREF_MASK 0x0030
388#define ADPD188_SLOTB_TIA_CFG_SLOTB_TIA_GAIN_MASK 0x0003
389#define ADPD188_SLOTB_TIA_CFG_SLOTB_AFE_MODE_POS 10
390#define ADPD188_SLOTB_TIA_CFG_SLOTB_INT_AS_BUF_POS 7
391#define ADPD188_SLOTB_TIA_CFG_SLOTB_TIA_IND_EN_POS 6
392#define ADPD188_SLOTB_TIA_CFG_SLOTB_TIA_VREF_POS 4
393#define ADPD188_SLOTB_TIA_CFG_SLOTB_TIA_GAIN_POS 0
396#define ADPD188_SAMPLE_CLK_CLK32K_BYP_MASK 0x0100
397#define ADPD188_SAMPLE_CLK_CLK32K_EN_MASK 0x0080
398#define ADPD188_SAMPLE_CLK_CLK32K_ADJUST_MASK 0x003F
399#define ADPD188_SAMPLE_CLK_CLK32K_BYP_POS 8
400#define ADPD188_SAMPLE_CLK_CLK32K_EN_POS 7
401#define ADPD188_SAMPLE_CLK_CLK32K_ADJUST_POS 0
404#define ADPD188_CLK32M_ADJUST_CLK32M_ADJUST_MASK 0x00FF
405#define ADPD188_CLK32M_ADJUST_CLK32M_ADJUST_POS 0
408#define ADPD188_EXT_SYNC_SEL_GPIO1_OE_MASK 0x0040
409#define ADPD188_EXT_SYNC_SEL_GPIO1_IE_MASK 0x0020
410#define ADPD188_EXT_SYNC_SEL_EXT_SYNC_SEL_MASK 0x000C
411#define ADPD188_EXT_SYNC_SEL_GPIO0_IE_MASK 0x0002
412#define ADPD188_EXT_SYNC_SEL_GPIO1_OE_POS 6
413#define ADPD188_EXT_SYNC_SEL_GPIO1_IE_POS 5
414#define ADPD188_EXT_SYNC_SEL_EXT_SYNC_SEL_POS 2
415#define ADPD188_EXT_SYNC_SEL_GPIO0_IE_POS 1
418#define ADPD188_CLK32M_CAL_EN_GPIO1_CTRL_MASK 0x0040
419#define ADPD188_CLK32M_CAL_EN_CLK32M_CAL_EN_MASK 0x0020
420#define ADPD188_CLK32M_CAL_EN_GPIO1_CTRL_POS 6
421#define ADPD188_CLK32M_CAL_EN_CLK32M_CAL_EN_POS 5
424#define ADPD188_AFE_PWR_CFG2_SLEEP_V_CATHODE_MASK 0x3000
425#define ADPD188_AFE_PWR_CFG2_SLOTB_V_CATHODE_MASK 0x0C00
426#define ADPD188_AFE_PWR_CFG2_SLOTA_V_CATHODE_MASK 0x0300
427#define ADPD188_AFE_PWR_CFG2_REG54_VCAT_ENABLE_MASK 0x0080
428#define ADPD188_AFE_PWR_CFG2_SLEEP_V_CATHODE_POS 12
429#define ADPD188_AFE_PWR_CFG2_SLOTB_V_CATHODE_POS 10
430#define ADPD188_AFE_PWR_CFG2_SLOTA_V_CATHODE_POS 8
431#define ADPD188_AFE_PWR_CFG2_REG54_VCAT_ENABLE_POS 7
434#define ADPD188_TIA_INDEP_GAIN_SLOTB_TIA_GAIN_4_MASK 0x0C00
435#define ADPD188_TIA_INDEP_GAIN_SLOTB_TIA_GAIN_3_MASK 0x0300
436#define ADPD188_TIA_INDEP_GAIN_SLOTB_TIA_GAIN_2_MASK 0x00C0
437#define ADPD188_TIA_INDEP_GAIN_SLOTA_TIA_GAIN_4_MASK 0x0030
438#define ADPD188_TIA_INDEP_GAIN_SLOTA_TIA_GAIN_3_MASK 0x000C
439#define ADPD188_TIA_INDEP_GAIN_SLOTA_TIA_GAIN_2_MASK 0x0003
440#define ADPD188_TIA_INDEP_GAIN_SLOTB_TIA_GAIN_4_POS 10
441#define ADPD188_TIA_INDEP_GAIN_SLOTB_TIA_GAIN_3_POS 8
442#define ADPD188_TIA_INDEP_GAIN_SLOTB_TIA_GAIN_2_POS 6
443#define ADPD188_TIA_INDEP_GAIN_SLOTA_TIA_GAIN_4_POS 4
444#define ADPD188_TIA_INDEP_GAIN_SLOTA_TIA_GAIN_3_POS 2
445#define ADPD188_TIA_INDEP_GAIN_SLOTA_TIA_GAIN_2_POS 0
448#define ADPD188_MATH_FLT_MATH34_B_MASK 0x0C00
449#define ADPD188_MATH_FLT_MATH34_A_MASK 0x0300
450#define ADPD188_MATH_ENA_INT_AS_BUF_MASK 0x0080
451#define ADPD188_MATH_FLT_MATH12_B_MASK 0x0060
452#define ADPD188_MATH_FLT_MATH12_A_MASK 0x0006
453#define ADPD188_MATH_FLT_MATH34_B_POS 10
454#define ADPD188_MATH_FLT_MATH34_A_POS 8
455#define ADPD188_MATH_ENA_INT_AS_BUF_POS 7
456#define ADPD188_MATH_FLT_MATH12_B_POS 5
457#define ADPD188_MATH_FLT_MATH12_A_POS 1
460#define ADPD188_FLT_CONFIG_B_FLT_EN_B_MASK 0x6000
461#define ADPD188_FLT_CONFIG_B_FLT_PRECON_B_MASK 0x1F00
462#define ADPD188_FLT_CONFIG_B_FLT_EN_B_POS 13
463#define ADPD188_FLT_CONFIG_B_FLT_PRECON_B_POS 8
466#define ADPD188_FLT_LED_FIRE_FLT_LED_FIRE_B_MASK 0xF000
467#define ADPD188_FLT_LED_FIRE_FLT_LED_FIRE_A_MASK 0x0F00
468#define ADPD188_FLT_LED_FIRE_FLT_LED_FIRE_B_POS 12
469#define ADPD188_FLT_LED_FIRE_FLT_LED_FIRE_A_POS 8
472#define ADPD188_FLT_CONFIG_A_FLT_EN_A_MASK 0x6000
473#define ADPD188_FLT_CONFIG_A_FLT_PRECON_A_MASK 0x1F00
474#define ADPD188_FLT_CONFIG_A_FLT_EN_A_POS 13
475#define ADPD188_FLT_CONFIG_A_FLT_PRECON_A_POS 8
478#define ADPD188_DATA_ACCESS_CTL_SLOTB_DATA_HOLD_MASK 0x0004
479#define ADPD188_DATA_ACCESS_CTL_SLOTA_DATA_HOLD_MASK 0x0002
480#define ADPD188_DATA_ACCESS_CTL_DIGITAL_CLOCK_ENA_MASK 0x0001
481#define ADPD188_DATA_ACCESS_CTL_SLOTB_DATA_HOLD_POS 2
482#define ADPD188_DATA_ACCESS_CTL_SLOTA_DATA_HOLD_POS 1
483#define ADPD188_DATA_ACCESS_CTL_DIGITAL_CLOCK_ENA_POS 0
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
adpd188_slot_fifo_mode
The way a time slot stores data in the FIFO.
Definition adpd188.h:613
@ ADPD188_32BIT_4CHAN
Definition adpd188.h:623
@ ADPD188_16BIT_4CHAN
Definition adpd188.h:621
@ ADPD188_16BIT_SUM
Definition adpd188.h:617
@ ADPD188_NO_FIFO
Definition adpd188.h:615
@ ADPD188_32BIT_SUM
Definition adpd188.h:619
int32_t adpd188_mode_set(struct adpd188_dev *dev, enum adpd188_mode new_mode)
Set the mode of operation of the ADPD188.
Definition adpd188.c:253
adpd188_phy_opt
Types of physical communication protocol.
Definition adpd188.h:511
@ ADPD188_SPI
Definition adpd188.h:513
@ ADPD188_I2C
Definition adpd188.h:515
int32_t adpd188_reg_write(struct adpd188_dev *dev, uint8_t reg_addr, uint16_t reg_val)
Write one 16 bit register of the ADPD188.
Definition adpd188.c:197
int32_t adpd188_reg_read(struct adpd188_dev *dev, uint8_t reg_addr, uint16_t *reg_val)
Read one 16 bit register of the ADPD188.
Definition adpd188.c:159
int32_t adpd188_fifo_thresh_set(struct adpd188_dev *dev, uint8_t word_no)
Set the number of 16 bit words that need to be in the FIFO to trigger an interrupt.
Definition adpd188.c:311
int32_t adpd188_remove(struct adpd188_dev *dev)
Free resources allocated by adpd188_init().
Definition adpd188.c:127
int32_t adpd188_clk32mhz_cal(struct adpd188_dev *dev)
Do internal 32MHz clock calibration. This calibration requires the 32kHz clock to be calibrated first...
Definition adpd188.c:519
adpd188_mode
ADPD188 operation modes.
Definition adpd188.h:522
@ ADPD188_NORMAL
Definition adpd188.h:528
@ ADPD188_PROGRAM
Definition adpd188.h:526
@ ADPD188_STANDBY
Definition adpd188.h:524
adpd188_gpio_alt_config
GPIO source configuration.
Definition adpd188.h:563
@ ADPD188_32KHZ_OSC
Definition adpd188.h:595
@ ADPD188_ANYSLOT_PULSE
Definition adpd188.h:578
@ ADPD188_ADPD103
Definition adpd188.h:565
@ ADPD188_OUT_HIGH
Definition adpd188.h:593
@ ADPD188_INT_FUNC
Definition adpd188.h:567
@ ADPD188_SLOTA_PULSE
Definition adpd188.h:574
@ ADPD188_ANYSLOT_OUT
Definition adpd188.h:584
@ ADPD188_SLOTA_OUT
Definition adpd188.h:580
@ ADPD188_SLOTB_PULSE
Definition adpd188.h:576
@ ADPD188_ACTIVE_PULSE
Definition adpd188.h:572
@ ADPD188_HALF_SAMPLING
Definition adpd188.h:589
@ ADPD188_SLOTB_OUT
Definition adpd188.h:582
@ ADPD188_OUT_LOW
Definition adpd188.h:591
int32_t adpd188_adc_fsample_get(struct adpd188_dev *dev, uint16_t *freq_hz)
Get sample frequency of the ADC.
Definition adpd188.c:635
int32_t adpd188_mode_get(struct adpd188_dev *dev, enum adpd188_mode *mode)
Get the mode of operation of the ADPD188.
Definition adpd188.c:230
int32_t adpd188_gpio_alt_setup(struct adpd188_dev *dev, uint8_t gpio_id, enum adpd188_gpio_alt_config config)
Setup the GPIO source.
Definition adpd188.c:477
int32_t adpd188_smoke_detect_setup(struct adpd188_dev *dev)
Do initial configuration of the device to use as a smoke detector. The configuration is described in ...
Definition adpd188.c:654
int32_t adpd188_gpio_setup(struct adpd188_dev *dev, struct adpd188_gpio_config config)
Setup drive and polarity of the GPIOs. Also enable GPIO if necessary.
Definition adpd188.c:434
int32_t adpd188_interrupt_en(struct adpd188_dev *dev, uint8_t flags)
Enable the slot and FIFO interrupt flags.
Definition adpd188.c:410
adpd_supported_devices
Devices supported by the driver.
Definition adpd188.h:489
@ ADPD1080
Definition adpd188.h:491
@ ADPD1081
Definition adpd188.h:492
@ ADPD188BI
Definition adpd188.h:490
int32_t adpd188_sw_reset(struct adpd188_dev *dev)
Do software reset of the device.
Definition adpd188.c:507
int32_t adpd188_fifo_clear(struct adpd188_dev *dev)
Empty the FIFO.
Definition adpd188.c:288
int32_t adpd188_interrupt_clear(struct adpd188_dev *dev, uint8_t flags)
Clear the slot and FIFO interrupt flags.
Definition adpd188.c:370
int32_t adpd188_init(struct adpd188_dev **device, struct adpd188_init_param *init_param)
Initialize the ADPD188 driver.
Definition adpd188.c:47
int32_t adpd188_slot_setup(struct adpd188_dev *dev, struct adpd188_slot_config config)
Enable slot and setup its FIFO interaction.
Definition adpd188.c:580
int32_t adpd188_interrupt_get(struct adpd188_dev *dev, uint8_t *flags)
Get the slot and FIFO interrupt flags.
Definition adpd188.c:340
adpd188_slots
ADPD188 time slots.
Definition adpd188.h:602
@ ADPD188_SLOTB
Definition adpd188.h:606
@ ADPD188_SLOTA
Definition adpd188.h:604
adpd188_interrupt
Interrupt flags of the ADPD188.
Definition adpd188.h:535
@ ADPD188_SLOTB_INT
Definition adpd188.h:539
@ ADPD188_SLOTA_INT
Definition adpd188.h:537
@ ADPD188_FIFO_INT
Definition adpd188.h:541
int32_t adpd188_fifo_status_get(struct adpd188_dev *dev, uint8_t *bytes_no)
Get the number of bytes currently present in FIFO.
Definition adpd188.c:268
int32_t adpd188_adc_fsample_set(struct adpd188_dev *dev, uint16_t freq_hz)
Set sample frequency of the ADC.
Definition adpd188.c:617
Header file of GPIO Interface.
Header file of I2C Interface.
Header file of SPI Interface.
Driver descriptor structure.
Definition adpd188.h:643
void * phy_desc
Definition adpd188.h:649
enum adpd188_phy_opt phy_opt
Definition adpd188.h:647
enum adpd_supported_devices device
Definition adpd188.h:645
struct no_os_gpio_desc * gpio1
Definition adpd188.h:653
struct no_os_gpio_desc * gpio0
Definition adpd188.h:651
GPIO level configuration.
Definition adpd188.h:548
uint8_t gpio_pol
Definition adpd188.h:552
uint8_t gpio_drv
Definition adpd188.h:554
uint8_t gpio_id
Definition adpd188.h:550
uint8_t gpio_en
Definition adpd188.h:556
Driver initialization structure.
Definition adpd188.h:660
union adpd188_phy_init phy_init
Definition adpd188.h:666
struct no_os_gpio_init_param gpio1_init
Definition adpd188.h:670
enum adpd188_phy_opt phy_opt
Definition adpd188.h:664
struct no_os_gpio_init_param gpio0_init
Definition adpd188.h:668
enum adpd_supported_devices device
Definition adpd188.h:662
Slot configuration initialization structure.
Definition adpd188.h:630
enum adpd188_slot_fifo_mode sot_fifo_mode
Definition adpd188.h:636
enum adpd188_slots slot_id
Definition adpd188.h:632
bool slot_en
Definition adpd188.h:634
Definition ad9361_util.h:63
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Communication physical protocol initialization structure. Can be I2C or SPI.
Definition adpd188.h:500
struct no_os_i2c_init_param i2c_phy
Definition adpd188.h:502
struct no_os_spi_init_param spi_phy
Definition adpd188.h:504