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