SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_xtrg.h
Go to the documentation of this file.
1
9#ifndef SDRV_XTRG_H
10#define SDRV_XTRG_H
11
12#include <compiler.h>
13#include <reg.h>
14#include <types.h>
15
16#include "part.h"
17
18#define FUNC_INT_STA (0x0)
19#define FUNC_INT_STA_EN (0x4)
20#define FUNC_INT_SIG_EN (0x8)
21#define FUNC_INT_STA_SHIFT(int_id) (int_id)
22#define FUNC_INT_STA_MASK(int_id) (0x1 << FUNC_INT_STA_SHIFT(int_id))
23
24#define FUNC_ERR_INT_STA (0x10)
25#define FUNC_ERR_INT_STA_EN (0x14)
26
27#define FUNC_COR_ERR_INT_SIG_EN (0x18)
28#define FUNC_UNC_ERR_INT_SIG_EN (0x1C)
29
30#define FUNC_IO_ERR0_INT_STA (0x20)
31#define FUNC_IO_ERR0_INT_STA_EN (0x24)
32
33#define FUNC_IO_COR_ERR0_INT_SIG_EN (0x28)
34#define FUNC_IO_UNC_ERR0_INT_SIG_EN (0x2C)
35
36#define FUNC_IO_ERR1_INT_STA (0x30)
37#define FUNC_IO_ERR1_INT_STA_EN (0x34)
38
39#define FUNC_IO_COR_ERR1_INT_SIG_EN (0x38)
40#define FUNC_IO_UNC_ERR1_INT_SIG_EN (0x3C)
41
42#define FUNC_SMON_CMP_ERR_INT_STA (0x40)
43#define FUNC_SMON_CMP_ERR_INT_STA_EN (0x44)
44
45#define FUNC_SMON_CMP_COR_ERR_INT_SIG_EN (0x48)
46#define FUNC_SMON_CMP_UNC_ERR_INT_SIG_EN (0x4C)
47
48#define SWDT_ERR_INT_STA (0x50)
49#define SWDT_ERR_INT_STA_EN (0x54)
50
51#define SWDT_COR_ERR_INT_SIG_EN (0x58)
52#define SWDT_UNC_ERR_INT_SIG_EN (0x5C)
53
54#define FUNC_SEQ_ERR_INT_STA (0x60)
55#define FUNC_SEQ_ERR_INT_STA_EN (0x64)
56
57#define FUNC_SEQ_COR_ERR_INT_SIG_EN (0x68)
58#define FUNC_SEQ_UNC_ERR_INT_SIG_EN (0x6C)
59
60#define FAULT_SOURCE_EN0 (0xD00)
61#define FAULT_SOURCE_EN1 (0xD04)
62#define FAULT_SOURCE_EN2 (0xD08)
63#define FAULT_SOURCE_EN3 (0xD0C)
64#define FAULT_SOURCE_EN4 (0xD10)
65#define FAULT_EVENT_CLR (0xD14)
66
67#define TRG_SYNC_DIS (0x100)
68#define SIG_SYNC_DIS (0x104)
69#define SYNC_SYNC_DIS (0x110)
70#define IO_SYNC_DIS (0x200)
71#define IO_FLAT(io) (0x210 + (io)*4)
72
73#define SW_TRG_CTRL (0xc00)
74#define SW_TRG_STATUS (0xc04)
75#define SW_TRG_PULSE_WIDTH(swt) (0xc10 + (swt) / 2 * 4)
76
77#define SSE_IN_0_3_SEL(sse) (0x310 + 0x10 * (sse))
78#define SSE_IN_4_SEL(sse) (SSE_IN_0_3_SEL(sse) + 0x4)
79#define SSE_REG(sse) (SSE_IN_0_3_SEL(sse) + 0x8)
80#define SSE_CTRL(sse) (SSE_IN_0_3_SEL(sse) + 0xc)
81
82#define SIG_O_SEL(sig_o) (0x410 + (sig_o)*4)
83#define IO_O_SEL(io_o) (0x540 + (io_o)*4)
84
85#define IO_OUT_EN(io_o) (0x670 + (io_o) / 32 * 4)
86#define SYNC_O_SEL(sync_o) (0x680 + (sync_o)*4)
87
88#define TMUX_DEC_EN (0x8D0)
89#define TMUX0_DRT_CTRL(drt_id) (0x6d0 + (drt_id)*0x18)
90#define TMUX0_DRT_DECODE_SEL(drt_id, sel) (TMUX0_DRT_CTRL(drt_id) + (sel)*4)
91
92#define TMUX0_INDRT_CTRL(drt_id) (0x790 + (drt_id)*0x28)
93#define TMUX0_INDRT_DECODE_SEL(drt_id, sel) (TMUX0_INDRT_CTRL(drt_id) + (sel)*4)
94#define TMUX0_INDRT_TID_POOL(drt_id, sel) \
95 (TMUX0_INDRT_CTRL(drt_id) + (sel)*4 + 0x8)
96
97#define TUMX_DONE_MONITOR_CNT (0x8E0)
98
99#define SMON_EN (0x8FC)
100#define SMON_FIRST_MUX_SELECT(smon_id) (0x900 + smon_id * 8)
101#define SMON_SECOND_MUX_SELECT(smon_id) (0x904 + smon_id * 8)
102
103#define SWDT_IN_SEL(swdt_id) (0xA00 + swdt_id * 0x10)
104#define SWDT_EVENT_CHECK(swdt_id) (SWDT_IN_SEL(swdt_id) + 4)
105#define SWDT_PULSE_CHECK(swdt_id) (SWDT_IN_SEL(swdt_id) + 8)
106#define SWDT_PULSE_CHECK_WINDOW(swdt_id) (SWDT_IN_SEL(swdt_id) + 0xC)
107
108#define DMAC0_CTRL (0xB00)
109#define DMAC1_CTRL (0xB04)
110
111#define FAULT_SOURCE_EN(fault_id) (0xD00 + (fault_id) / 32 * 4)
112
113#define TMUX_ADC_RSLT(adc_id, tmux_id) (0xE00 + (adc_id)*4 + (tmux_id)*0xC)
114#define TMUX_ACMP_RSLT(acmp_id, tmux_id) (0xE80 + (acmp_id)*4 + (tmux_id)*0x10)
115
116#define FUSA_COR_ERR_INT_STA (0x70)
117#define FUSA_COR_ERR_INT_STA_EN (0x74)
118#define FUSA_COR_ERR_INT_SIG_EN (0x78)
119#define FUSA_UNC_ERR_INT_STA (0x7C)
120#define FUSA_UNC_ERR_INT_STA_EN (0x80)
121#define FUSA_UNC_ERR_INT_SIG_EN (0x84)
122#define REG_PARITY_ERR_INT_STAT (0x88)
123#define REG_PARITY_ERR_INT_STAT_EN (0x8C)
124#define REG_PARITY_ERR_INT_SIG_EN (0x90)
125#define TRG_SYNC_ERR_INJ (0xF00)
126
127#define SIG_SYNC_ERR_INJ(num) (0xF10 + num * 4)
128
129#define SYNC_SYNC_ERR_INJ (0xF20)
130#define IO_SYNC_ERR_INJ0 (0xF24)
131#define IO_FLT_ERR_INJ (0xF2C)
132#define IO_ERR_INJ (0xF30)
133#define SMON_ERR_INJ (0xF34)
134#define TMUX_TRG_SYNC_ERR_INJ (0xF38)
135
136#define TMUX_DEC_CMP_ERR_INJ(n) (0xF50 + 4 * (n))
137
138#define TMUX_ARB_LSP_ERR_INJ (0xF90)
139#define FAULT_EVENT_RED_ERR_INJ (0xFA4)
140#define DMA_CODE_INJ (0xFE4)
141#define INT_ERR_INJ (0xFF0)
142#define SELFTEST_MODE (0xFFC)
146typedef enum sdrv_xtrg_i_group {
147 /* Input signal groups. */
154
155 /* Output signal groups. */
159
160 /* Logical groups for convenience. */
162
164
169#if (CONFIG_E3L)
170#define XTRG_i_GROUP_SHIFT 28
171#define XTRG_i_GROUP(SIG) (sdrv_xtrg_i_group_e)((SIG) >> XTRG_i_GROUP_SHIFT)
172#define XTRG_i_SIG(SIG) ((SIG)&0x0FFFFFFFul)
173
174#define SWT_i_START (SDRV_XTRG_SWT_i_GROUP << XTRG_i_GROUP_SHIFT)
175#define SWT_i_NR 8
176
177#define TRG_i_START (SDRV_XTRG_TRG_i_GROUP << XTRG_i_GROUP_SHIFT)
178#define TRG_i_NR 4
179
180#define SIG_i_START (SDRV_XTRG_SIG_i_GROUP << XTRG_i_GROUP_SHIFT)
181#define SIG_i_NR 38
182
183#define SYNC_i_START (SDRV_XTRG_SYNC_i_GROUP << XTRG_i_GROUP_SHIFT)
184#define SYNC_i_NR 10
185
186#define IO_i_START (SDRV_XTRG_IO_i_GROUP << XTRG_i_GROUP_SHIFT)
187#define IO_i_NR 64
188
189#define TID_i_START (SDRV_XTRG_TID_i_GROUP << XTRG_i_GROUP_SHIFT)
190#define TID_i_NR 32
191
192#define SIG_o_START (SDRV_XTRG_SIG_o_GROUP << XTRG_i_GROUP_SHIFT)
193#define SIG_o_NR 40
194
195#define IO_o_START (SDRV_XTRG_IO_o_GROUP << XTRG_i_GROUP_SHIFT)
196#define IO_o_NR 64
197
198#define SYNC_o_START (SDRV_XTRG_SYNC_o_GROUP << XTRG_i_GROUP_SHIFT)
199#define SYNC_o_NR 10
200
201#define SSIG_START (SDRV_XTRG_SSIG_GROUP << XTRG_i_GROUP_SHIFT)
202#define SSIG_NR 16
203
204/* SWT_i group. */
205#define XTRG_SWT(swt) (SWT_i_START + (swt))
206
207/* SIG_i group. */
208#define ETIMER_CMP_A1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 0)
209#define ETIMER_CMP_B0(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 1)
210#define ETIMER_CMP_B1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 2)
211#define ETIMER_CMP_C0(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 3)
212#define ETIMER_CMP_C1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 4)
213#define ETIMER_CMP_D0(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 5)
214#define ETIMER_CMP_D1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 6)
215#define ETIMER_DIR(ETMR_ID) (SIG_i_START + 14 + (ETMR_ID))
216#define EPWM_CMP_A1(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 0)
217#define EPWM_CMP_B0(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 1)
218#define EPWM_CMP_B1(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 2)
219#define EPWM_CMP_C0(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 3)
220#define EPWM_CMP_C1(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 4)
221#define EPWM_CMP_D0(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 5)
222#define EPWM_CMP_D1(EPWM_ID) (SIG_i_START + 16 + 7 * (EPWM_ID) + 6)
223#define ADC_DONE(ADC_ID) (SIG_i_START + 30 + (ADC_ID))
224#define ACMPO(ACMP_ID) (SIG_i_START + 33 + (ACMP_ID))
225#define SEM_FAULT (SIG_i_START + 37)
226
227/* SYNC_i group. */
228#define ETIMER_SNAP_SHOT_I(ETMR_ID) (SYNC_i_START + (ETMR_ID))
229#define ETIMER_SET_I(ETMR_ID) (SYNC_i_START + 2 + (ETMR_ID))
230#define ETIMER_CLR_I(ETMR_ID) (SYNC_i_START + 4 + (ETMR_ID))
231#define EPWM_SET_I(EPWM_ID) (SYNC_i_START + 6 + (EPWM_ID))
232#define EPWM_CLR_I(EPWM_ID) (SYNC_i_START + 8 + (EPWM_ID))
233
234/* TRG_i group. */
235#define ETIMER_CMP0(ETMR_ID) (TRG_i_START + (ETMR_ID))
236#define EPWM_CMP0(EPWM_ID) (TRG_i_START + 2 + (EPWM_ID))
237
238/* IO_i group. */
239#define IO_i(IO) (IO_i_START + (IO))
240
241/* TID_i group. */
242#define ETIMER_EID(ETMR) (TID_i_START + (ETMR)*8)
243#define EPWM_EID(EPWM) (TID_i_START + 16 + (EPWM)*8)
244
245/* SIG_o group */
246#define ETIMER_CPT0(ETMR, CHNL) (SIG_o_START + ETMR * 8 + (CHNL))
247#define ETIMER_FAULT(ETMR, CHNL) (SIG_o_START + 16 + (ETMR)*4 + (CHNL))
248#define ETIMER_CLK(ETMR) (SIG_o_START + 24 + (ETMR))
249#define EPWM_FAULT(EPWM, CHNL) (SIG_o_START + 26 + (EPWM)*4 + (CHNL))
250#define EPWM_CLK(EPWM) (SIG_o_START + 34 + (EPWM))
251#define ACMP_SAMPLE(ACMP) (SIG_o_START + 36 + (ACMP))
252
253/* IO_o group. */
254#define IO_o(IO) (IO_o_START + (IO))
255
256/* SYNC_o group. */
257#define ETIMER_SNAP_SHOT_O(ETMR) (SYNC_o_START + (ETMR))
258#define ETIMER_SET_O(ETMR) (SYNC_o_START + 2 + (ETMR))
259#define ETIMER_CLR_O(ETMR) (SYNC_o_START + 4 + (ETMR))
260#define EPWM_SET_O(EPWM) (SYNC_o_START + 6 + (EPWM))
261#define EPWM_CLR_O(EPWM) (SYNC_o_START + 8 + (EPWM))
262
263/* SSIG group. */
264#define SSIG(SSIG) (SSIG_START + (SSIG))
265
266#else
267
268#define XTRG_i_GROUP_SHIFT 28
269#define XTRG_i_GROUP(SIG) (sdrv_xtrg_i_group_e)((SIG) >> XTRG_i_GROUP_SHIFT)
270#define XTRG_i_SIG(SIG) ((SIG)&0x0FFFFFFFul)
271
272#define SWT_i_START (SDRV_XTRG_SWT_i_GROUP << XTRG_i_GROUP_SHIFT)
273#define SWT_i_NR 8
274
275#define TRG_i_START (SDRV_XTRG_TRG_i_GROUP << XTRG_i_GROUP_SHIFT)
276#define TRG_i_NR 8
277
278#define SIG_i_START (SDRV_XTRG_SIG_i_GROUP << XTRG_i_GROUP_SHIFT)
279#define SIG_i_NR 68
280
281#define SYNC_i_START (SDRV_XTRG_SYNC_i_GROUP << XTRG_i_GROUP_SHIFT)
282#define SYNC_i_NR 20
283
284#define IO_i_START (SDRV_XTRG_IO_i_GROUP << XTRG_i_GROUP_SHIFT)
285#define IO_i_NR 64
286
287#define TID_i_START (SDRV_XTRG_TID_i_GROUP << XTRG_i_GROUP_SHIFT)
288#define TID_i_NR 64
289
290#define SIG_o_START (SDRV_XTRG_SIG_o_GROUP << XTRG_i_GROUP_SHIFT)
291#define SIG_o_NR 76
292
293#define IO_o_START (SDRV_XTRG_IO_o_GROUP << XTRG_i_GROUP_SHIFT)
294#define IO_o_NR 64
295
296#define SYNC_o_START (SDRV_XTRG_SYNC_o_GROUP << XTRG_i_GROUP_SHIFT)
297#define SYNC_o_NR 20
298
299#define SSIG_START (SDRV_XTRG_SSIG_GROUP << XTRG_i_GROUP_SHIFT)
300#define SSIG_NR 16
301
302/* SWT_i group. */
303#define XTRG_SWT(swt) (SWT_i_START + (swt))
304
305/* SIG_i group. */
306#define ETIMER_CMP_A1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 0)
307#define ETIMER_CMP_B0(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 1)
308#define ETIMER_CMP_B1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 2)
309#define ETIMER_CMP_C0(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 3)
310#define ETIMER_CMP_C1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 4)
311#define ETIMER_CMP_D0(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 5)
312#define ETIMER_CMP_D1(ETMR_ID) (SIG_i_START + 7 * (ETMR_ID) + 6)
313#define ETIMER_DIR(ETMR_ID) (SIG_i_START + 28 + (ETMR_ID))
314
315#define EPWM_CMP_A1(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 0)
316#define EPWM_CMP_B0(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 1)
317#define EPWM_CMP_B1(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 2)
318#define EPWM_CMP_C0(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 3)
319#define EPWM_CMP_C1(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 4)
320#define EPWM_CMP_D0(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 5)
321#define EPWM_CMP_D1(EPWM_ID) (SIG_i_START + 32 + 7 * (EPWM_ID) + 6)
322#define ADC_DONE(ADC_ID) (SIG_i_START + 60 + (ADC_ID))
323#define ACMPO(ACMP_ID) (SIG_i_START + 63 + (ACMP_ID))
324#define SEM_FAULT (SIG_i_START + 67)
325
326/* SYNC_i group. */
327#define ETIMER_SNAP_SHOT_I(ETMR_ID) (SYNC_i_START + (ETMR_ID))
328#define ETIMER_SET_I(ETMR_ID) (SYNC_i_START + 4 + (ETMR_ID))
329#define ETIMER_CLR_I(ETMR_ID) (SYNC_i_START + 8 + (ETMR_ID))
330#define EPWM_SET_I(EPWM_ID) (SYNC_i_START + 12 + (EPWM_ID))
331#define EPWM_CLR_I(EPWM_ID) (SYNC_i_START + 16 + (EPWM_ID))
332
333/* TRG_i group. */
334#define ETIMER_CMP0(ETMR_ID) (TRG_i_START + (ETMR_ID))
335#define EPWM_CMP0(EPWM_ID) (TRG_i_START + 4 + (EPWM_ID))
336
337/* IO_i group. */
338#define IO_i(IO) (IO_i_START + (IO))
339
340/* TID_i group. */
341#define ETIMER_EID(ETMR) (TID_i_START + (ETMR)*8)
342#define EPWM_EID(EPWM) (TID_i_START + 32 + (EPWM)*8)
343
344/* SIG_o group */
345#define ETIMER_CPT0(ETMR, CHNL) (SIG_o_START + ETMR * 8 + (CHNL))
346#define ETIMER_FAULT(ETMR, CHNL) (SIG_o_START + 32 + (ETMR)*4 + (CHNL))
347#define ETIMER_CLK(ETMR) (SIG_o_START + 48 + (ETMR))
348#define EPWM_FAULT(EPWM, CHNL) (SIG_o_START + 52 + (EPWM)*4 + (CHNL))
349#define EPWM_CLK(EPWM) (SIG_o_START + 68 + (EPWM))
350#define ACMP_SAMPLE(ACMP) (SIG_o_START + 72 + (ACMP))
351
352/* IO_o group. */
353#define IO_o(IO) (IO_o_START + (IO))
354
355/* SYNC_o group. */
356#define ETIMER_SNAP_SHOT_O(ETMR) (SYNC_o_START + (ETMR))
357#define ETIMER_SET_O(ETMR) (SYNC_o_START + 4 + (ETMR))
358#define ETIMER_CLR_O(ETMR) (SYNC_o_START + 8 + (ETMR))
359#define EPWM_SET_O(EPWM) (SYNC_o_START + 12 + (EPWM))
360#define EPWM_CLR_O(EPWM) (SYNC_o_START + 16 + (EPWM))
361
362/* SSIG group. */
363#define SSIG(SSIG) (SSIG_START + (SSIG))
364
365#endif
366
381
382typedef struct sdrv_xtrg sdrv_xtrg_t;
383
385typedef void (*xtrg_callback_t)(sdrv_xtrg_t *ctrl,
386 sdrv_xtrg_irq_status_e status, void *para);
387
388typedef struct sdrv_xtrg_sig_group {
389 /* Signal number. */
390 uint32_t sig_nr;
391
392 /* Start index of SSE5 input select mux. */
393 uint32_t sse_idx;
394
395 /* Start index of smux input. */
396 uint32_t smux_idx;
397
398 /* Start index of syncmux input. */
399 uint32_t syncmux_idx;
400
401 /* Start index of smon input. */
402 uint32_t smon_idx;
403
404 /* Synchronization disable register offset. */
405 uint32_t sync_dis_off;
406
408
412typedef enum sdrv_xtrg_edge {
417
421typedef struct sdrv_xtrg_config {
422 uint32_t sig;
423 uint32_t sig_i;
424 uint32_t sig_o;
426
430struct sdrv_xtrg {
431 paddr_t base;
432 int irq;
434 void *para;
435};
436
440typedef enum sdrv_xtrg_swt_sel {
450
460
464typedef struct sdrv_xtrg_swt_config {
467 uint32_t width;
469
473typedef enum sdrv_xtrg_ssm_sel {
491
495typedef struct sdrv_xtrg_sse5_config {
496 /* 5 input signals. */
497 struct {
498 uint32_t sig;
499 /* Detect mode. False for level detect. True for Edge detect. */
501 /* Edge select, when edge_detect is True. */
503 } in[5];
504
505 /*
506 * Synthesis Engine register (sse_reg) value. The output SSIG
507 * is ssig=sse_reg[in], where "in" is the 5 bit input signal value.
508 */
510
512
514
518typedef enum sdrv_xtrg_smon_sel {
552
556typedef struct sdrv_xtrg_smon_config {
557 /* First level mux select
558 sig_out_sel from SYNC_o, SIG_o and IO_o*/
559 uint32_t sig_out_sel;
560
561 /* sig_in_sel from IO_i, TRG_i, SIG_i, SYNC_i, SSIG and SWT */
562 uint32_t sig_in_sel;
563
564 /* Second level mux select Compare input0/1 mux select from first level mux
565 * output */
568
569 /* Change polarity of input0 of comparator */
571
574
585
589typedef enum sdrv_xtrg_swdt_sel {
595
600 /* SWDT input select from SMON first level mux output */
601 uint32_t swdt_sig_sel;
602
603 /* Preconfigured time window for check event happen */
605
606 /* event trigger mode */
608
611
619
627
632 /* SWDT input select from SMON first level mux output */
633 uint32_t swdt_sig_sel;
634
635 /* Pulse check mode */
637
638 /* Pulse check edge */
640
641 /* Max value of check window */
643
644 /* Min value of check window */
646
647 /* SWDT select */
650
658
662typedef struct sdrv_xtrg_swdt_config {
667
672 /* Filter input signal select.*/
673 uint32_t sig;
674
675 /* Debouncing filter edge. */
677
678 /*
679 * Filter intervals for positive and negative edges, in units of
680 * sampling intervals. Range: 2 ~ 17.
681 */
684
685 /* Sampling interval, in timer clock cycles. Range 1~256. */
687
689
703
717
722 /* Trigger signal from TRG_i or SSIG groups. */
723 uint32_t trigger_sig;
724
725 /* TID_i signal, one of etimer_eid, or epwm_eid. */
726 uint32_t tid;
727
728 /* The LUT is used to select which ADC or ACMP should be triggered
729 * according to tid[7:5].
730 */
731 uint8_t target_lut[8];
732
733 /* TMUX drt select */
736
741 /* Trigger signal from TRG_i or SSIG groups. */
742 uint32_t trigger_sig;
743
744 /* TERM_VAL, when read address of ID pool reaches TERM_VAL, it goes back to
745 * 0. */
746 uint32_t term_val;
747
748 /* TERM_TID, when current read TID of ID pools matches TERM_TID, read
749 * address of ID pool can be reset to 0. */
750 uint32_t term_tid;
751
752 /* The LUT is used to select which ADC or ACMP should be triggered
753 * according to tid[7:5].
754 */
755 uint8_t target_lut[8];
756
757 /* TMUX indrt input mux TID pool
758 pool0 pool1 8(bit) * 8(entries) */
759 uint32_t tid_pool[2];
760
761 /*TMUX indrt select*/
763
765
773
777typedef enum sdrv_xtrg_dma_sel {
781
785typedef struct sdrv_xtrg_dma_config {
786 /* Select one of SSIG signals as DMA request trigger */
788
789 /* Generate DMA request on pos/neg edge of selcted SSIG */
791
792 /* DMA select */
795
833
837typedef enum sdrv_xtrg_err_sel {
842
847 /* Select one of SMON cmp err signal.*/
849 /* Select SMON cmp err signal as cor/uncor err signal.*/
852
856typedef enum sdrv_xtrg_tmux_sel {
866
870typedef enum sdrv_xtrg_adc_sel {
875
879typedef enum sdrv_xtrg_acmp_sel {
885
892int sdrv_xtrg_irq_handler(uint32_t irq, void *ctrl);
893
899void sdrv_xtrg_init(sdrv_xtrg_t *ctrl, xtrg_callback_t callback, void *para);
900
907
915
923
935 bool enable);
936
945 sdrv_xtrg_t *ctrl, const sdrv_xtrg_io_filter_config_t *io_filter_cfg,
946 bool enable);
947
955 const sdrv_xtrg_swt_config_t *swt_cfg);
956
965 const sdrv_xtrg_sse5_config_t *sse5_cfg,
966 bool enable);
967
978
987 bool enable);
988
998
1008 sdrv_xtrg_t *ctrl, const sdrv_xtrg_tmux_drt_config_t *tmux_drt_cfg);
1020 sdrv_xtrg_t *ctrl, const sdrv_xtrg_tmux_indrt_config_t *tmux_indrt_cfg);
1021
1033 const sdrv_xtrg_smon_config_t *smon_cfg,
1034 bool enable);
1035
1044 const sdrv_xtrg_swdt_config_t *swdt_cfg,
1045 bool enable);
1046
1055 const sdrv_xtrg_dma_config_t *config, bool enable);
1056
1067 sdrv_xtrg_adc_sel_e adc_id);
1068
1079 sdrv_xtrg_acmp_sel_e acmp_id);
1080
1087void sdrv_xtrg_fault_source_config(sdrv_xtrg_t *ctrl, uint32_t fault_id,
1088 bool enable);
1089
1098 sdrv_xtrg_t *ctrl,
1099 sdrv_xtrg_smon_cmp_err_config_t *xtrg_smon_cmp_err_config, bool enable);
1100
1107
1113void sdrv_xtrg_tmux_done_monitor_cnt_config(sdrv_xtrg_t *ctrl, uint8_t timeOutValue);
1114
1115#endif /* SDRV_XTRG_H */
enum sdrv_xtrg_i_group sdrv_xtrg_i_group_e
xTRG signal groups, including input (i) and output (o) signals.
struct sdrv_xtrg_dma_config sdrv_xtrg_dma_config_t
DMA configuration.
void sdrv_xtrg_int_enable(sdrv_xtrg_t *ctrl, sdrv_xtrg_irq_status_e int_id)
sdrv xtrg int enable.
enum sdrv_xtrg_pulse_check_mode sdrv_xtrg_pulse_check_mode_e
Pulse signal width check.
sdrv_xtrg_swt_sel
Software Triggers sel.
Definition: sdrv_xtrg.h:440
@ SDRV_XTRG_SWT7
Definition: sdrv_xtrg.h:448
@ SDRV_XTRG_SWT4
Definition: sdrv_xtrg.h:445
@ SDRV_XTRG_SWT3
Definition: sdrv_xtrg.h:444
@ SDRV_XTRG_SWT5
Definition: sdrv_xtrg.h:446
@ SDRV_XTRG_SWT6
Definition: sdrv_xtrg.h:447
@ SDRV_XTRG_SWT0
Definition: sdrv_xtrg.h:441
@ SDRV_XTRG_SWT2
Definition: sdrv_xtrg.h:443
@ SDRV_XTRG_SWT1
Definition: sdrv_xtrg.h:442
enum sdrv_xtrg_dma_ssig_mode sdrv_xtrg_dma_ssig_mode_e
Edge detect mode for dma.
enum sdrv_xtrg_event_trigger_mode sdrv_xtrg_event_trigger_mode_e
event trigger mode.
int sdrv_xtrg_swt_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_swt_config_t *swt_cfg)
Config SWT (software trigger).
sdrv_xtrg_pulse_check_edge
Pulse signal width edge.
Definition: sdrv_xtrg.h:623
@ SDRV_XTRG_PULSE_CHECK_NEGATIVE_PULSE
Definition: sdrv_xtrg.h:625
@ SDRV_XTRG_PULSE_CHECK_POSITIVE_PULSE
Definition: sdrv_xtrg.h:624
uint32_t sdrv_xtrg_adc_rslt(sdrv_xtrg_t *ctrl, sdrv_xtrg_tmux_sel_e tmux_id, sdrv_xtrg_adc_sel_e adc_id)
Read tmux adc result.
struct sdrv_xtrg_io_filter_config sdrv_xtrg_io_filter_config_t
I/O Filter configuration.
struct sdrv_xtrg_tmux_drt_config sdrv_xtrg_tmux_drt_config_t
Trigger Mux (tmux) configuration.
void sdrv_xtrg_deinit(sdrv_xtrg_t *ctrl)
Deinit XTRG.
struct sdrv_xtrg_config sdrv_xtrg_config_t
XTRG configurations.
enum sdrv_xtrg_swdt_check_mode sdrv_xtrg_swdt_check_mode_e
swdt check mode.
void sdrv_xtrg_fault_source_config(sdrv_xtrg_t *ctrl, uint32_t fault_id, bool enable)
sdrv xtrg fault source enable.
sdrv_xtrg_tmux0_drt_sel
tmux0 drt sel.
Definition: sdrv_xtrg.h:693
@ SDRV_XTRG_TMUX0_DRT1
Definition: sdrv_xtrg.h:695
@ SDRV_XTRG_TMUX0_DRT3
Definition: sdrv_xtrg.h:697
@ SDRV_XTRG_TMUX0_DRT0
Definition: sdrv_xtrg.h:694
@ SDRV_XTRG_TMUX0_DRT4
Definition: sdrv_xtrg.h:698
@ SDRV_XTRG_TMUX0_DRT6
Definition: sdrv_xtrg.h:700
@ SDRV_XTRG_TMUX0_DRT5
Definition: sdrv_xtrg.h:699
@ SDRV_XTRG_TMUX0_DRT7
Definition: sdrv_xtrg.h:701
@ SDRV_XTRG_TMUX0_DRT2
Definition: sdrv_xtrg.h:696
void sdrv_xtrg_tmux0_indrt_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_tmux_indrt_config_t *tmux_indrt_cfg)
Configure the Trigger Mux (tmux) indrt modules..
sdrv_xtrg_swt_event
Software Triggers events.
Definition: sdrv_xtrg.h:454
@ SDRV_XTRG_SWT_EVENT_TRIGGER
Definition: sdrv_xtrg.h:457
@ SDRV_XTRG_SWT_EVENT_PULSE
Definition: sdrv_xtrg.h:458
@ SDRV_XTRG_SWT_EVENT_SET
Definition: sdrv_xtrg.h:455
@ SDRV_XTRG_SWT_EVENT_CLEAR
Definition: sdrv_xtrg.h:456
enum sdrv_xtrg_edge sdrv_xtrg_edge_e
Edge detect mode for I/O filter and SSE5.
void sdrv_xtrg_tmux0_drt_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_tmux_drt_config_t *tmux_drt_cfg)
Configure syncmux, muxing input sync signals to SYNC_o.
struct sdrv_xtrg_sig_group sdrv_xtrg_sig_group_t
void sdrv_xtrg_io_filter_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_io_filter_config_t *io_filter_cfg, bool enable)
Configure I/O filters.
enum sdrv_xtrg_adc_sel sdrv_xtrg_adc_sel_e
tmux adc sel.
enum sdrv_xtrg_swt_event sdrv_xtrg_swt_event_e
Software Triggers events.
sdrv_xtrg_adc_sel
tmux adc sel.
Definition: sdrv_xtrg.h:870
@ SDRV_XTRG_ADC0
Definition: sdrv_xtrg.h:871
@ SDRV_XTRG_ADC2
Definition: sdrv_xtrg.h:873
@ SDRV_XTRG_ADC1
Definition: sdrv_xtrg.h:872
struct sdrv_xtrg_sse5_config sdrv_xtrg_sse5_config_t
SSE5 configuration structure.
void sdrv_xtrg_swdt_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_swdt_config_t *swdt_cfg, bool enable)
Configure SWDT Pulse Check.(Signal Watch Dog Timer).
void(* xtrg_callback_t)(sdrv_xtrg_t *ctrl, sdrv_xtrg_irq_status_e status, void *para)
XTRG callback function.
Definition: sdrv_xtrg.h:385
enum sdrv_xtrg_smon_sel sdrv_xtrg_smon_sel_e
SMON sel.
uint32_t sdrv_xtrg_acmp_rslt(sdrv_xtrg_t *ctrl, sdrv_xtrg_tmux_sel_e tmux_id, sdrv_xtrg_acmp_sel_e acmp_id)
Read tmux acmp result.
sdrv_xtrg_smon_sel
SMON sel.
Definition: sdrv_xtrg.h:518
@ SDRV_XTRG_SMON27
Definition: sdrv_xtrg.h:546
@ SDRV_XTRG_SMON22
Definition: sdrv_xtrg.h:541
@ SDRV_XTRG_SMON24
Definition: sdrv_xtrg.h:543
@ SDRV_XTRG_SMON17
Definition: sdrv_xtrg.h:536
@ SDRV_XTRG_SMON4
Definition: sdrv_xtrg.h:523
@ SDRV_XTRG_SMON19
Definition: sdrv_xtrg.h:538
@ SDRV_XTRG_SMON21
Definition: sdrv_xtrg.h:540
@ SDRV_XTRG_SMON3
Definition: sdrv_xtrg.h:522
@ SDRV_XTRG_SMON15
Definition: sdrv_xtrg.h:534
@ SDRV_XTRG_SMON26
Definition: sdrv_xtrg.h:545
@ SDRV_XTRG_SMON13
Definition: sdrv_xtrg.h:532
@ SDRV_XTRG_SMON30
Definition: sdrv_xtrg.h:549
@ SDRV_XTRG_SMON9
Definition: sdrv_xtrg.h:528
@ SDRV_XTRG_SMON7
Definition: sdrv_xtrg.h:526
@ SDRV_XTRG_SMON28
Definition: sdrv_xtrg.h:547
@ SDRV_XTRG_SMON29
Definition: sdrv_xtrg.h:548
@ SDRV_XTRG_SMON5
Definition: sdrv_xtrg.h:524
@ SDRV_XTRG_SMON11
Definition: sdrv_xtrg.h:530
@ SDRV_XTRG_SMON18
Definition: sdrv_xtrg.h:537
@ SDRV_XTRG_SMON20
Definition: sdrv_xtrg.h:539
@ SDRV_XTRG_SMON0
Definition: sdrv_xtrg.h:519
@ SDRV_XTRG_SMON23
Definition: sdrv_xtrg.h:542
@ SDRV_XTRG_SMON10
Definition: sdrv_xtrg.h:529
@ SDRV_XTRG_SMON16
Definition: sdrv_xtrg.h:535
@ SDRV_XTRG_SMON1
Definition: sdrv_xtrg.h:520
@ SDRV_XTRG_SMON31
Definition: sdrv_xtrg.h:550
@ SDRV_XTRG_SMON6
Definition: sdrv_xtrg.h:525
@ SDRV_XTRG_SMON2
Definition: sdrv_xtrg.h:521
@ SDRV_XTRG_SMON14
Definition: sdrv_xtrg.h:533
@ SDRV_XTRG_SMON8
Definition: sdrv_xtrg.h:527
@ SDRV_XTRG_SMON25
Definition: sdrv_xtrg.h:544
@ SDRV_XTRG_SMON12
Definition: sdrv_xtrg.h:531
void sdrv_xtrg_smux_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_config_t *cfg)
Configure signal mux, muxing input signals to SIG_o or IO_o.
enum sdrv_xtrg_pulse_check_edge sdrv_xtrg_pulse_check_edge_e
Pulse signal width edge.
sdrv_xtrg_i_group
xTRG signal groups, including input (i) and output (o) signals.
Definition: sdrv_xtrg.h:146
@ SDRV_XTRG_IO_o_GROUP
Definition: sdrv_xtrg.h:157
@ SDRV_XTRG_TID_i_GROUP
Definition: sdrv_xtrg.h:153
@ SDRV_XTRG_TRG_i_GROUP
Definition: sdrv_xtrg.h:149
@ SDRV_XTRG_SIG_o_GROUP
Definition: sdrv_xtrg.h:156
@ SDRV_XTRG_SIG_i_GROUP
Definition: sdrv_xtrg.h:150
@ SDRV_XTRG_SWT_i_GROUP
Definition: sdrv_xtrg.h:148
@ SDRV_XTRG_SYNC_o_GROUP
Definition: sdrv_xtrg.h:158
@ SDRV_XTRG_IO_i_GROUP
Definition: sdrv_xtrg.h:152
@ SDRV_XTRG_SSIG_GROUP
Definition: sdrv_xtrg.h:161
@ SDRV_XTRG_SYNC_i_GROUP
Definition: sdrv_xtrg.h:151
enum sdrv_xtrg_irq_status sdrv_xtrg_irq_status_e
xTRG interrupt event.
void sdrv_xtrg_smon_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_smon_config_t *smon_cfg, bool enable)
Configure SMON (Signal Monitor). The SMON monitors the input and output signal groups First level sel...
struct sdrv_xtrg_swdt_event_check_config sdrv_xtrg_swdt_event_check_config_t
SWDT event check configuration structure.
sdrv_xtrg_ssm_sel
ssm sel.
Definition: sdrv_xtrg.h:473
@ SDRV_XTRG_SSM11
Definition: sdrv_xtrg.h:485
@ SDRV_XTRG_SSM8
Definition: sdrv_xtrg.h:482
@ SDRV_XTRG_SSM1
Definition: sdrv_xtrg.h:475
@ SDRV_XTRG_SSM10
Definition: sdrv_xtrg.h:484
@ SDRV_XTRG_SSM7
Definition: sdrv_xtrg.h:481
@ SDRV_XTRG_SSM0
Definition: sdrv_xtrg.h:474
@ SDRV_XTRG_SSM12
Definition: sdrv_xtrg.h:486
@ SDRV_XTRG_SSM9
Definition: sdrv_xtrg.h:483
@ SDRV_XTRG_SSM14
Definition: sdrv_xtrg.h:488
@ SDRV_XTRG_SSM15
Definition: sdrv_xtrg.h:489
@ SDRV_XTRG_SSM2
Definition: sdrv_xtrg.h:476
@ SDRV_XTRG_SSM13
Definition: sdrv_xtrg.h:487
@ SDRV_XTRG_SSM4
Definition: sdrv_xtrg.h:478
@ SDRV_XTRG_SSM3
Definition: sdrv_xtrg.h:477
@ SDRV_XTRG_SSM5
Definition: sdrv_xtrg.h:479
@ SDRV_XTRG_SSM6
Definition: sdrv_xtrg.h:480
int sdrv_xtrg_irq_handler(uint32_t irq, void *ctrl)
XTRG irp handler.
sdrv_xtrg_pulse_check_mode
Pulse signal width check.
Definition: sdrv_xtrg.h:615
@ SDRV_XTRG_PULSE_CHECK_MODE_MORE_OR_LESS_WINDOW
Definition: sdrv_xtrg.h:617
@ SDRV_XTRG_PULSE_CHECK_MODE_BETWEEN_WINDOW
Definition: sdrv_xtrg.h:616
void sdrv_xtrg_sync_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_config_t *cfg, bool enable)
Enable or disable input signal synchronization.
uint32_t sdrv_xtrg_read_smon_cmp_err_status(sdrv_xtrg_t *ctrl)
sdrv xtrg read fault status.
enum sdrv_xtrg_smon_cmp_err sdrv_xtrg_smon_cmp_err_e
smon cmp err signal select.
enum sdrv_xtrg_swt_sel sdrv_xtrg_swt_sel_e
Software Triggers sel.
sdrv_xtrg_dma_sel
DMA sel.
Definition: sdrv_xtrg.h:777
@ SDRV_XTRG_DMA0
Definition: sdrv_xtrg.h:778
@ SDRV_XTRG_DMA1
Definition: sdrv_xtrg.h:779
enum sdrv_xtrg_swdt_sel sdrv_xtrg_swdt_sel_e
swdt sel.
void sdrv_xtrg_int_disable(sdrv_xtrg_t *ctrl, sdrv_xtrg_irq_status_e int_id)
sdrv xtrg int disable.
enum sdrv_xtrg_ssm_sel sdrv_xtrg_ssm_sel_e
ssm sel.
enum sdrv_xtrg_err_sel sdrv_xtrg_err_sel_e
SMON cmp err sem signal mode select.
void sdrv_xtrg_init(sdrv_xtrg_t *ctrl, xtrg_callback_t callback, void *para)
Init XTRG.
struct sdrv_xtrg_smon_config sdrv_xtrg_smon_config_t
SMON configuration structure.
struct sdrv_xtrg_swdt_config sdrv_xtrg_swdt_config_t
swdt conifg.
enum sdrv_xtrg_dma_sel sdrv_xtrg_dma_sel_e
DMA sel.
enum sdrv_xtrg_tmux0_drt_sel sdrv_xtrg_tmux0_drt_sel_e
tmux0 drt sel.
void sdrv_xtrg_io_out_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_config_t *cfg, bool enable)
Configure IO output, muxing SSIG_i,TRG_i,SIG_i,IO_i to IO_o.
enum sdrv_xtrg_acmp_sel sdrv_xtrg_acmp_sel_e
tmux acmp sel.
void sdrv_xtrg_tmux_done_monitor_cnt_config(sdrv_xtrg_t *ctrl, uint8_t timeOutValue)
sdrv set up timeout value from ADC
void sdrv_xtrg_syncmux_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_config_t *cfg)
Configure syncmux, muxing input sync signals to SYNC_o.
sdrv_xtrg_tmux_sel
tmux index sel.
Definition: sdrv_xtrg.h:856
@ SDRV_XTRG_TMUX6
Definition: sdrv_xtrg.h:863
@ SDRV_XTRG_TMUX2
Definition: sdrv_xtrg.h:859
@ SDRV_XTRG_TMUX7
Definition: sdrv_xtrg.h:864
@ SDRV_XTRG_TMUX1
Definition: sdrv_xtrg.h:858
@ SDRV_XTRG_TMUX0
Definition: sdrv_xtrg.h:857
@ SDRV_XTRG_TMUX4
Definition: sdrv_xtrg.h:861
@ SDRV_XTRG_TMUX5
Definition: sdrv_xtrg.h:862
@ SDRV_XTRG_TMUX3
Definition: sdrv_xtrg.h:860
void sdrv_xtrg_dma_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_dma_config_t *config, bool enable)
Enable or disable DMA0/1.
sdrv_xtrg_swdt_sel
swdt sel.
Definition: sdrv_xtrg.h:589
@ SDRV_XTRG_SWDT2
Definition: sdrv_xtrg.h:592
@ SDRV_XTRG_SWDT1
Definition: sdrv_xtrg.h:591
@ SDRV_XTRG_SWDT3
Definition: sdrv_xtrg.h:593
@ SDRV_XTRG_SWDT0
Definition: sdrv_xtrg.h:590
sdrv_xtrg_swdt_check_mode
swdt check mode.
Definition: sdrv_xtrg.h:654
@ SDRV_XTRG_SWDT_PULSE_CHECK
Definition: sdrv_xtrg.h:655
@ SDRV_XTRG_SWDT_EVENT_CHECK
Definition: sdrv_xtrg.h:656
sdrv_xtrg_dma_ssig_mode
Edge detect mode for dma.
Definition: sdrv_xtrg.h:769
@ SDRV_XTRG_SSIG_POSEDGE
Definition: sdrv_xtrg.h:770
@ SDRV_XTRG_SSIG_NEGEDGE
Definition: sdrv_xtrg.h:771
struct sdrv_xtrg_swdt_pulse_check_config sdrv_xtrg_swdt_pulse_check_config_t
SWDT pulse check configuration structure.
enum sdrv_xtrg_tmux0_indrt_sel sdrv_xtrg_tmux0_indrt_sel_e
tmux0 indrt sel.
sdrv_xtrg_err_sel
SMON cmp err sem signal mode select.
Definition: sdrv_xtrg.h:837
@ SDRV_SMON_COR_ERROR
Definition: sdrv_xtrg.h:838
@ SDRV_SMON_NULL
Definition: sdrv_xtrg.h:840
@ SDRV_SMON_UNC_ERROR
Definition: sdrv_xtrg.h:839
void sdrv_xtrg_sse5_config(sdrv_xtrg_t *ctrl, const sdrv_xtrg_sse5_config_t *sse5_cfg, bool enable)
Enable or disable SSE5. ctrl.
sdrv_xtrg_acmp_sel
tmux acmp sel.
Definition: sdrv_xtrg.h:879
@ SDRV_XTRG_ACMP2
Definition: sdrv_xtrg.h:882
@ SDRV_XTRG_ACMP3
Definition: sdrv_xtrg.h:883
@ SDRV_XTRG_ACMP1
Definition: sdrv_xtrg.h:881
@ SDRV_XTRG_ACMP0
Definition: sdrv_xtrg.h:880
sdrv_xtrg_irq_status
xTRG interrupt event.
Definition: sdrv_xtrg.h:370
@ SDRV_TMUX0_DONE_EVENT
Definition: sdrv_xtrg.h:372
@ SDRV_TMUX5_DONE_EVENT
Definition: sdrv_xtrg.h:377
@ SDRV_TMUX4_DONE_EVENT
Definition: sdrv_xtrg.h:376
@ SDRV_TMUX6_DONE_EVENT
Definition: sdrv_xtrg.h:378
@ SDRV_TMUX2_DONE_EVENT
Definition: sdrv_xtrg.h:374
@ SDRV_TMUX3_DONE_EVENT
Definition: sdrv_xtrg.h:375
@ SDRV_FAULT_EVENT
Definition: sdrv_xtrg.h:371
@ SDRV_TMUX1_DONE_EVENT
Definition: sdrv_xtrg.h:373
@ SDRV_TMUX7_DONE_EVENT
Definition: sdrv_xtrg.h:379
struct sdrv_xtrg_swt_config sdrv_xtrg_swt_config_t
Software Triggers config.
sdrv_xtrg_smon_cmp_err
smon cmp err signal select.
Definition: sdrv_xtrg.h:799
@ SDRV_XTRG_SMON_CMP_ERR0
Definition: sdrv_xtrg.h:800
@ SDRV_XTRG_SMON_CMP_ERR29
Definition: sdrv_xtrg.h:829
@ SDRV_XTRG_SMON_CMP_ERR28
Definition: sdrv_xtrg.h:828
@ SDRV_XTRG_SMON_CMP_ERR13
Definition: sdrv_xtrg.h:813
@ SDRV_XTRG_SMON_CMP_ERR19
Definition: sdrv_xtrg.h:819
@ SDRV_XTRG_SMON_CMP_ERR23
Definition: sdrv_xtrg.h:823
@ SDRV_XTRG_SMON_CMP_ERR18
Definition: sdrv_xtrg.h:818
@ SDRV_XTRG_SMON_CMP_ERR22
Definition: sdrv_xtrg.h:822
@ SDRV_XTRG_SMON_CMP_ERR9
Definition: sdrv_xtrg.h:809
@ SDRV_XTRG_SMON_CMP_ERR6
Definition: sdrv_xtrg.h:806
@ SDRV_XTRG_SMON_CMP_ERR20
Definition: sdrv_xtrg.h:820
@ SDRV_XTRG_SMON_CMP_ERR5
Definition: sdrv_xtrg.h:805
@ SDRV_XTRG_SMON_CMP_ERR10
Definition: sdrv_xtrg.h:810
@ SDRV_XTRG_SMON_CMP_ERR12
Definition: sdrv_xtrg.h:812
@ SDRV_XTRG_SMON_CMP_ERR21
Definition: sdrv_xtrg.h:821
@ SDRV_XTRG_SMON_CMP_ERR14
Definition: sdrv_xtrg.h:814
@ SDRV_XTRG_SMON_CMP_ERR17
Definition: sdrv_xtrg.h:817
@ SDRV_XTRG_SMON_CMP_ERR2
Definition: sdrv_xtrg.h:802
@ SDRV_XTRG_SMON_CMP_ERR3
Definition: sdrv_xtrg.h:803
@ SDRV_XTRG_SMON_CMP_ERR25
Definition: sdrv_xtrg.h:825
@ SDRV_XTRG_SMON_CMP_ERR4
Definition: sdrv_xtrg.h:804
@ SDRV_XTRG_SMON_CMP_ERR15
Definition: sdrv_xtrg.h:815
@ SDRV_XTRG_SMON_CMP_ERR26
Definition: sdrv_xtrg.h:826
@ SDRV_XTRG_SMON_CMP_ERR31
Definition: sdrv_xtrg.h:831
@ SDRV_XTRG_SMON_CMP_ERR1
Definition: sdrv_xtrg.h:801
@ SDRV_XTRG_SMON_CMP_ERR27
Definition: sdrv_xtrg.h:827
@ SDRV_XTRG_SMON_CMP_ERR16
Definition: sdrv_xtrg.h:816
@ SDRV_XTRG_SMON_CMP_ERR8
Definition: sdrv_xtrg.h:808
@ SDRV_XTRG_SMON_CMP_ERR30
Definition: sdrv_xtrg.h:830
@ SDRV_XTRG_SMON_CMP_ERR24
Definition: sdrv_xtrg.h:824
@ SDRV_XTRG_SMON_CMP_ERR7
Definition: sdrv_xtrg.h:807
@ SDRV_XTRG_SMON_CMP_ERR11
Definition: sdrv_xtrg.h:811
enum sdrv_xtrg_tmux_sel sdrv_xtrg_tmux_sel_e
tmux index sel.
sdrv_xtrg_tmux0_indrt_sel
tmux0 indrt sel.
Definition: sdrv_xtrg.h:707
@ SDRV_XTRG_TMUX0_INDRT6
Definition: sdrv_xtrg.h:714
@ SDRV_XTRG_TMUX0_INDRT1
Definition: sdrv_xtrg.h:709
@ SDRV_XTRG_TMUX0_INDRT5
Definition: sdrv_xtrg.h:713
@ SDRV_XTRG_TMUX0_INDRT2
Definition: sdrv_xtrg.h:710
@ SDRV_XTRG_TMUX0_INDRT7
Definition: sdrv_xtrg.h:715
@ SDRV_XTRG_TMUX0_INDRT0
Definition: sdrv_xtrg.h:708
@ SDRV_XTRG_TMUX0_INDRT3
Definition: sdrv_xtrg.h:711
@ SDRV_XTRG_TMUX0_INDRT4
Definition: sdrv_xtrg.h:712
void sdrv_xtrg_smon_cmp_err_config(sdrv_xtrg_t *ctrl, sdrv_xtrg_smon_cmp_err_config_t *xtrg_smon_cmp_err_config, bool enable)
Smon cmp err config.
struct sdrv_xtrg_smon_cmp_err_config sdrv_xtrg_smon_cmp_err_config_t
SMON cmp err config struct.
struct sdrv_xtrg_tmux_indrt_config sdrv_xtrg_tmux_indrt_config_t
Trigger Mux (tmux) configuration.
sdrv_xtrg_edge
Edge detect mode for I/O filter and SSE5.
Definition: sdrv_xtrg.h:412
@ SDRV_XTRG_NEGEDGE
Definition: sdrv_xtrg.h:414
@ SDRV_XTRG_POSEDGE
Definition: sdrv_xtrg.h:413
@ SDRV_XTRG_BOTHEDGE
Definition: sdrv_xtrg.h:415
sdrv_xtrg_event_trigger_mode
event trigger mode.
Definition: sdrv_xtrg.h:578
@ SDRV_XTRG_EVENT_TRIGGER_MODE_HIGH
Definition: sdrv_xtrg.h:582
@ SDRV_XTRG_EVENT_TRIGGER_MODE_NEGEDGE
Definition: sdrv_xtrg.h:580
@ SDRV_XTRG_EVENT_TRIGGER_MODE_POSEDGE
Definition: sdrv_xtrg.h:579
@ SDRV_XTRG_EVENT_TRIGGER_MODE_TOGGLE
Definition: sdrv_xtrg.h:581
@ SDRV_XTRG_EVENT_TRIGGER_MODE_LOW
Definition: sdrv_xtrg.h:583
XTRG configurations.
Definition: sdrv_xtrg.h:421
uint32_t sig_o
Definition: sdrv_xtrg.h:424
uint32_t sig_i
Definition: sdrv_xtrg.h:423
uint32_t sig
Definition: sdrv_xtrg.h:422
DMA configuration.
Definition: sdrv_xtrg.h:785
sdrv_xtrg_dma_ssig_mode_e ssig_mode
Definition: sdrv_xtrg.h:790
sdrv_xtrg_dma_sel_e dma_sel
Definition: sdrv_xtrg.h:793
sdrv_xtrg_ssm_sel_e ssm_sel
Definition: sdrv_xtrg.h:787
I/O Filter configuration.
Definition: sdrv_xtrg.h:671
uint32_t neg_edge_intvl
Definition: sdrv_xtrg.h:683
sdrv_xtrg_edge_e edge
Definition: sdrv_xtrg.h:676
uint32_t sampling_intvl
Definition: sdrv_xtrg.h:686
uint32_t sig
Definition: sdrv_xtrg.h:673
uint32_t pos_edge_intvl
Definition: sdrv_xtrg.h:682
Definition: sdrv_xtrg.h:388
uint32_t syncmux_idx
Definition: sdrv_xtrg.h:399
uint32_t sig_nr
Definition: sdrv_xtrg.h:390
uint32_t sync_dis_off
Definition: sdrv_xtrg.h:405
uint32_t sse_idx
Definition: sdrv_xtrg.h:393
uint32_t smon_idx
Definition: sdrv_xtrg.h:402
uint32_t smux_idx
Definition: sdrv_xtrg.h:396
SMON cmp err config struct.
Definition: sdrv_xtrg.h:846
sdrv_xtrg_err_sel_e err_sel
Definition: sdrv_xtrg.h:850
sdrv_xtrg_smon_cmp_err_e smon_cmp_err
Definition: sdrv_xtrg.h:848
SMON configuration structure.
Definition: sdrv_xtrg.h:556
uint32_t sig_in_sel
Definition: sdrv_xtrg.h:562
sdrv_xtrg_smon_sel_e smon_sel
Definition: sdrv_xtrg.h:572
uint32_t sig_input1_sel
Definition: sdrv_xtrg.h:566
uint32_t sig_out_sel
Definition: sdrv_xtrg.h:559
uint32_t sig_input0_sel
Definition: sdrv_xtrg.h:567
bool change_pol_in0
Definition: sdrv_xtrg.h:570
SSE5 configuration structure.
Definition: sdrv_xtrg.h:495
uint32_t synthesis_val
Definition: sdrv_xtrg.h:509
bool edge_detect
Definition: sdrv_xtrg.h:500
sdrv_xtrg_edge_e edge
Definition: sdrv_xtrg.h:502
struct sdrv_xtrg_sse5_config::@74 in[5]
sdrv_xtrg_ssm_sel_e ssm_sel
Definition: sdrv_xtrg.h:511
uint32_t sig
Definition: sdrv_xtrg.h:498
swdt conifg.
Definition: sdrv_xtrg.h:662
sdrv_xtrg_swdt_check_mode_e xtrg_swdt_check_mode
Definition: sdrv_xtrg.h:665
sdrv_xtrg_swdt_event_check_config_t xtrg_swdt_event_check_config
Definition: sdrv_xtrg.h:664
sdrv_xtrg_swdt_pulse_check_config_t xtrg_swdt_pulse_check_config
Definition: sdrv_xtrg.h:663
SWDT event check configuration structure.
Definition: sdrv_xtrg.h:599
uint32_t swdt_event_check_window
Definition: sdrv_xtrg.h:604
sdrv_xtrg_swdt_sel_e swdt_sel
Definition: sdrv_xtrg.h:609
sdrv_xtrg_event_trigger_mode_e event_trg_mode
Definition: sdrv_xtrg.h:607
uint32_t swdt_sig_sel
Definition: sdrv_xtrg.h:601
SWDT pulse check configuration structure.
Definition: sdrv_xtrg.h:631
sdrv_xtrg_pulse_check_mode_e swdt_pulse_check_mode
Definition: sdrv_xtrg.h:636
sdrv_xtrg_swdt_sel_e swdt_sel
Definition: sdrv_xtrg.h:648
sdrv_xtrg_pulse_check_edge_e swdt_pulse_check_edge
Definition: sdrv_xtrg.h:639
uint32_t swdt_max_check_window
Definition: sdrv_xtrg.h:642
uint32_t swdt_sig_sel
Definition: sdrv_xtrg.h:633
uint32_t swdt_min_check_window
Definition: sdrv_xtrg.h:645
Software Triggers config.
Definition: sdrv_xtrg.h:464
sdrv_xtrg_swt_sel_e swt
Definition: sdrv_xtrg.h:465
sdrv_xtrg_swt_event_e event
Definition: sdrv_xtrg.h:466
uint32_t width
Definition: sdrv_xtrg.h:467
Trigger Mux (tmux) configuration.
Definition: sdrv_xtrg.h:721
uint32_t tid
Definition: sdrv_xtrg.h:726
uint32_t trigger_sig
Definition: sdrv_xtrg.h:723
uint8_t target_lut[8]
Definition: sdrv_xtrg.h:731
sdrv_xtrg_tmux0_drt_sel_e tmux0_drt_sel
Definition: sdrv_xtrg.h:734
Trigger Mux (tmux) configuration.
Definition: sdrv_xtrg.h:740
sdrv_xtrg_tmux0_indrt_sel_e tmux0_indrt_sel
Definition: sdrv_xtrg.h:762
uint32_t tid_pool[2]
Definition: sdrv_xtrg.h:759
uint32_t trigger_sig
Definition: sdrv_xtrg.h:742
uint8_t target_lut[8]
Definition: sdrv_xtrg.h:755
uint32_t term_val
Definition: sdrv_xtrg.h:746
uint32_t term_tid
Definition: sdrv_xtrg.h:750
XTRG low level device.
Definition: sdrv_xtrg.h:430
paddr_t base
Definition: sdrv_xtrg.h:431
int irq
Definition: sdrv_xtrg.h:432
xtrg_callback_t cb
Definition: sdrv_xtrg.h:433
void * para
Definition: sdrv_xtrg.h:434