41#define ADPD410X_REG_FIFO_STATUS 0x0000
42#define ADPD410X_REG_INT_STATUS_DATA 0x0001
43#define ADPD410X_REG_INT_STATUS_LEV0 0x0002
44#define ADPD410X_REG_INT_STATUS_LEV1 0x0003
45#define ADPD410X_REG_FIFO_TH 0x0006
46#define ADPD410X_REG_INT_ACLEAR 0x0007
47#define ADPD410X_REG_CHIP_ID 0x0008
48#define ADPD410X_REG_OSC32M 0x0009
49#define ADPD410X_REG_OSC32M_CAL 0x000A
50#define ADPD410X_REG_OSC1M 0x000B
51#define ADPD410X_REG_OSC32K 0x000C
52#define ADPD410X_REG_TS_FREQ 0x000D
53#define ADPD410X_REG_TS_FREQH 0x000E
54#define ADPD410X_REG_SYS_CTL 0x000F
55#define ADPD410X_REG_OPMODE 0x0010
56#define ADPD410X_REG_STAMP_L 0x0011
57#define ADPD410X_REG_STAMP_H 0x0012
58#define ADPD410X_REG_STAMPDELTA 0x0013
59#define ADPD410X_REG_INT_ENABLE_XD 0x0014
60#define ADPD410X_REG_INT_ENABLE_YD 0x0015
61#define ADPD410X_REG_INT_ENABLE_XL0 0x0016
62#define ADPD410X_REG_INT_ENABLE_XL1 0x0017
63#define ADPD410X_REG_INT_ENABLE_YL0 0x001a
64#define ADPD410X_REG_INT_ENABLE_YL1 0x001b
65#define ADPD410X_REG_FIFO_STATUS_BYTES 0x001e
66#define ADPD410X_REG_INPUT_SLEEP 0x0020
67#define ADPD410X_REG_INPUT_CFG 0x0021
68#define ADPD410X_REG_GPIO_CFG 0x0022
69#define ADPD410X_REG_GPIO01 0x0023
70#define ADPD410X_REG_GPIO23 0x0024
71#define ADPD410X_REG_GPIO_IN 0x0025
72#define ADPD410X_REG_GPIO_EXT 0x0026
73#define ADPD410X_REG_DATA_HOLD_FLAG 0x002E
74#define ADPD410X_REG_FIFO_DATA 0x002F
75#define ADPD410X_REG_SIGNAL1_L(ts) (0x0030 + (ts) * 0x08)
76#define ADPD410X_REG_SIGNAL1_H(ts) (0x0031 + (ts) * 0x08)
77#define ADPD410X_REG_SIGNAL2_L(ts) (0x0032 + (ts) * 0x08)
78#define ADPD410X_REG_SIGNAL2_H(ts) (0x0033 + (ts) * 0x08)
79#define ADPD410X_REG_DARK1_L(ts) (0x0034 + (ts) * 0x08)
80#define ADPD410X_REG_DARK1_H(ts) (0x0035 + (ts) * 0x08)
81#define ADPD410X_REG_DARK2_L(ts) (0x0036 + (ts) * 0x08)
82#define ADPD410X_REG_DARK2_H(ts) (0x0037 + (ts) * 0x08)
83#define ADPD410X_REG_IO_ADJUST 0x00B4
84#define ADPD410X_REG_I2C_KEY 0x00B6
85#define ADPD410X_REG_I2C_ADDR 0x00B7
86#define ADPD410X_REG_TS_CTRL(ts) (0x0100 + (ts) * 0x20)
87#define ADPD410X_REG_TS_PATH(ts) (0x0101 + (ts) * 0x20)
88#define ADPD410X_REG_INPUTS(ts) (0x0102 + (ts) * 0x20)
89#define ADPD410X_REG_CATHODE(ts) (0x0103 + (ts) * 0x20)
90#define ADPD410X_REG_AFE_TRIM(ts) (0x0104 + (ts) * 0x20)
91#define ADPD410X_REG_LED_POW12(ts) (0x0105 + (ts) * 0x20)
92#define ADPD410X_REG_LED_POW34(ts) (0x0106 + (ts) * 0x20)
93#define ADPD410X_REG_COUNTS(ts) (0x0107 + (ts) * 0x20)
94#define ADPD410X_REG_PERIOD(ts) (0x0108 + (ts) * 0x20)
95#define ADPD410X_REG_LED_PULSE(ts) (0x0109 + (ts) * 0x20)
96#define ADPD410X_REG_INTEG_WIDTH(ts) (0x010A + (ts) * 0x20)
97#define ADPD410X_REG_INTEG_OFFSET(ts) (0x010B + (ts) * 0x20)
98#define ADPD410X_REG_MOD_PULSE(ts) (0x010C + (ts) * 0x20)
99#define ADPD410X_REG_PATTERN(ts) (0x010D + (ts) * 0x20)
100#define ADPD410X_REG_ADC_OFF1(ts) (0x010E + (ts) * 0x20)
101#define ADPD410X_REG_ADC_OFF2(ts) (0x010F + (ts) * 0x20)
102#define ADPD410X_REG_DATA1(ts) (0x0110 + (ts) * 0x20)
103#define ADPD410X_REG_DATA2(ts) (0x0111 + (ts) * 0x20)
104#define ADPD410X_REG_DECIMATE(ts) (0x0112 + (ts) * 0x20)
105#define ADPD410X_REG_DIGINT_LIT(ts) (0x0113 + (ts) * 0x20)
106#define ADPD410X_REG_DIGINT_DARK(ts) (0x0114 + (ts) * 0x20)
107#define ADPD410X_REG_THRESH_CFG(ts) (0x0115 + (ts) * 0x20)
108#define ADPD410X_REG_THRESH0(ts) (0x0116 + (ts) * 0x20)
109#define ADPD410X_REG_THRESH1(ts) (0x0117 + (ts) * 0x20)
113#define BITP_INT_STATUS_FIFO_FIFO_BYTE_COUNT 0
114#define BITP_INT_STATUS_FIFO_INT_FIFO_OFLOW 13
115#define BITP_INT_STATUS_FIFO_INT_FIFO_UFLOW 14
116#define BITP_INT_STATUS_FIFO_CLEAR_FIFO 15
117#define BITM_INT_STATUS_FIFO_FIFO_BYTE_COUNT 0x07ff
118#define BITM_INT_STATUS_FIFO_INT_FIFO_OFLOW 0x2000
119#define BITM_INT_STATUS_FIFO_INT_FIFO_UFLOW 0x4000
120#define BITM_INT_STATUS_FIFO_CLEAR_FIFO 0x8000
124#define BITP_INT_STATUS_DATA_INT_DATA_A 0
125#define BITP_INT_STATUS_DATA_INT_DATA_B 1
126#define BITP_INT_STATUS_DATA_INT_DATA_C 2
127#define BITP_INT_STATUS_DATA_INT_DATA_D 3
128#define BITP_INT_STATUS_DATA_INT_DATA_E 4
129#define BITP_INT_STATUS_DATA_INT_DATA_F 5
130#define BITP_INT_STATUS_DATA_INT_DATA_G 6
131#define BITP_INT_STATUS_DATA_INT_DATA_H 7
132#define BITP_INT_STATUS_DATA_INT_DATA_I 8
133#define BITP_INT_STATUS_DATA_INT_DATA_J 9
134#define BITP_INT_STATUS_DATA_INT_DATA_K 10
135#define BITP_INT_STATUS_DATA_INT_DATA_L 11
136#define BITP_INT_STATUS_DATA_INT_FIFO_TH 15
137#define BITM_INT_STATUS_DATA_INT_DATA_A 0x0001
138#define BITM_INT_STATUS_DATA_INT_DATA_B 0x0002
139#define BITM_INT_STATUS_DATA_INT_DATA_C 0x0004
140#define BITM_INT_STATUS_DATA_INT_DATA_D 0x0008
141#define BITM_INT_STATUS_DATA_INT_DATA_E 0x0010
142#define BITM_INT_STATUS_DATA_INT_DATA_F 0x0020
143#define BITM_INT_STATUS_DATA_INT_DATA_G 0x0040
144#define BITM_INT_STATUS_DATA_INT_DATA_H 0x0080
145#define BITM_INT_STATUS_DATA_INT_DATA_I 0x0100
146#define BITM_INT_STATUS_DATA_INT_DATA_J 0x0200
147#define BITM_INT_STATUS_DATA_INT_DATA_K 0x0400
148#define BITM_INT_STATUS_DATA_INT_DATA_L 0x0800
149#define BITM_INT_STATUS_DATA_INT_FIFO_TH 0x8000
152#define BITP_INT_STATUS_LEV0_INT_LEV0_A 0
153#define BITP_INT_STATUS_LEV0_INT_LEV0_B 1
154#define BITP_INT_STATUS_LEV0_INT_LEV0_C 2
155#define BITP_INT_STATUS_LEV0_INT_LEV0_D 3
156#define BITP_INT_STATUS_LEV0_INT_LEV0_E 4
157#define BITP_INT_STATUS_LEV0_INT_LEV0_F 5
158#define BITP_INT_STATUS_LEV0_INT_LEV0_G 6
159#define BITP_INT_STATUS_LEV0_INT_LEV0_H 7
160#define BITP_INT_STATUS_LEV0_INT_LEV0_I 8
161#define BITP_INT_STATUS_LEV0_INT_LEV0_J 9
162#define BITP_INT_STATUS_LEV0_INT_LEV0_K 10
163#define BITP_INT_STATUS_LEV0_INT_LEV0_L 11
164#define BITM_INT_STATUS_LEV0_INT_LEV0_A 0x0001
165#define BITM_INT_STATUS_LEV0_INT_LEV0_B 0x0002
166#define BITM_INT_STATUS_LEV0_INT_LEV0_C 0x0004
167#define BITM_INT_STATUS_LEV0_INT_LEV0_D 0x0008
168#define BITM_INT_STATUS_LEV0_INT_LEV0_E 0x0010
169#define BITM_INT_STATUS_LEV0_INT_LEV0_F 0x0020
170#define BITM_INT_STATUS_LEV0_INT_LEV0_G 0x0040
171#define BITM_INT_STATUS_LEV0_INT_LEV0_H 0x0080
172#define BITM_INT_STATUS_LEV0_INT_LEV0_I 0x0100
173#define BITM_INT_STATUS_LEV0_INT_LEV0_J 0x0200
174#define BITM_INT_STATUS_LEV0_INT_LEV0_K 0x0400
175#define BITM_INT_STATUS_LEV0_INT_LEV0_L 0x0800
178#define BITP_INT_STATUS_LEV1_INT_LEV1_A 0
179#define BITP_INT_STATUS_LEV1_INT_LEV1_B 1
180#define BITP_INT_STATUS_LEV1_INT_LEV1_C 2
181#define BITP_INT_STATUS_LEV1_INT_LEV1_D 3
182#define BITP_INT_STATUS_LEV1_INT_LEV1_E 4
183#define BITP_INT_STATUS_LEV1_INT_LEV1_F 5
184#define BITP_INT_STATUS_LEV1_INT_LEV1_G 6
185#define BITP_INT_STATUS_LEV1_INT_LEV1_H 7
186#define BITP_INT_STATUS_LEV1_INT_LEV1_I 8
187#define BITP_INT_STATUS_LEV1_INT_LEV1_J 9
188#define BITP_INT_STATUS_LEV1_INT_LEV1_K 10
189#define BITP_INT_STATUS_LEV1_INT_LEV1_L 11
190#define BITM_INT_STATUS_LEV1_INT_LEV1_A 0x0001
191#define BITM_INT_STATUS_LEV1_INT_LEV1_B 0x0002
192#define BITM_INT_STATUS_LEV1_INT_LEV1_C 0x0004
193#define BITM_INT_STATUS_LEV1_INT_LEV1_D 0x0008
194#define BITM_INT_STATUS_LEV1_INT_LEV1_E 0x0010
195#define BITM_INT_STATUS_LEV1_INT_LEV1_F 0x0020
196#define BITM_INT_STATUS_LEV1_INT_LEV1_G 0x0040
197#define BITM_INT_STATUS_LEV1_INT_LEV1_H 0x0080
198#define BITM_INT_STATUS_LEV1_INT_LEV1_I 0x0100
199#define BITM_INT_STATUS_LEV1_INT_LEV1_J 0x0200
200#define BITM_INT_STATUS_LEV1_INT_LEV1_K 0x0400
201#define BITM_INT_STATUS_LEV1_INT_LEV1_L 0x0800
205#define BITP_FIFO_CTL_FIFO_TH 0
206#define BITM_FIFO_CTL_FIFO_TH 0x03ff
209#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_A 0
210#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_B 1
211#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_C 2
212#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_D 3
213#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_E 4
214#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_F 5
215#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_G 6
216#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_H 7
217#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_I 8
218#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_J 9
219#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_K 10
220#define BITP_INT_ACLEAR_INT_ACLEAR_DATA_L 11
221#define BITP_INT_ACLEAR_INT_ACLEAR_FIFO 15
222#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_A 0x0001
223#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_B 0x0002
224#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_C 0x0004
225#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_D 0x0008
226#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_E 0x0010
227#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_F 0x0020
228#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_G 0x0040
229#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_H 0x0080
230#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_I 0x0100
231#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_J 0x0200
232#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_K 0x0400
233#define BITM_INT_ACLEAR_INT_ACLEAR_DATA_L 0x0800
234#define BITM_INT_ACLEAR_INT_ACLEAR_FIFO 0x8000
237#define BITP_CHIP_ID 0
238#define BITP_CHIP_VERSION 8
239#define BITM_CHIP_ID 0x00ff
240#define BITM_CHIP_VERSION 0xff00
241#define ADPD410X_CHIP_ID 0xC2
244#define BITP_OSC32M_OSC_32M_FREQ_ADJ 0
245#define BITM_OSC32M_OSC_32M_FREQ_ADJ 0x00ff
248#define BITP_OSC32M_CAL_OSC_32M_CAL_COUNT 0
249#define BITP_OSC32M_CAL_OSC_32M_CAL_START 15
250#define BITM_OSC32M_CAL_OSC_32M_CAL_COUNT 0x7fff
251#define BITM_OSC32M_CAL_OSC_32M_CAL_START 0x8000
254#define BITP_OSC1M_OSC_1M_FREQ_ADJ 0
255#define BITP_OSC1M_OSC_CLK_CAL_ENA 10
256#define BITM_OSC1M_OSC_1M_FREQ_ADJ 0x03ff
257#define BITM_OSC1M_OSC_CLK_CAL_ENA 0x0400
260#define BITP_OSC32K_OSC_32K_ADJUST 0
261#define BITP_OSC32K_CAPTURE_TIMESTAMP 15
262#define BITM_OSC32K_OSC_32K_ADJUST 0x003f
263#define BITM_OSC32K_CAPTURE_TIMESTAMP 0x8000
266#define BITP_TS_FREQ_TIMESLOT_PERIOD_L 0
267#define BITM_TS_FREQ_TIMESLOT_PERIOD_L 0xffff
270#define BITP_TS_FREQH_TIMESLOT_PERIOD_H 0
271#define BITM_TS_FREQH_TIMESLOT_PERIOD_H 0x007f
274#define BITP_SYS_CTL_OSC_32K_EN 0
275#define BITP_SYS_CTL_OSC_1M_EN 1
276#define BITP_SYS_CTL_LFOSC_SEL 2
277#define BITP_SYS_CTL_RANDOM_SLEEP 3
278#define BITP_SYS_CTL_GO_SLEEP 4
279#define BITP_SYS_CTL_ALT_CLK_GPIO 6
280#define BITP_SYS_CTL_ALT_CLOCKS 8
281#define BITP_SYS_CTL_SW_RESET 15
282#define BITM_SYS_CTL_OSC_32K_EN 0x0001
283#define BITM_SYS_CTL_OSC_1M_EN 0x0002
284#define BITM_SYS_CTL_LFOSC_SEL 0x0004
285#define BITM_SYS_CTL_RANDOM_SLEEP 0x0008
286#define BITM_SYS_CTL_GO_SLEEP 0x0010
287#define BITM_SYS_CTL_ALT_CLK_GPIO 0x00c0
288#define BITM_SYS_CTL_ALT_CLOCKS 0x0300
289#define BITM_SYS_CTL_SW_RESET 0x8000
292#define BITP_OPMODE_OP_MODE 0
293#define BITP_OPMODE_TIMESLOT_EN 8
294#define BITM_OPMODE_OP_MODE 0x0001
295#define BITM_OPMODE_TIMESLOT_EN 0x0f00
298#define BITP_STAMP_L_TIMESTAMP_COUNT_L 0
299#define BITM_STAMP_L_TIMESTAMP_COUNT_L 0xffff
302#define BITP_STAMP_H_TIMESTAMP_COUNT_H 0
303#define BITM_STAMP_H_TIMESTAMP_COUNT_H 0xffff
306#define BITP_STAMPDELTA_TIMESTAMP_SLOT_DELTA 0
307#define BITM_STAMPDELTA_TIMESTAMP_SLOT_DELTA 0xffff
310#define BITP_INT_ENABLE_XD_INTX_EN_DATA_A 0
311#define BITP_INT_ENABLE_XD_INTX_EN_DATA_B 1
312#define BITP_INT_ENABLE_XD_INTX_EN_DATA_C 2
313#define BITP_INT_ENABLE_XD_INTX_EN_DATA_D 3
314#define BITP_INT_ENABLE_XD_INTX_EN_DATA_E 4
315#define BITP_INT_ENABLE_XD_INTX_EN_DATA_F 5
316#define BITP_INT_ENABLE_XD_INTX_EN_DATA_G 6
317#define BITP_INT_ENABLE_XD_INTX_EN_DATA_H 7
318#define BITP_INT_ENABLE_XD_INTX_EN_DATA_I 8
319#define BITP_INT_ENABLE_XD_INTX_EN_DATA_J 9
320#define BITP_INT_ENABLE_XD_INTX_EN_DATA_K 10
321#define BITP_INT_ENABLE_XD_INTX_EN_DATA_L 11
322#define BITP_INT_ENABLE_XD_INTX_EN_FIFO_OFLOW 13
323#define BITP_INT_ENABLE_XD_INTX_EN_FIFO_UFLOW 14
324#define BITP_INT_ENABLE_XD_INTX_EN_FIFO_TH 15
325#define BITM_INT_ENABLE_XD_INTX_EN_DATA_A 0x0001
326#define BITM_INT_ENABLE_XD_INTX_EN_DATA_B 0x0002
327#define BITM_INT_ENABLE_XD_INTX_EN_DATA_C 0x0004
328#define BITM_INT_ENABLE_XD_INTX_EN_DATA_D 0x0008
329#define BITM_INT_ENABLE_XD_INTX_EN_DATA_E 0x0010
330#define BITM_INT_ENABLE_XD_INTX_EN_DATA_F 0x0020
331#define BITM_INT_ENABLE_XD_INTX_EN_DATA_G 0x0040
332#define BITM_INT_ENABLE_XD_INTX_EN_DATA_H 0x0080
333#define BITM_INT_ENABLE_XD_INTX_EN_DATA_I 0x0100
334#define BITM_INT_ENABLE_XD_INTX_EN_DATA_J 0x0200
335#define BITM_INT_ENABLE_XD_INTX_EN_DATA_K 0x0400
336#define BITM_INT_ENABLE_XD_INTX_EN_DATA_L 0x0800
337#define BITM_INT_ENABLE_XD_INTX_EN_FIFO_OFLOW 0x2000
338#define BITM_INT_ENABLE_XD_INTX_EN_FIFO_UFLOW 0x4000
339#define BITM_INT_ENABLE_XD_INTX_EN_FIFO_TH 0x8000
342#define BITP_INT_ENABLE_YD_INTY_EN_DATA_A 0
343#define BITP_INT_ENABLE_YD_INTY_EN_DATA_B 1
344#define BITP_INT_ENABLE_YD_INTY_EN_DATA_C 2
345#define BITP_INT_ENABLE_YD_INTY_EN_DATA_D 3
346#define BITP_INT_ENABLE_YD_INTY_EN_DATA_E 4
347#define BITP_INT_ENABLE_YD_INTY_EN_DATA_F 5
348#define BITP_INT_ENABLE_YD_INTY_EN_DATA_G 6
349#define BITP_INT_ENABLE_YD_INTY_EN_DATA_H 7
350#define BITP_INT_ENABLE_YD_INTY_EN_DATA_I 8
351#define BITP_INT_ENABLE_YD_INTY_EN_DATA_J 9
352#define BITP_INT_ENABLE_YD_INTY_EN_DATA_K 10
353#define BITP_INT_ENABLE_YD_INTY_EN_DATA_L 11
354#define BITP_INT_ENABLE_YD_INTY_EN_FIFO_OFLOW 13
355#define BITP_INT_ENABLE_YD_INTY_EN_FIFO_UFLOW 14
356#define BITP_INT_ENABLE_YD_INTY_EN_FIFO_TH 15
357#define BITM_INT_ENABLE_YD_INTY_EN_DATA_A 0x0001
358#define BITM_INT_ENABLE_YD_INTY_EN_DATA_B 0x0002
359#define BITM_INT_ENABLE_YD_INTY_EN_DATA_C 0x0004
360#define BITM_INT_ENABLE_YD_INTY_EN_DATA_D 0x0008
361#define BITM_INT_ENABLE_YD_INTY_EN_DATA_E 0x0010
362#define BITM_INT_ENABLE_YD_INTY_EN_DATA_F 0x0020
363#define BITM_INT_ENABLE_YD_INTY_EN_DATA_G 0x0040
364#define BITM_INT_ENABLE_YD_INTY_EN_DATA_H 0x0080
365#define BITM_INT_ENABLE_YD_INTY_EN_DATA_I 0x0100
366#define BITM_INT_ENABLE_YD_INTY_EN_DATA_J 0x0200
367#define BITM_INT_ENABLE_YD_INTY_EN_DATA_K 0x0400
368#define BITM_INT_ENABLE_YD_INTY_EN_DATA_L 0x0800
369#define BITM_INT_ENABLE_YD_INTY_EN_FIFO_OFLOW 0x2000
370#define BITM_INT_ENABLE_YD_INTY_EN_FIFO_UFLOW 0x4000
371#define BITM_INT_ENABLE_YD_INTY_EN_FIFO_TH 0x8000
374#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_A 0
375#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_B 1
376#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_C 2
377#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_D 3
378#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_E 4
379#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_F 5
380#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_G 6
381#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_H 7
382#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_I 8
383#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_J 9
384#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_K 10
385#define BITP_INT_ENABLE_XL0_INTX_EN_LEV0_L 11
386#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_A 0x0001
387#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_B 0x0002
388#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_C 0x0004
389#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_D 0x0008
390#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_E 0x0010
391#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_F 0x0020
392#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_G 0x0040
393#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_H 0x0080
394#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_I 0x0100
395#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_J 0x0200
396#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_K 0x0400
397#define BITM_INT_ENABLE_XL0_INTX_EN_LEV0_L 0x0800
400#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_A 0
401#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_B 1
402#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_C 2
403#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_D 3
404#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_E 4
405#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_F 5
406#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_G 6
407#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_H 7
408#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_I 8
409#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_J 9
410#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_K 10
411#define BITP_INT_ENABLE_XL1_INTX_EN_LEV1_L 11
412#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_A 0x0001
413#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_B 0x0002
414#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_C 0x0004
415#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_D 0x0008
416#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_E 0x0010
417#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_F 0x0020
418#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_G 0x0040
419#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_H 0x0080
420#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_I 0x0100
421#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_J 0x0200
422#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_K 0x0400
423#define BITM_INT_ENABLE_XL1_INTX_EN_LEV1_L 0x0800
426#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_A 0
427#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_B 1
428#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_C 2
429#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_D 3
430#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_E 4
431#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_F 5
432#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_G 6
433#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_H 7
434#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_I 8
435#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_J 9
436#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_K 10
437#define BITP_INT_ENABLE_YL0_INTY_EN_LEV0_L 11
438#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_A 0x0001
439#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_B 0x0002
440#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_C 0x0004
441#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_D 0x0008
442#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_E 0x0010
443#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_F 0x0020
444#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_G 0x0040
445#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_H 0x0080
446#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_I 0x0100
447#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_J 0x0200
448#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_K 0x0400
449#define BITM_INT_ENABLE_YL0_INTY_EN_LEV0_L 0x0800
452#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_A 0
453#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_B 1
454#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_C 2
455#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_D 3
456#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_E 4
457#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_F 5
458#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_G 6
459#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_H 7
460#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_I 8
461#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_J 9
462#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_K 10
463#define BITP_INT_ENABLE_YL1_INTY_EN_LEV1_L 11
464#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_A 0x0001
465#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_B 0x0002
466#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_C 0x0004
467#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_D 0x0008
468#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_E 0x0010
469#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_F 0x0020
470#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_G 0x0040
471#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_H 0x0080
472#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_I 0x0100
473#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_J 0x0200
474#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_K 0x0400
475#define BITM_INT_ENABLE_YL1_INTY_EN_LEV1_L 0x0800
478#define BITP_FIFO_STATUS_BYTES_ENA_STAT_SUM 0
479#define BITP_FIFO_STATUS_BYTES_ENA_STAT_D1 1
480#define BITP_FIFO_STATUS_BYTES_ENA_STAT_D2 2
481#define BITP_FIFO_STATUS_BYTES_ENA_STAT_L0 3
482#define BITP_FIFO_STATUS_BYTES_ENA_STAT_L1 4
483#define BITP_FIFO_STATUS_BYTES_ENA_STAT_LX 5
484#define BITP_FIFO_STATUS_BYTES_ENA_STAT_TS1 6
485#define BITP_FIFO_STATUS_BYTES_ENA_STAT_TS2 7
486#define BITP_FIFO_STATUS_BYTES_ENA_STAT_TSX 8
487#define BITM_FIFO_STATUS_BYTES_ENA_STAT_SUM 0x0001
488#define BITM_FIFO_STATUS_BYTES_ENA_STAT_D1 0x0002
489#define BITM_FIFO_STATUS_BYTES_ENA_STAT_D2 0x0004
490#define BITM_FIFO_STATUS_BYTES_ENA_STAT_L0 0x0008
491#define BITM_FIFO_STATUS_BYTES_ENA_STAT_L1 0x0010
492#define BITM_FIFO_STATUS_BYTES_ENA_STAT_LX 0x0020
493#define BITM_FIFO_STATUS_BYTES_ENA_STAT_TS1 0x0040
494#define BITM_FIFO_STATUS_BYTES_ENA_STAT_TS2 0x0080
495#define BITM_FIFO_STATUS_BYTES_ENA_STAT_TSX 0x0100
498#define BITP_INPUT_SLEEP_INP_SLEEP_12 0
499#define BITP_INPUT_SLEEP_INP_SLEEP_34 4
500#define BITP_INPUT_SLEEP_INP_SLEEP_56 8
501#define BITP_INPUT_SLEEP_INP_SLEEP_78 12
502#define BITM_INPUT_SLEEP_INP_SLEEP_12 0x000f
503#define BITM_INPUT_SLEEP_INP_SLEEP_34 0x00f0
504#define BITM_INPUT_SLEEP_INP_SLEEP_56 0x0f00
505#define BITM_INPUT_SLEEP_INP_SLEEP_78 0xf000
508#define BITP_INPUT_CFG_PAIR12 0
509#define BITP_INPUT_CFG_PAIR34 1
510#define BITP_INPUT_CFG_PAIR56 2
511#define BITP_INPUT_CFG_PAIR78 3
512#define BITP_INPUT_CFG_VC1_SLEEP 4
513#define BITP_INPUT_CFG_VC2_SLEEP 6
514#define BITM_INPUT_CFG_PAIR12 0
515#define BITM_INPUT_CFG_PAIR34 0x0002
516#define BITM_INPUT_CFG_PAIR56 0x0004
517#define BITM_INPUT_CFG_PAIR78 0x0008
518#define BITM_INPUT_CFG_VC1_SLEEP 0x0030
519#define BITM_INPUT_CFG_VC2_SLEEP 0x00c0
522#define BITP_GPIO_CFG_GPIO_PIN_CFG0 0
523#define BITP_GPIO_CFG_GPIO_PIN_CFG1 3
524#define BITP_GPIO_CFG_GPIO_PIN_CFG2 6
525#define BITP_GPIO_CFG_GPIO_PIN_CFG3 9
526#define BITP_GPIO_CFG_GPIO_DRV 12
527#define BITP_GPIO_CFG_GPIO_SLEW 14
528#define BITM_GPIO_CFG_GPIO_PIN_CFG0 0x0007
529#define BITM_GPIO_CFG_GPIO_PIN_CFG1 0x0038
530#define BITM_GPIO_CFG_GPIO_PIN_CFG2 0x01c0
531#define BITM_GPIO_CFG_GPIO_PIN_CFG3 0x0e00
532#define BITM_GPIO_CFG_GPIO_DRV 0x3000
533#define BITM_GPIO_CFG_GPIO_SLEW 0xc000
536#define BITP_GPIO01_GPIOOUT0 0
537#define BITP_GPIO01_GPIOOUT1 8
538#define BITP_GPIO01_TIMESTAMP_INV 14
539#define BITP_GPIO01_TIMESTAMP_ALWAYS_EN 15
540#define BITM_GPIO01_GPIOOUT0 0x001f
541#define BITM_GPIO01_GPIOOUT1 0x1f00
542#define BITM_GPIO01_TIMESTAMP_INV 0x4000
543#define BITM_GPIO01_TIMESTAMP_ALWAYS_EN 0x8000
546#define BITP_GPIO23_GPIOOUT2 0
547#define BITP_GPIO23_GPIOOUT3 8
548#define BITP_GPIO23_EXT_SYNC_EN 14
549#define BITM_GPIO23_GPIOOUT2 0x001f
550#define BITM_GPIO23_GPIOOUT3 0x1f00
551#define BITM_GPIO23_EXT_SYNC_EN 0x4000
554#define BITP_GPIO_IN_GPIO_INPUT 0
555#define BITM_GPIO_IN_GPIO_INPUT 0x000f
558#define BITP_GPIO_EXT_EXT_SYNC_GPIO 0
559#define BITP_GPIO_EXT_EXT_SYNC_EN 2
560#define BITP_GPIO_EXT_TIMESTAMP_GPIO 4
561#define BITP_GPIO_EXT_TIMESTAMP_ALWAYS_EN 6
562#define BITP_GPIO_EXT_TIMESTAMP_INV 7
563#define BITP_GPIO_EXT_TS_GPIO_SLEEP 8
564#define BITM_GPIO_EXT_EXT_SYNC_GPIO 0x0003
565#define BITM_GPIO_EXT_EXT_SYNC_EN 0x0004
566#define BITM_GPIO_EXT_TIMESTAMP_GPIO 0x0030
567#define BITM_GPIO_EXT_TIMESTAMP_ALWAYS_EN 0x0040
568#define BITM_GPIO_EXT_TIMESTAMP_INV 0x0080
569#define BITM_GPIO_EXT_TS_GPIO_SLEEP 0x0100
572#define BITP_DATA_HOLD_FLAG_HOLD_REGS_A 0
573#define BITP_DATA_HOLD_FLAG_HOLD_REGS_B 1
574#define BITP_DATA_HOLD_FLAG_HOLD_REGS_C 2
575#define BITP_DATA_HOLD_FLAG_HOLD_REGS_D 3
576#define BITP_DATA_HOLD_FLAG_HOLD_REGS_E 4
577#define BITP_DATA_HOLD_FLAG_HOLD_REGS_F 5
578#define BITP_DATA_HOLD_FLAG_HOLD_REGS_G 6
579#define BITP_DATA_HOLD_FLAG_HOLD_REGS_H 7
580#define BITP_DATA_HOLD_FLAG_HOLD_REGS_I 8
581#define BITP_DATA_HOLD_FLAG_HOLD_REGS_J 9
582#define BITP_DATA_HOLD_FLAG_HOLD_REGS_K 10
583#define BITP_DATA_HOLD_FLAG_HOLD_REGS_L 11
584#define BITM_DATA_HOLD_FLAG_HOLD_REGS_A 0x0001
585#define BITM_DATA_HOLD_FLAG_HOLD_REGS_B 0x0002
586#define BITM_DATA_HOLD_FLAG_HOLD_REGS_C 0x0004
587#define BITM_DATA_HOLD_FLAG_HOLD_REGS_D 0x0008
588#define BITM_DATA_HOLD_FLAG_HOLD_REGS_E 0x0010
589#define BITM_DATA_HOLD_FLAG_HOLD_REGS_F 0x0020
590#define BITM_DATA_HOLD_FLAG_HOLD_REGS_G 0x0040
591#define BITM_DATA_HOLD_FLAG_HOLD_REGS_H 0x0080
592#define BITM_DATA_HOLD_FLAG_HOLD_REGS_I 0x0100
593#define BITM_DATA_HOLD_FLAG_HOLD_REGS_J 0x0200
594#define BITM_DATA_HOLD_FLAG_HOLD_REGS_K 0x0400
595#define BITM_DATA_HOLD_FLAG_HOLD_REGS_L 0x0800
598#define BITP_FIFO_DATA_FIFO_DATA 0
599#define BITM_FIFO_DATA_FIFO_DATA 0xffff
602#define BITP_SIGNAL1_L_A_SIGNAL1_L 0
603#define BITM_SIGNAL1_L_A_SIGNAL1_L 0xffff
606#define BITP_SIGNAL1_H_A_SIGNAL1_H 0
607#define BITM_SIGNAL1_H_A_SIGNAL1_H 0xffff
610#define BITP_SIGNAL2_L_A_SIGNAL2_L 0
611#define BITM_SIGNAL2_L_A_SIGNAL2_L 0xffff
614#define BITP_SIGNAL2_H_A_SIGNAL2_H 0
615#define BITM_SIGNAL2_H_A_SIGNAL2_H 0xffff
618#define BITP_DARK1_L_A_DARK1_L 0
619#define BITM_DARK1_L_A_DARK1_L 0xffff
622#define BITP_DARK1_H_A_DARK1_H 0
623#define BITM_DARK1_H_A_DARK1_H 0xffff
626#define BITP_DARK2_L_A_DARK2_L 0
627#define BITM_DARK2_L_A_DARK2_L 0xffff
630#define BITP_DARK2_H_A_DARK2_H 0
631#define BITM_DARK2_H_A_DARK2_H 0xffff
634#define BITP_IO_ADJUST_SPI_DRV 0
635#define BITP_IO_ADJUST_SPI_SLEW 2
636#define BITM_IO_ADJUST_SPI_DRV 0x0003
637#define BITM_IO_ADJUST_SPI_SLEW 0x000c
640#define BITP_I2C_KEY_I2C_KEY 0
641#define BITP_I2C_KEY_I2C_KEY_MATCH 12
642#define BITM_I2C_KEY_I2C_KEY 0x0fff
643#define BITM_I2C_KEY_I2C_KEY_MATCH 0xf000
646#define BITP_I2C_ADDR_I2C_SLAVE_ADDR 1
647#define BITP_I2C_ADDR_I2C_SLAVE_KEY2 8
648#define BITM_I2C_ADDR_I2C_SLAVE_ADDR 0x00fe
649#define BITM_I2C_ADDR_I2C_SLAVE_KEY2 0xff00
652#define BITP_TS_CTRL_A_TIMESLOT_OFFSET 0
653#define BITP_TS_CTRL_A_INPUT_R_SELECT 10
654#define BITP_TS_CTRL_A_SAMPLE_TYPE 12
655#define BITP_TS_CTRL_A_CH2_EN 14
656#define BITP_TS_CTRL_A_SUBSAMPLE 15
657#define BITM_TS_CTRL_A_TIMESLOT_OFFSET 0x03ff
658#define BITM_TS_CTRL_A_INPUT_R_SELECT 0x0c00
659#define BITM_TS_CTRL_A_SAMPLE_TYPE 0x3000
660#define BITM_TS_CTRL_A_CH2_EN 0x4000
661#define BITM_TS_CTRL_A_SUBSAMPLE 0x8000
664#define BITP_TS_PATH_A_AFE_PATH_CFG 0
665#define BITP_TS_PATH_A_PRE_WIDTH 12
666#define BITM_TS_PATH_A_AFE_PATH_CFG 0x01ff
667#define BITM_TS_PATH_A_PRE_WIDTH 0xf000
670#define BITP_INPUTS_A_INP12 0
671#define BITP_INPUTS_A_INP34 4
672#define BITP_INPUTS_A_INP56 8
673#define BITP_INPUTS_A_INP78 12
674#define BITM_INPUTS_A_INP12 0x000f
675#define BITM_INPUTS_A_INP34 0x00f0
676#define BITM_INPUTS_A_INP56 0x0f00
677#define BITM_INPUTS_A_INP78 0xf000
680#define BITP_CATHODE_A_VC1_SEL 0
681#define BITP_CATHODE_A_VC1_ALT 2
682#define BITP_CATHODE_A_VC1_PULSE 4
683#define BITP_CATHODE_A_VC2_SEL 6
684#define BITP_CATHODE_A_VC2_ALT 8
685#define BITP_CATHODE_A_VC2_PULSE 10
686#define BITP_CATHODE_A_PRECON 12
687#define BITM_CATHODE_A_VC1_SEL 0x0003
688#define BITM_CATHODE_A_VC1_ALT 0x000c
689#define BITM_CATHODE_A_VC1_PULSE 0x0030
690#define BITM_CATHODE_A_VC2_SEL 0x00c0
691#define BITM_CATHODE_A_VC2_ALT 0x0300
692#define BITM_CATHODE_A_VC2_PULSE 0x0c00
693#define BITM_CATHODE_A_PRECON 0x7000
696#define BITP_AFE_TRIM_A_TIA_GAIN_CH1 0
697#define BITP_AFE_TRIM_A_TIA_GAIN_CH2 3
698#define BITP_AFE_TRIM_A_VREF_PULSE_VAL 6
699#define BITP_AFE_TRIM_A_AFE_TRIM_VREF 8
700#define BITP_AFE_TRIM_A_VREF_PULSE 10
701#define BITP_AFE_TRIM_A_CH1_TRIM_INT 11
702#define BITP_AFE_TRIM_A_CH2_TRIM_INT 13
703#define BITP_AFE_TRIM_A_TIA_CEIL_DETECT_EN 15
704#define BITM_AFE_TRIM_A_TIA_GAIN_CH1 0x0007
705#define BITM_AFE_TRIM_A_TIA_GAIN_CH2 0x0038
706#define BITM_AFE_TRIM_A_VREF_PULSE_VAL 0x00c0
707#define BITM_AFE_TRIM_A_AFE_TRIM_VREF 0x0300
708#define BITM_AFE_TRIM_A_VREF_PULSE 0x0400
709#define BITM_AFE_TRIM_A_CH1_TRIM_INT 0x1800
710#define BITM_AFE_TRIM_A_CH2_TRIM_INT 0x6000
711#define BITM_AFE_TRIM_A_TIA_CEIL_DETECT_EN 0x8000
714#define BITP_LED_POW12_A_LED_CURRENT1 0
715#define BITP_LED_POW12_A_LED_DRIVESIDE1 7
716#define BITP_LED_POW12_A_LED_CURRENT2 8
717#define BITP_LED_POW12_A_LED_DRIVESIDE2 15
718#define BITM_LED_POW12_A_LED_CURRENT1 0x007f
719#define BITM_LED_POW12_A_LED_DRIVESIDE1 0x0080
720#define BITM_LED_POW12_A_LED_CURRENT2 0x7f00
721#define BITM_LED_POW12_A_LED_DRIVESIDE2 0x8000
724#define BITP_LED_POW34_A_LED_CURRENT3 0
725#define BITP_LED_POW34_A_LED_DRIVESIDE3 7
726#define BITP_LED_POW34_A_LED_CURRENT4 8
727#define BITP_LED_POW34_A_LED_DRIVESIDE4 15
728#define BITM_LED_POW34_A_LED_CURRENT3 0x007f
729#define BITM_LED_POW34_A_LED_DRIVESIDE3 0x0080
730#define BITM_LED_POW34_A_LED_CURRENT4 0x7f00
731#define BITM_LED_POW34_A_LED_DRIVESIDE4 0x8000
734#define BITP_COUNTS_A_NUM_REPEAT 0
735#define BITP_COUNTS_A_NUM_INT 8
736#define BITM_COUNTS_A_NUM_REPEAT 0x00ff
737#define BITM_COUNTS_A_NUM_INT 0xff00
740#define BITP_PERIOD_A_MIN_PERIOD 0
741#define BITP_PERIOD_A_MOD_TYPE 12
742#define BITM_PERIOD_A_MIN_PERIOD 0x03ff
743#define BITM_PERIOD_A_MOD_TYPE 0x3000
746#define BITP_LED_PULSE_A_LED_OFFSET 0
747#define BITP_LED_PULSE_A_LED_WIDTH 8
748#define BITM_LED_PULSE_A_LED_OFFSET 0x00ff
749#define BITM_LED_PULSE_A_LED_WIDTH 0xff00
752#define BITP_INTEG_WIDTH_A_INTEG_WIDTH 0
753#define BITP_INTEG_WIDTH_A_ADC_COUNT 6
754#define BITP_INTEG_WIDTH_A_CH1_AMP_DISABLE 8
755#define BITP_INTEG_WIDTH_A_AFE_INT_C_BUF 11
756#define BITP_INTEG_WIDTH_A_CH2_AMP_DISABLE 12
757#define BITP_INTEG_WIDTH_A_SINGLE_INTEG 15
758#define BITM_INTEG_WIDTH_A_INTEG_WIDTH 0x001f
759#define BITM_INTEG_WIDTH_A_ADC_COUNT 0x00c0
760#define BITM_INTEG_WIDTH_A_CH1_AMP_DISABLE 0x0700
761#define BITM_INTEG_WIDTH_A_AFE_INT_C_BUF 0x0800
762#define BITM_INTEG_WIDTH_A_CH2_AMP_DISABLE 0x7000
763#define BITM_INTEG_WIDTH_A_SINGLE_INTEG 0x8000
766#define BITP_INTEG_OFFSET_A_INTEG_OFFSET 0
767#define BITM_INTEG_OFFSET_A_INTEG_OFFSET 0x1fff
768#define BITP_INTEG_OFFSET_A_INTEG_OFFSET_UPPER 5
769#define BITM_INTEG_OFFSET_A_INTEG_OFFSET_UPPER 0xff
772#define BITP_MOD_PULSE_A_MOD_OFFSET 0
773#define BITP_MOD_PULSE_A_MOD_WIDTH 8
774#define BITM_MOD_PULSE_A_MOD_OFFSET 0x00ff
775#define BITM_MOD_PULSE_A_MOD_WIDTH 0xff00
778#define BITP_PATTERN_A_REVERSE_INTEG 0
779#define BITP_PATTERN_A_SUBTRACT 4
780#define BITP_PATTERN_A_MOD_DISABLE 8
781#define BITP_PATTERN_A_LED_DISABLE 12
782#define BITM_PATTERN_A_REVERSE_INTEG 0x000f
783#define BITM_PATTERN_A_SUBTRACT 0x00f0
784#define BITM_PATTERN_A_MOD_DISABLE 0x0f00
785#define BITM_PATTERN_A_LED_DISABLE 0xf000
788#define BITP_ADC_OFF1_A_CH1_ADC_ADJUST 0
789#define BITM_ADC_OFF1_A_CH1_ADC_ADJUST 0x3fff
792#define BITP_ADC_OFF2_A_CH2_ADC_ADJUST 0
793#define BITP_ADC_OFF2_A_ZERO_ADJUST 15
794#define BITM_ADC_OFF2_A_CH2_ADC_ADJUST 0x3fff
795#define BITM_ADC_OFF2_A_ZERO_ADJUST 0x8000
798#define BITP_DATA1_A_SIGNAL_SIZE 0
799#define BITP_DATA1_A_SIGNAL_SHIFT 3
800#define BITP_DATA1_A_DARK_SIZE 8
801#define BITP_DATA1_A_DARK_SHIFT 11
802#define BITM_DATA1_A_SIGNAL_SIZE 0x0007
803#define BITM_DATA1_A_SIGNAL_SHIFT 0x00f8
804#define BITM_DATA1_A_DARK_SIZE 0x0700
805#define BITM_DATA1_A_DARK_SHIFT 0xf800
808#define BITP_DATA2_A_LIT_SIZE 0
809#define BITP_DATA2_A_LIT_SHIFT 3
810#define BITM_DATA2_A_LIT_SIZE 0x0007
811#define BITM_DATA2_A_LIT_SHIFT 0x00f8
814#define BITP_DECIMATE_A_DECIMATE_TYPE 0
815#define BITP_DECIMATE_A_DECIMATE_FACTOR 4
816#define BITM_DECIMATE_A_DECIMATE_TYPE 0x000f
817#define BITM_DECIMATE_A_DECIMATE_FACTOR 0x07f0
820#define BITP_DIGINT_LIT_A_LIT_OFFSET 0
821#define BITM_DIGINT_LIT_A_LIT_OFFSET 0x01ff
824#define BITP_DIGINT_DARK_A_DARK1_OFFSET 0
825#define BITP_DIGINT_DARK_A_DARK2_OFFSET 7
826#define BITM_DIGINT_DARK_A_DARK1_OFFSET 0x007f
827#define BITM_DIGINT_DARK_A_DARK2_OFFSET 0xff80
830#define BITP_THRESH_CFG_A_THRESH0_TYPE 0
831#define BITP_THRESH_CFG_A_THRESH0_DIR 2
832#define BITP_THRESH_CFG_A_THRESH0_CHAN 3
833#define BITP_THRESH_CFG_A_THRESH1_TYPE 4
834#define BITP_THRESH_CFG_A_THRESH1_DIR 6
835#define BITP_THRESH_CFG_A_THRESH1_CHAN 7
836#define BITM_THRESH_CFG_A_THRESH0_TYPE 0x0003
837#define BITM_THRESH_CFG_A_THRESH0_DIR 0x0004
838#define BITM_THRESH_CFG_A_THRESH0_CHAN 0x0008
839#define BITM_THRESH_CFG_A_THRESH1_TYPE 0x0030
840#define BITM_THRESH_CFG_A_THRESH1_DIR 0x0040
841#define BITM_THRESH_CFG_A_THRESH1_CHAN 0x0080
844#define BITP_THRESH0_A_THRESH0_VALUE 0
845#define BITP_THRESH0_A_THRESH0_SHIFT 8
846#define BITM_THRESH0_A_THRESH0_VALUE 0x00ff
847#define BITM_THRESH0_A_THRESH0_SHIFT 0x1f00
850#define BITP_THRESH1_A_THRESH1_VALUE 0
851#define BITP_THRESH1_A_THRESH1_SHIFT 8
852#define BITM_THRESH1_A_THRESH1_VALUE 0x00ff
853#define BITM_THRESH1_A_THRESH1_SHIFT 0x1f00
855#define ADPD410X_LOW_FREQ_OSCILLATOR_FREQ1 1000000
856#define ADPD410X_LOW_FREQ_OSCILLATOR_FREQ2 32768
857#define ADPD410X_HIGH_FREQ_OSCILLATOR_FREQ 32000000
859#define ADPD410X_MAX_SLOT_NUMBER 12
860#define ADPD410X_LED_CURR_LSB 1.333
861#define ADPD410X_MAX_NUM_INT 255
862#define ADPD410X_MAX_PULSE_LENGTH 255
863#define ADPD410X_MAX_INTEG_OS 255
864#define ADPD410X_FIFO_DEPTH 512
865#define ADPD410X_MAX_SAMPLING_FREQ 9000
867#define ADPD410X_UPPDER_BYTE_SPI_MASK 0x7f80
868#define ADPD410X_LOWER_BYTE_SPI_MASK 0xfe
869#define ADPD410X_UPPDER_BYTE_I2C_MASK 0x7f00
870#define ADPD410X_LOWER_BYTE_I2C_MASK 0xff
1191 uint8_t *data, uint16_t num_bytes);
1199 uint16_t data, uint16_t mask);
1214 uint8_t timeslot_no);
1238 uint16_t num_samples,
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
adpd410x_supported_dev
Devices supported by the driver.
Definition adpd410x.h:898
@ ADPD4101
Definition adpd410x.h:900
@ ADPD4100
Definition adpd410x.h:899
int32_t adpd410x_read_fifo(struct adpd410x_dev *dev, uint32_t *data, uint16_t num_samples, uint8_t datawidth)
Reads a certain number of bytes from the fifo and stores in data Used to read a large amount of data ...
Definition adpd410x.c:550
int32_t adpd410x_reg_read_bytes(struct adpd410x_dev *dev, uint16_t address, uint8_t *data, uint16_t num_bytes)
Read a specified number of bytes from device register.
Definition adpd410x.c:73
int32_t adpd410x_get_sampling_freq(struct adpd410x_dev *dev, uint32_t *sampling_freq)
Get device sampling frequency.
Definition adpd410x.c:326
adpd410x_precon_opt
Time slot input precondition options.
Definition adpd410x.h:969
@ ADPD410X_VC2
Definition adpd410x.h:975
@ ADPD410X_VC1
Definition adpd410x.h:973
@ ADPD410X_VICM
Definition adpd410x.h:977
@ ADPD410X_FLOAT_INS
Definition adpd410x.h:971
@ ADPD410X_SHORT_INS
Definition adpd410x.h:983
@ ADPD410X_TIA_VREF
Definition adpd410x.h:981
@ ADPD410X_TIA_IN
Definition adpd410x.h:979
int32_t adpd410x_get_fifo_bytecount(struct adpd410x_dev *dev, uint16_t *bytes)
Get number of bytes in the device FIFO.
Definition adpd410x.c:471
adpd410x_timeslots
Available Time slots.
Definition adpd410x.h:1055
@ ADPD410X_TS_I
Definition adpd410x.h:1073
@ ADPD410X_TS_A
Definition adpd410x.h:1057
@ ADPD410X_TS_G
Definition adpd410x.h:1069
@ ADPD410X_TS_B
Definition adpd410x.h:1059
@ ADPD410X_TS_C
Definition adpd410x.h:1061
@ ADPD410X_TS_H
Definition adpd410x.h:1071
@ ADPD410X_TS_K
Definition adpd410x.h:1077
@ ADPD410X_TS_F
Definition adpd410x.h:1067
@ ADPD410X_TS_D
Definition adpd410x.h:1063
@ ADPD410X_TS_L
Definition adpd410x.h:1079
@ ADPD410X_TS_E
Definition adpd410x.h:1065
@ ADPD410X_TS_J
Definition adpd410x.h:1075
adpd410x_tia_vref_volt
TIA reference voltage options.
Definition adpd410x.h:990
@ ADPD410X_TIA_VREF_1V012
Definition adpd410x.h:994
@ ADPD410X_TIA_VREF_0V8855
Definition adpd410x.h:996
@ ADPD410X_TIA_VREF_1V1385
Definition adpd410x.h:992
@ ADPD410X_TIA_VREF_1V256
Definition adpd410x.h:998
int32_t adpd410x_set_opmode(struct adpd410x_dev *dev, enum adpd410x_opmode mode)
Set operation mode.
Definition adpd410x.c:223
int32_t adpd410x_reg_write_mask(struct adpd410x_dev *dev, uint16_t address, uint16_t data, uint16_t mask)
Do a read and write of a register to update only part of a register.
Definition adpd410x.c:164
int32_t adpd410x_get_last_timeslot(struct adpd410x_dev *dev, enum adpd410x_timeslots *timeslot_no)
Get number of active time slots.
Definition adpd410x.c:270
int32_t adpd410x_get_data(struct adpd410x_dev *dev, uint32_t *data)
Get a full data packet from the device containing data from all active time slots.
Definition adpd410x.c:618
int32_t adpd410x_remove(struct adpd410x_dev *dev)
Free memory allocated by adpd410x_setup().
Definition adpd410x.c:760
adpd410x_ts_input_pair
List of input pairs options for time slots.
Definition adpd410x.h:918
@ ADPD410X_INP56
Definition adpd410x.h:924
@ ADPD410X_INP34
Definition adpd410x.h:922
@ ADPD410X_INP12
Definition adpd410x.h:920
@ ADPD410X_INP78
Definition adpd410x.h:926
adpd410x_tia_vref_ref
TIA resistor gain setting.
Definition adpd410x.h:1005
@ ADPD410X_TIA_VREF_50K
Definition adpd410x.h:1011
@ ADPD410X_TIA_VREF_200K
Definition adpd410x.h:1007
@ ADPD410X_TIA_VREF_100K
Definition adpd410x.h:1009
@ ADPD410X_TIA_VREF_25K
Definition adpd410x.h:1013
@ ADPD410X_TIA_VREF_12K5
Definition adpd410x.h:1015
adpd410x_opmode
Operation modes of the device.
Definition adpd410x.h:907
@ ADPD410X_GOMODE
Definition adpd410x.h:911
@ ADPD410X_STANDBY
Definition adpd410x.h:909
int32_t adpd410x_reset(struct adpd410x_dev *dev)
Do a software reset.
Definition adpd410x.c:205
int32_t adpd410x_setup(struct adpd410x_dev **device, struct adpd410x_init_param *init_param)
Setup the device and the driver.
Definition adpd410x.c:649
int32_t adpd410x_get_opmode(struct adpd410x_dev *dev, enum adpd410x_opmode *mode)
Get operation mode.
Definition adpd410x.c:236
int32_t adpd410x_reg_write(struct adpd410x_dev *dev, uint16_t address, uint16_t data)
Write device register.
Definition adpd410x.c:130
adpd410x_ts_input_opt
List of input configurations for time slot.
Definition adpd410x.h:933
@ ADPD410X_INaCH1_INbDIS
Definition adpd410x.h:937
@ ADPD410X_INaCH2_INbCH2
Definition adpd410x.h:951
@ ADPD410X_INaDIS_INbCH1
Definition adpd410x.h:941
@ ADPD410X_INaCH2_INbDIS
Definition adpd410x.h:939
@ ADPD410X_INaCH2_INbCH1
Definition adpd410x.h:947
@ ADPD410X_INaCH1_INbCH2
Definition adpd410x.h:945
@ ADPD410X_INaDIS_INbDIS
Definition adpd410x.h:935
@ ADPD410X_INaDIS_INbCH2
Definition adpd410x.h:943
@ ADPD410X_INaCH1_INbCH1
Definition adpd410x.h:949
adpd410x_clk_opt
External clock options.
Definition adpd410x.h:1127
@ ADPD410X_INTLFO_INTHFO
Definition adpd410x.h:1129
@ ADPD410X_INTLFO_EXTHFO
Definition adpd410x.h:1133
@ ADPD410X_EXTLFO_INTHFO
Definition adpd410x.h:1131
@ ADPD410X_GENLFO_EXTHFO
Definition adpd410x.h:1136
int32_t adpd410x_reg_read(struct adpd410x_dev *dev, uint16_t address, uint16_t *data)
Read device register.
Definition adpd410x.c:48
int32_t adpd410x_set_sampling_freq(struct adpd410x_dev *dev, uint32_t sampling_freq)
Set device sampling frequency.
Definition adpd410x.c:291
adpd410x_led_output_opt
LED output option.
Definition adpd410x.h:1022
@ ADPD410X_OUTPUT_B
Definition adpd410x.h:1026
@ ADPD410X_OUTPUT_A
Definition adpd410x.h:1024
int32_t adpd410x_timeslot_setup(struct adpd410x_dev *dev, enum adpd410x_timeslots timeslot_no, struct adpd410x_timeslot_init *init)
Setup an active time slot.
Definition adpd410x.c:369
int32_t adpd410x_set_last_timeslot(struct adpd410x_dev *dev, uint8_t timeslot_no)
uint64_t sampling_freq
Definition headless.c:77
Header file of GPIO Interface.
Header file of I2C Interface.
Header file of SPI Interface.
Structure mapping LED output option and LED strength to one byte.
Definition adpd410x.h:1033
enum adpd410x_led_output_opt led_output_select
Definition adpd410x.h:1037
uint8_t let_current_select
Definition adpd410x.h:1035
Device driver handler.
Definition adpd410x.h:1166
struct no_os_gpio_desc * gpio2
Definition adpd410x.h:1178
struct no_os_gpio_desc * gpio1
Definition adpd410x.h:1176
enum adpd410x_clk_opt clk_opt
Definition adpd410x.h:1172
union phy_comm_dev dev_ops
Definition adpd410x.h:1168
uint32_t ext_lfo_freq
Definition adpd410x.h:1182
enum adpd410x_supported_dev dev_type
Definition adpd410x.h:1170
struct no_os_gpio_desc * gpio0
Definition adpd410x.h:1174
struct no_os_gpio_desc * gpio3
Definition adpd410x.h:1180
Device driver initialization structure.
Definition adpd410x.h:1143
enum adpd410x_clk_opt clk_opt
Definition adpd410x.h:1149
struct no_os_gpio_init_param gpio0
Definition adpd410x.h:1151
struct no_os_gpio_init_param gpio1
Definition adpd410x.h:1153
enum adpd410x_supported_dev dev_type
Definition adpd410x.h:1147
struct no_os_gpio_init_param gpio2
Definition adpd410x.h:1155
uint32_t ext_lfo_freq
Definition adpd410x.h:1159
struct no_os_gpio_init_param gpio3
Definition adpd410x.h:1157
union phy_comm_init_param dev_ops_init
Definition adpd410x.h:1145
Initialization structure for time slots.
Definition adpd410x.h:1086
union adpd410x_led_control led4
Definition adpd410x.h:1114
enum adpd410x_tia_vref_ref chan1
Definition adpd410x.h:1098
union adpd410x_led_control led3
Definition adpd410x.h:1116
struct adpd410x_ts_inputs ts_inputs
Definition adpd410x.h:1090
uint8_t repeats_no
Definition adpd410x.h:1120
uint8_t pulse4_reverse
Definition adpd410x.h:1102
union adpd410x_led_control led1
Definition adpd410x.h:1112
uint8_t byte_no
Definition adpd410x.h:1106
uint8_t adc_cycles
Definition adpd410x.h:1118
enum adpd410x_tia_vref_ref chan2
Definition adpd410x.h:1100
enum adpd410x_precon_opt precon_option
Definition adpd410x.h:1092
enum adpd410x_tia_vref_volt afe_trim_opt
Definition adpd410x.h:1094
uint8_t pulse4_subtract
Definition adpd410x.h:1104
bool enable_ch2
Definition adpd410x.h:1088
uint8_t dec_factor
Definition adpd410x.h:1108
union adpd410x_led_control led2
Definition adpd410x.h:1110
enum adpd410x_tia_vref_volt vref_pulse_opt
Definition adpd410x.h:1096
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 I2C address descriptor.
Definition no_os_i2c.h:89
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Union of the LED mapping and value so they can be accessed both ways.
Definition adpd410x.h:1044
struct _adpd410x_led_control fields
Definition adpd410x.h:1046
uint8_t value
Definition adpd410x.h:1048
Contains physical communication handler.
Definition adpd410x.h:876
struct no_os_spi_desc * spi_phy_dev
Definition adpd410x.h:878
struct no_os_i2c_desc * i2c_phy_dev
Definition adpd410x.h:880
Contains physical communication initialization structure.
Definition adpd410x.h:887
struct no_os_spi_init_param spi_phy_init
Definition adpd410x.h:889
struct no_os_i2c_init_param i2c_phy_init
Definition adpd410x.h:891