1 #ifndef __SILICON_LABS_DMADRV_SIGNALS_S2_H__
2 #define __SILICON_LABS_DMADRV_SIGNALS_S2_H__
3
4 #include "em_device.h"
5 #include "ecode.h"
6 #include "sl_enum.h"
7 #include "em_ldma.h"
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 /***************************************************************************//**
14 * @addtogroup dmadrv
15 * @{
16 ******************************************************************************/
17
18 #if defined(LDMAXBAR_COUNT) && (LDMAXBAR_COUNT > 0)
19
20 /// Maximum length of one DMA transfer.
21 #define DMADRV_MAX_XFER_COUNT ((int)((_LDMA_CH_CTRL_XFERCNT_MASK >> _LDMA_CH_CTRL_XFERCNT_SHIFT) + 1))
22
23 /// Peripherals that can trigger LDMA transfers.
SL_ENUM_GENERIC(DMADRV_PeripheralSignal_t,uint32_t)24 SL_ENUM_GENERIC(DMADRV_PeripheralSignal_t, uint32_t) {
25 dmadrvPeripheralSignal_NONE = LDMAXBAR_CH_REQSEL_SOURCESEL_NONE, ///< No peripheral selected for DMA triggering.
26 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0
27 dmadrvPeripheralSignal_TIMER0_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
28 #endif
29 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1
30 dmadrvPeripheralSignal_TIMER0_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
31 #endif
32 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2
33 dmadrvPeripheralSignal_TIMER0_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
34 #endif
35 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF
36 dmadrvPeripheralSignal_TIMER0_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
37 #endif
38 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0
39 dmadrvPeripheralSignal_TIMER1_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
40 #endif
41 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1
42 dmadrvPeripheralSignal_TIMER1_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
43 #endif
44 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2
45 dmadrvPeripheralSignal_TIMER1_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
46 #endif
47 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF
48 dmadrvPeripheralSignal_TIMER1_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
49 #endif
50 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV
51 dmadrvPeripheralSignal_USART0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
52 #endif
53 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT
54 dmadrvPeripheralSignal_USART0_RXDATAVRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
55 #endif
56 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL
57 dmadrvPeripheralSignal_USART0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
58 #endif
59 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT
60 dmadrvPeripheralSignal_USART0_TXBLRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
61 #endif
62 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY
63 dmadrvPeripheralSignal_USART0_TXEMPTY = LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
64 #endif
65 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV
66 dmadrvPeripheralSignal_USART1_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
67 #endif
68 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT
69 dmadrvPeripheralSignal_USART1_RXDATAVRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
70 #endif
71 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL
72 dmadrvPeripheralSignal_USART1_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
73 #endif
74 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT
75 dmadrvPeripheralSignal_USART1_TXBLRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
76 #endif
77 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY
78 dmadrvPeripheralSignal_USART1_TXEMPTY = LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
79 #endif
80 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAV
81 dmadrvPeripheralSignal_USART2_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
82 #endif
83 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAVRIGHT
84 dmadrvPeripheralSignal_USART2_RXDATAVRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAVRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
85 #endif
86 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBL
87 dmadrvPeripheralSignal_USART2_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
88 #endif
89 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBLRIGHT
90 dmadrvPeripheralSignal_USART2_TXBLRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBLRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
91 #endif
92 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXEMPTY
93 dmadrvPeripheralSignal_USART2_TXEMPTY = LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXEMPTY | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
94 #endif
95 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV
96 dmadrvPeripheralSignal_I2C0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0,
97 #endif
98 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL
99 dmadrvPeripheralSignal_I2C0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0,
100 #endif
101 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV
102 dmadrvPeripheralSignal_I2C1_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1,
103 #endif
104 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL
105 dmadrvPeripheralSignal_I2C1_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1,
106 #endif
107 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_AGCRSSI
108 dmadrvPeripheralSignal_AGC_RSSI = LDMAXBAR_CH_REQSEL_SIGSEL_AGCRSSI | LDMAXBAR_CH_REQSEL_SOURCESEL_AGC,
109 #endif
110 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERBOF
111 dmadrvPeripheralSignal_PROTIMER_BOF = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERBOF | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
112 #endif
113 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC0
114 dmadrvPeripheralSignal_PROTIMER_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
115 #endif
116 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC1
117 dmadrvPeripheralSignal_PROTIMER_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
118 #endif
119 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC2
120 dmadrvPeripheralSignal_PROTIMER_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
121 #endif
122 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC3
123 dmadrvPeripheralSignal_PROTIMER_CC3 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC3 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
124 #endif
125 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC4
126 dmadrvPeripheralSignal_PROTIMER_CC4 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC4 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
127 #endif
128 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERPOF
129 dmadrvPeripheralSignal_PROTIMER_POF = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERPOF | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
130 #endif
131 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERWOF
132 dmadrvPeripheralSignal_PROTIMER_WOF = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERWOF | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
133 #endif
134 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_MODEMDEBUG
135 dmadrvPeripheralSignal_MODEM_DEBUG = LDMAXBAR_CH_REQSEL_SIGSEL_MODEMDEBUG | LDMAXBAR_CH_REQSEL_SOURCESEL_MODEM,
136 #endif
137 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN
138 dmadrvPeripheralSignal_IADC0_IADC_SCAN = LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN | LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0,
139 #endif
140 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE
141 dmadrvPeripheralSignal_IADC0_IADC_SINGLE = LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE | LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0,
142 #endif
143 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_IMEMWDATA
144 dmadrvPeripheralSignal_IMEM_WDATA = LDMAXBAR_CH_REQSEL_SIGSEL_IMEMWDATA | LDMAXBAR_CH_REQSEL_SOURCESEL_IMEM,
145 #endif
146 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0
147 dmadrvPeripheralSignal_TIMER2_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
148 #endif
149 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1
150 dmadrvPeripheralSignal_TIMER2_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
151 #endif
152 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2
153 dmadrvPeripheralSignal_TIMER2_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
154 #endif
155 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF
156 dmadrvPeripheralSignal_TIMER2_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
157 #endif
158 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0
159 dmadrvPeripheralSignal_TIMER3_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
160 #endif
161 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1
162 dmadrvPeripheralSignal_TIMER3_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
163 #endif
164 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2
165 dmadrvPeripheralSignal_TIMER3_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
166 #endif
167 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF
168 dmadrvPeripheralSignal_TIMER3_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
169 #endif
170 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUART0TXFL
171 dmadrvPeripheralSignal_EUART0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUART0TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUART0, ///< Trig on EUART0_TXBL.
172 #endif
173 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUART0RXFL
174 dmadrvPeripheralSignal_EUART0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUART0RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUART0, ///< Trig on EUART0_RXBL.
175 #endif
176 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL
177 dmadrvPeripheralSignal_EUSART0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0, ///< Trig on EUART0_TXBL.
178 #endif
179 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL
180 dmadrvPeripheralSignal_EUSART0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0, ///< Trig on EUART0_RXBL.
181 #endif
182 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL
183 dmadrvPeripheralSignal_EUSART1_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1, ///< Trig on EUART1_TXBL.
184 #endif
185 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL
186 dmadrvPeripheralSignal_EUSART1_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1, ///< Trig on EUART1_RXBL.
187 #endif
188 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL
189 dmadrvPeripheralSignal_EUSART2_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2, ///< Trig on EUART2_TXBL.
190 #endif
191 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL
192 dmadrvPeripheralSignal_EUSART2_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2, ///< Trig on EUART2_RXBL.
193 #endif
194 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3TXFL
195 dmadrvPeripheralSignal_EUSART3_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART3, ///< Trig on EUART2_TXBL.
196 #endif
197 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3RXFL
198 dmadrvPeripheralSignal_EUSART3_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART3, ///< Trig on EUART3_RXBL.
199 #endif
200 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4TXFL
201 dmadrvPeripheralSignal_EUSART4_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART4, ///< Trig on EUART4_TXBL.
202 #endif
203 #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4RXFL
204 dmadrvPeripheralSignal_EUSART4_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART4, ///< Trig on EUART4_RXBL.
205 #endif
206 };
207
208 /// Data size of one LDMA transfer item.
SL_ENUM(DMADRV_DataSize_t)209 SL_ENUM(DMADRV_DataSize_t) {
210 dmadrvDataSize1 = ldmaCtrlSizeByte, ///< Byte
211 dmadrvDataSize2 = ldmaCtrlSizeHalf, ///< Halfword
212 dmadrvDataSize4 = ldmaCtrlSizeWord ///< Word
213 };
214
215 #endif /* defined( LDMAXBAR_COUNT ) && ( LDMAXBAR_COUNT == 1 ) */
216
217 /** @} (end addtogroup dmadrv) */
218
219 #ifdef __cplusplus
220 }
221 #endif
222
223 #endif /* __SILICON_LABS_DMADRV_SIGNALS_S2_H__ */
224