1 /***************************************************************************//**
2  * @file
3  * @brief Peripheral Reflex System (PRS) peripheral API
4  *******************************************************************************
5  * # License
6  * <b>Copyright 2018 Silicon Laboratories Inc. www.silabs.com</b>
7  *******************************************************************************
8  *
9  * SPDX-License-Identifier: Zlib
10  *
11  * The licensor of this software is Silicon Laboratories Inc.
12  *
13  * This software is provided 'as-is', without any express or implied
14  * warranty. In no event will the authors be held liable for any damages
15  * arising from the use of this software.
16  *
17  * Permission is granted to anyone to use this software for any purpose,
18  * including commercial applications, and to alter it and redistribute it
19  * freely, subject to the following restrictions:
20  *
21  * 1. The origin of this software must not be misrepresented; you must not
22  *    claim that you wrote the original software. If you use this software
23  *    in a product, an acknowledgment in the product documentation would be
24  *    appreciated but is not required.
25  * 2. Altered source versions must be plainly marked as such, and must not be
26  *    misrepresented as being the original software.
27  * 3. This notice may not be removed or altered from any source distribution.
28  *
29  ******************************************************************************/
30 
31 #ifndef EM_PRS_H
32 #define EM_PRS_H
33 
34 #include "em_device.h"
35 #include "em_gpio.h"
36 
37 #include <stdbool.h>
38 #include <stddef.h>
39 
40 #if defined(PRS_COUNT) && (PRS_COUNT > 0)
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 /***************************************************************************//**
47  * @addtogroup prs
48  * @{
49  ******************************************************************************/
50 
51 /*******************************************************************************
52  *******************************   DEFINES   ***********************************
53  ******************************************************************************/
54 
55 #if defined(_SILICON_LABS_32B_SERIES_2)
56 /** PRS Synchronous channel count. */
57   #define PRS_SYNC_CHAN_COUNT    PRS_SYNC_CH_NUM
58 /** PRS Asynchronous channel count. */
59   #define PRS_ASYNC_CHAN_COUNT   PRS_ASYNC_CH_NUM
60 #elif defined(_EFM32_GECKO_FAMILY)
61 /** PRS Synchronous channel count. */
62   #define PRS_SYNC_CHAN_COUNT    PRS_CHAN_COUNT
63 /** PRS Asynchronous channel count. */
64   #define PRS_ASYNC_CHAN_COUNT   0
65 #else
66 /** PRS Synchronous channel count. */
67   #define PRS_SYNC_CHAN_COUNT    PRS_CHAN_COUNT
68 /** PRS Asynchronous channel count. */
69   #define PRS_ASYNC_CHAN_COUNT   PRS_CHAN_COUNT
70 #endif
71 
72 #if !defined(_EFM32_GECKO_FAMILY)
73 /** PRS asynchronous support */
74 #define PRS_ASYNC_SUPPORTED      1
75 #endif
76 
77 /** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */
78 /* Some devices have renamed signals so some of these signals are mapped to
79    common names. */
80 #if defined(PRS_USART0_RXDATAV)
81 #define PRS_USART0_RXDATA        PRS_USART0_RXDATAV
82 #endif
83 #if defined(PRS_USART1_RXDATAV)
84 #define PRS_USART1_RXDATA        PRS_USART1_RXDATAV
85 #endif
86 #if defined(PRS_USART2_RXDATAV)
87 #define PRS_USART2_RXDATA        PRS_USART2_RXDATAV
88 #endif
89 #if defined(PRS_BURTC_OVERFLOW)
90 #define PRS_BURTC_OF             PRS_BURTC_OVERFLOW
91 #endif
92 #if defined(PRS_BURTC_COMP0)
93 #define PRS_BURTC_COMP           PRS_BURTC_COMP0
94 #endif
95 /** @endcond */
96 
97 /*******************************************************************************
98  ********************************   ENUMS   ************************************
99  ******************************************************************************/
100 
101 /** PRS Channel type. */
102 typedef enum {
103   prsTypeAsync,  /**< Asynchronous channel type. */
104   prsTypeSync    /**< Synchronous channel type.*/
105 } PRS_ChType_t;
106 
107 /** Edge detection type. */
108 typedef enum {
109   prsEdgeOff,  /**< Leave signal as is. */
110   prsEdgePos,  /**< Generate pulses on positive edge. */
111   prsEdgeNeg,  /**< Generate pulses on negative edge. */
112   prsEdgeBoth  /**< Generate pulses on both edges. */
113 } PRS_Edge_TypeDef;
114 
115 #if defined(_PRS_ASYNC_CH_CTRL_FNSEL_MASK)
116 /** Logic functions that can be used when combining two PRS channels. */
117 typedef enum {
118   prsLogic_Zero        = _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO, /**< Logical 0. */
119   prsLogic_A_NOR_B     = _PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B,      /**< A NOR B. */
120   prsLogic_NOT_A_AND_B = _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B,  /**< (!A) NOR B. */
121   prsLogic_NOT_A       = _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A,        /**< !A. */
122   prsLogic_A_AND_NOT_B = _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B,  /**< A AND (!B). */
123   prsLogic_NOT_B       = _PRS_ASYNC_CH_CTRL_FNSEL_NOT_B,        /**< !B. */
124   prsLogic_A_XOR_B     = _PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B,      /**< A XOR B. */
125   prsLogic_A_NAND_B    = _PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B,     /**< A NAND B. */
126   prsLogic_A_AND_B     = _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B,      /**< A AND B. */
127   prsLogic_A_XNOR_B    = _PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B,     /**< A XNOR B. */
128   prsLogic_B           = _PRS_ASYNC_CH_CTRL_FNSEL_B,            /**< B. */
129   prsLogic_NOT_A_OR_B  = _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B,   /**< (!A) OR B. */
130   prsLogic_A           = _PRS_ASYNC_CH_CTRL_FNSEL_A,            /**< A. */
131   prsLogic_A_OR_NOT_B  = _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B,   /**< A OR (!B). */
132   prsLogic_A_OR_B      = _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B,       /**< A OR B. */
133   prsLogic_One         = _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE,  /**< Logical 1. */
134 } PRS_Logic_t;
135 #endif
136 
137 /** PRS Signal. */
138 typedef enum {
139 #if defined(_PRS_SYNC_CH_CTRL_SOURCESEL_MASK)
140   prsSignalNone       = PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT | (0x0 << _PRS_SYNC_CH_CTRL_SIGSEL_SHIFT), /**< No Signal. */
141   prsSignalSW         = PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT | (0x1 << _PRS_SYNC_CH_CTRL_SIGSEL_SHIFT), /**< Software-reserved Signal. */
142 #else
143   prsSignalNone       = PRS_CH_CTRL_SOURCESEL_NONE | (0x0 << _PRS_CH_CTRL_SIGSEL_SHIFT),  /**< No Signal. */
144   prsSignalSW         = PRS_CH_CTRL_SOURCESEL_NONE | (0x1 << _PRS_CH_CTRL_SIGSEL_SHIFT),  /**< Software-reserved Signal. */
145 #endif
146 
147 #if defined(PRS_PRS_CH11)
148   prsSignalPRS_CH0  = PRS_PRS_CH0,  /**< PRS_CH0  signal */
149   prsSignalPRS_CH1  = PRS_PRS_CH1,  /**< PRS_CH1  signal */
150   prsSignalPRS_CH2  = PRS_PRS_CH2,  /**< PRS_CH2  signal */
151   prsSignalPRS_CH3  = PRS_PRS_CH3,  /**< PRS_CH3  signal */
152   prsSignalPRS_CH4  = PRS_PRS_CH4,  /**< PRS_CH4  signal */
153   prsSignalPRS_CH5  = PRS_PRS_CH5,  /**< PRS_CH5  signal */
154   prsSignalPRS_CH6  = PRS_PRS_CH6,  /**< PRS_CH6  signal */
155   prsSignalPRS_CH7  = PRS_PRS_CH7,  /**< PRS_CH7  signal */
156   prsSignalPRS_CH8  = PRS_PRS_CH8,  /**< PRS_CH8  signal */
157   prsSignalPRS_CH9  = PRS_PRS_CH9,  /**< PRS_CH9  signal */
158   prsSignalPRS_CH10 = PRS_PRS_CH10, /**< PRS_CH10 signal */
159   prsSignalPRS_CH11 = PRS_PRS_CH11, /**< PRS_CH11 signal */
160 #endif
161 #if defined(PRS_PRS_CH23)
162   prsSignalPRS_CH12 = PRS_PRS_CH12, /**< PRS_CH12 signal */
163   prsSignalPRS_CH13 = PRS_PRS_CH13, /**< PRS_CH13 signal */
164   prsSignalPRS_CH14 = PRS_PRS_CH14, /**< PRS_CH14 signal */
165   prsSignalPRS_CH15 = PRS_PRS_CH15, /**< PRS_CH15 signal */
166   prsSignalPRS_CH16 = PRS_PRS_CH16, /**< PRS_CH16 signal */
167   prsSignalPRS_CH17 = PRS_PRS_CH17, /**< PRS_CH17 signal */
168   prsSignalPRS_CH18 = PRS_PRS_CH18, /**< PRS_CH18 signal */
169   prsSignalPRS_CH19 = PRS_PRS_CH19, /**< PRS_CH19 signal */
170   prsSignalPRS_CH20 = PRS_PRS_CH20, /**< PRS_CH20 signal */
171   prsSignalPRS_CH21 = PRS_PRS_CH21, /**< PRS_CH21 signal */
172   prsSignalPRS_CH22 = PRS_PRS_CH22, /**< PRS_CH22 signal */
173   prsSignalPRS_CH23 = PRS_PRS_CH23, /**< PRS_CH23 signal */
174 #endif
175 
176 #if defined(PRS_ADC0_SINGLE)
177   prsSignalADC0_SINGLE = PRS_ADC0_SINGLE, /**< ADC0_SINGLE  signal */
178   prsSignalADC0_SCAN   = PRS_ADC0_SCAN,   /**< ADC0_SCAN  signal */
179 #endif
180 #if defined(PRS_ADC1_SINGLE)
181   prsSignalADC1_SINGLE = PRS_ADC1_SINGLE, /**< ADC1_SINGLE  signal */
182   prsSignalADC1_SCAN   = PRS_ADC1_SCAN,   /**< ADC1_SCAN  signal */
183 #endif
184 
185   /* Timer Signals */
186 #if defined(TIMER0)
187   prsSignalTIMER0_UF  = PRS_TIMER0_UF,  /**< TIMER0 underflow Signal. */
188   prsSignalTIMER0_OF  = PRS_TIMER0_OF,  /**< TIMER0 overflow Signal. */
189   prsSignalTIMER0_CC0 = PRS_TIMER0_CC0, /**< TIMER0 capture/compare channel 0 Signal. */
190   prsSignalTIMER0_CC1 = PRS_TIMER0_CC1, /**< TIMER0 capture/compare channel 1 Signal. */
191   prsSignalTIMER0_CC2 = PRS_TIMER0_CC2, /**< TIMER0 capture/compare channel 2 Signal. */
192 #endif
193 #if defined(TIMER1)
194   prsSignalTIMER1_UF  = PRS_TIMER1_UF,  /**< TIMER1 underflow Signal. */
195   prsSignalTIMER1_OF  = PRS_TIMER1_OF,  /**< TIMER1 overflow Signal. */
196   prsSignalTIMER1_CC0 = PRS_TIMER1_CC0, /**< TIMER1 capture/compare channel 0 Signal. */
197   prsSignalTIMER1_CC1 = PRS_TIMER1_CC1, /**< TIMER1 capture/compare channel 1 Signal. */
198   prsSignalTIMER1_CC2 = PRS_TIMER1_CC2, /**< TIMER1 capture/compare channel 2 Signal. */
199 #endif
200 #if defined(TIMER2)
201   prsSignalTIMER2_UF  = PRS_TIMER2_UF,  /**< TIMER2 underflow Signal. */
202   prsSignalTIMER2_OF  = PRS_TIMER2_OF,  /**< TIMER2 overflow Signal. */
203   prsSignalTIMER2_CC0 = PRS_TIMER2_CC0, /**< TIMER2 capture/compare channel 0 Signal. */
204   prsSignalTIMER2_CC1 = PRS_TIMER2_CC1, /**< TIMER2 capture/compare channel 1 Signal. */
205   prsSignalTIMER2_CC2 = PRS_TIMER2_CC2, /**< TIMER2 capture/compare channel 2 Signal. */
206 #endif
207 #if defined(TIMER3)
208   prsSignalTIMER3_UF  = PRS_TIMER3_UF,  /**< TIMER3 underflow Signal. */
209   prsSignalTIMER3_OF  = PRS_TIMER3_OF,  /**< TIMER3 overflow Signal. */
210   prsSignalTIMER3_CC0 = PRS_TIMER3_CC0, /**< TIMER3 capture/compare channel 0 Signal. */
211   prsSignalTIMER3_CC1 = PRS_TIMER3_CC1, /**< TIMER3 capture/compare channel 1 Signal. */
212   prsSignalTIMER3_CC2 = PRS_TIMER3_CC2, /**< TIMER3 capture/compare channel 2 Signal. */
213 #if defined(PRS_TIMER1_CC3)
214   prsSignalTIMER1_CC3 = PRS_TIMER1_CC3, /**< TIMER3 capture/compare channel 3 Signal. */
215 #endif
216 #endif
217 #if defined(TIMER4)
218   prsSignalTIMER4_UF  = PRS_TIMER4_UF,  /**< TIMER4 underflow Signal. */
219   prsSignalTIMER4_OF  = PRS_TIMER4_OF,  /**< TIMER4 overflow Signal. */
220   prsSignalTIMER4_CC0 = PRS_TIMER4_CC0, /**< TIMER4 capture/compare channel 0 Signal. */
221   prsSignalTIMER4_CC1 = PRS_TIMER4_CC1, /**< TIMER4 capture/compare channel 1 Signal. */
222   prsSignalTIMER4_CC2 = PRS_TIMER4_CC2, /**< TIMER4 capture/compare channel 2 Signal. */
223 #endif
224 #if defined(TIMER5)
225   prsSignalTIMER5_UF  = PRS_TIMER5_UF,  /**< TIMER5 underflow Signal. */
226   prsSignalTIMER5_OF  = PRS_TIMER5_OF,  /**< TIMER5 overflow Signal. */
227   prsSignalTIMER5_CC0 = PRS_TIMER5_CC0, /**< TIMER5 capture/compare channel 0 Signal. */
228   prsSignalTIMER5_CC1 = PRS_TIMER5_CC1, /**< TIMER5 capture/compare channel 1 Signal. */
229   prsSignalTIMER5_CC2 = PRS_TIMER5_CC2, /**< TIMER5 capture/compare channel 2 Signal. */
230 #endif
231 #if defined(TIMER6)
232   prsSignalTIMER6_UF  = PRS_TIMER6_UF,  /**< TIMER6 underflow Signal. */
233   prsSignalTIMER6_OF  = PRS_TIMER6_OF,  /**< TIMER6 overflow Signal. */
234   prsSignalTIMER6_CC0 = PRS_TIMER6_CC0, /**< TIMER6 capture/compare channel 0 Signal. */
235   prsSignalTIMER6_CC1 = PRS_TIMER6_CC1, /**< TIMER6 capture/compare channel 1 Signal. */
236   prsSignalTIMER6_CC2 = PRS_TIMER6_CC2, /**< TIMER6 capture/compare channel 2 Signal. */
237 #endif
238 #if defined(TIMER7)
239   prsSignalTIMER7_UF  = PRS_TIMER7_UF,  /**< TIMER7 underflow Signal. */
240   prsSignalTIMER7_OF  = PRS_TIMER7_OF,  /**< TIMER7 overflow Signal. */
241   prsSignalTIMER7_CC0 = PRS_TIMER7_CC0, /**< TIMER7 capture/compare channel 0 Signal. */
242   prsSignalTIMER7_CC1 = PRS_TIMER7_CC1, /**< TIMER7 capture/compare channel 1 Signal. */
243   prsSignalTIMER7_CC2 = PRS_TIMER7_CC2, /**< TIMER7 capture/compare channel 2 Signal. */
244 #endif
245 #if defined(PRS_LETIMER0_CH0)
246   prsSignalLETIMER0_CH0  = PRS_LETIMER0_CH0, /**< LETIMER0 channel 0 Signal. */
247   prsSignalLETIMER0_CH1  = PRS_LETIMER0_CH1, /**< LETIMER0 channel 1 Signal. */
248 #endif
249 #if defined(PRS_LETIMER1_CH0)
250   prsSignalLETIMER1_CH0  = PRS_LETIMER1_CH0, /**< LETIMER1 channel 0 Signal. */
251   prsSignalLETIMER1_CH1  = PRS_LETIMER1_CH1, /**< LETIMER1 channel 1 Signal. */
252 #endif
253 #if defined(PRS_PCNT0_TCC)
254   prsSignalPCNT0_TCC  = PRS_PCNT0_TCC,  /**< PCNT0_TCC Signal. */
255 #endif
256 #if defined(PRS_PCNT0_UFOF)
257   prsSignalPCNT0_UFOF = PRS_PCNT0_UFOF, /**< PCNT0_TCC Signal. */
258   prsSignalPCNT0_DIR  = PRS_PCNT0_DIR,  /**< PCNT0_TCC Signal. */
259 #endif
260 #if defined(PRS_PCNT1_TCC)
261   prsSignalPCNT1_TCC  = PRS_PCNT1_TCC,  /**< PCNT1_TCC Signal. */
262   prsSignalPCNT1_UFOF = PRS_PCNT1_UFOF, /**< PCNT1_TCC Signal. */
263   prsSignalPCNT1_DIR  = PRS_PCNT1_DIR,  /**< PCNT1_TCC Signal. */
264 #endif
265 #if defined(PRS_PCNT2_TCC)
266   prsSignalPCNT2_TCC  = PRS_PCNT2_TCC,  /**< PCNT2_TCC Signal. */
267   prsSignalPCNT2_UFOF = PRS_PCNT2_UFOF, /**< PCNT2_TCC Signal. */
268   prsSignalPCNT2_DIR  = PRS_PCNT2_DIR,  /**< PCNT2_TCC Signal. */
269 #endif
270 #if defined(PRS_CRYOTIMER_PERIOD)
271   prsSignalCRYOTIMER_PERIOD = PRS_CRYOTIMER_PERIOD, /**< CRYOTIMER_PERIOD Signal. */
272 #endif
273 #if defined(PRS_CORE_CTIOUT0)
274   prsSignalCORE_CTIOUT0 = PRS_CORE_CTIOUT0, /**< CORE CTIOUT0 Signal. */
275   prsSignalCORE_CTIOUT1 = PRS_CORE_CTIOUT1, /**< CORE CTIOUT1 Signal. */
276   prsSignalCORE_CTIOUT2 = PRS_CORE_CTIOUT2, /**< CORE CTIOUT2 Signal. */
277   prsSignalCORE_CTIOUT3 = PRS_CORE_CTIOUT3, /**< CORE CTIOUT3 Signal. */
278 #endif
279 #if defined(PRS_CMUL_CLKOUT0)
280   prsSignalCMUL_CLKOUT0       = PRS_CMUL_CLKOUT0,       /**< CMU CLKOUT0 Signal. */
281   prsSignalCMUL_CLKOUT1       = PRS_CMUL_CLKOUT1,       /**< CMU CLKOUT1 Signal. */
282   prsSignalCMUL_CLKOUT2       = PRS_CMUL_CLKOUT2,       /**< CMU CLKOUT2 Signal. */
283 #endif
284 #if defined(PRS_PRSL_ASYNCH0)
285   prsSignalPRSL_ASYNCH0 = PRS_PRSL_ASYNCH0, /**< PRS channel 0 Signal. */
286   prsSignalPRSL_ASYNCH1 = PRS_PRSL_ASYNCH1, /**< PRS channel 1 Signal. */
287   prsSignalPRSL_ASYNCH2 = PRS_PRSL_ASYNCH2, /**< PRS channel 2 Signal. */
288   prsSignalPRSL_ASYNCH3 = PRS_PRSL_ASYNCH3, /**< PRS channel 3 Signal. */
289   prsSignalPRSL_ASYNCH4 = PRS_PRSL_ASYNCH4, /**< PRS channel 4 Signal. */
290   prsSignalPRSL_ASYNCH5 = PRS_PRSL_ASYNCH5, /**< PRS channel 5 Signal. */
291   prsSignalPRSL_ASYNCH6 = PRS_PRSL_ASYNCH6, /**< PRS channel 6 Signal. */
292   prsSignalPRSL_ASYNCH7 = PRS_PRSL_ASYNCH7, /**< PRS channel 7 Signal. */
293   prsSignalPRS_ASYNCH8  = PRS_PRS_ASYNCH8,  /**< PRS channel 8 Signal. */
294   prsSignalPRS_ASYNCH9  = PRS_PRS_ASYNCH9,  /**< PRS channel 9 Signal. */
295   prsSignalPRS_ASYNCH10 = PRS_PRS_ASYNCH10, /**< PRS channel 10 Signal. */
296   prsSignalPRS_ASYNCH11 = PRS_PRS_ASYNCH11, /**< PRS channel 11 Signal. */
297 #if defined(PRS_PRS_ASYNCH15)
298   prsSignalPRS_ASYNCH12 = PRS_PRS_ASYNCH12,  /**< PRS channel 12 Signal. */
299   prsSignalPRS_ASYNCH13 = PRS_PRS_ASYNCH13,  /**< PRS channel 13 Signal. */
300   prsSignalPRS_ASYNCH14 = PRS_PRS_ASYNCH14,  /**< PRS channel 14 Signal. */
301   prsSignalPRS_ASYNCH15 = PRS_PRS_ASYNCH15,  /**< PRS channel 15 Signal. */
302 #endif
303 #endif
304 
305   /* RTC/RTCC/SYSRTC/BURTC Signals */
306 #if defined(PRS_RTC_OF)
307   prsSignalRTC_OF    = PRS_RTC_OF,    /**< RTC_OF    signal. */
308   prsSignalRTC_COMP0 = PRS_RTC_COMP0, /**< RTC_COMP0 signal. */
309   prsSignalRTC_COMP1 = PRS_RTC_COMP1, /**< RTC_COMP1 signal. */
310 #if defined(PRS_RTC_COMP5)
311   prsSignalRTC_COMP2 = PRS_RTC_COMP2, /**< RTC_COMP2 signal. */
312   prsSignalRTC_COMP3 = PRS_RTC_COMP3, /**< RTC_COMP3 signal. */
313   prsSignalRTC_COMP4 = PRS_RTC_COMP4, /**< RTC_COMP4 signal. */
314   prsSignalRTC_COMP5 = PRS_RTC_COMP5, /**< RTC_COMP5 signal. */
315 #endif
316 #endif
317 #if defined(RTCC)
318   prsSignalRTCC_CCV0  = PRS_RTCC_CCV0, /**< RTCC capture/compare channel 0 Signal. */
319   prsSignalRTCC_CCV1  = PRS_RTCC_CCV1, /**< RTCC capture/compare channel 1 Signal. */
320   prsSignalRTCC_CCV2  = PRS_RTCC_CCV2, /**< RTCC capture/compare channel 2 Signal. */
321 #endif
322 #if defined(BURTC)
323   prsSignalBURTC_COMP = PRS_BURTC_COMP, /**< BURTC compare Signal. */
324   prsSignalBURTC_OF   = PRS_BURTC_OF,   /**< BURTC overflow Signal. */
325 #endif
326 #if defined(SYSRTC0)
327   prsSignalSYSRTC0_GRP0OUT0 = PRS_SYSRTC0_GRP0OUT0, /**< SYSRTC GRP0OUT0 Signal. */
328   prsSignalSYSRTC0_GRP0OUT1 = PRS_SYSRTC0_GRP0OUT1, /**< SYSRTC GRP0OUT1 Signal. */
329   prsSignalSYSRTC0_GRP1OUT0 = PRS_SYSRTC0_GRP1OUT0, /**< SYSRTC GRP1OUT0 Signal. */
330   prsSignalSYSRTC0_GRP1OUT1 = PRS_SYSRTC0_GRP1OUT1, /**< SYSRTC GRP1OUT1 Signal. */
331 #endif
332 #if defined(PRS_HFXO0L_STATUS)
333   prsSignalHFXO0L_STATUS            = PRS_HFXO0L_STATUS,            /**< HFXO0L_STATUS  Signal. */
334   prsSignalHFXO0L_STATUS1           = PRS_HFXO0L_STATUS1,           /**< HFXO0L_STATUS1  Signal. */
335 #endif
336 #if defined(PRS_HFRCO0_COREEN)
337   prsSignalHFRCO0_COREEN = PRS_HFRCO0_COREEN, /**< HFRCO0_COREEN  Signal. */
338   prsSignalHFRCO0_STATE0 = PRS_HFRCO0_STATE0, /**< HFRCO0_STATE0  Signal. */
339   prsSignalHFRCO0_STATE1 = PRS_HFRCO0_STATE1, /**< HFRCO0_STATE1  Signal. */
340   prsSignalHFRCO0_STATE2 = PRS_HFRCO0_STATE2, /**< HFRCO0_STATE2  Signal. */
341 #endif
342 #if defined(PRS_HFRCOEM23_COREEN)
343   prsSignalHFRCOEM23_COREEN = PRS_HFRCOEM23_COREEN, /**< HFRCOEM23_COREEN  Signal. */
344   prsSignalHFRCOEM23_STATE0 = PRS_HFRCOEM23_STATE0, /**< HFRCOEM23_STATE0  Signal. */
345   prsSignalHFRCOEM23_STATE1 = PRS_HFRCOEM23_STATE1, /**< HFRCOEM23_STATE1  Signal. */
346   prsSignalHFRCOEM23_STATE2 = PRS_HFRCOEM23_STATE2, /**< HFRCOEM23_STATE2  Signal. */
347 #endif
348 
349   /* ACMP Signals */
350 #if defined(ACMP0)
351   prsSignalACMP0_OUT  = PRS_ACMP0_OUT, /**< ACMP0 Signal. */
352 #endif
353 #if defined(ACMP1)
354   prsSignalACMP1_OUT  = PRS_ACMP1_OUT, /**< ACMP1 output Signal. */
355 #endif
356 #if defined(ACMP2)
357   prsSignalACMP2_OUT  = PRS_ACMP2_OUT, /**< ACMP2 output Signal. */
358 #endif
359 #if defined(ACMP3)
360   prsSignalACMP3_OUT  = PRS_ACMP3_OUT, /**< ACMP3 output Signal. */
361 #endif
362 
363   /* VDAC Signals */
364 #if defined(VDAC0) & (_SILICON_LABS_32B_SERIES >= 2)
365   prsSignalVDAC0_CH0WARM          = PRS_VDAC0L_CH0WARM,         /**< VDAC0 channel 0 warmed Signal. */
366   prsSignalVDAC0_CH1WARM          = PRS_VDAC0L_CH1WARM,         /**< VDAC0 channel 1 warmed Signal. */
367   prsSignalVDAC0_CH0DONE          = PRS_VDAC0L_CH0DONEASYNC,    /**< VDAC0 channel 0 conversion done Signal. */
368   prsSignalVDAC0_CH1DONE          = PRS_VDAC0L_CH1DONEASYNC,    /**< VDAC0 channel 1 conversion done Signal. */
369   prsSignalVDAC0_INTERNALTIMEROF  = PRS_VDAC0L_INTERNALTIMEROF, /**< VDAC0 internal timer overflow Signal. */
370   prsSignalVDAC0_REFRESHTIMEROF   = PRS_VDAC0L_REFRESHTIMEROF,  /**< VDAC0 internal timer overflow Signal. */
371 #endif
372 #if defined(PRS_VDAC0_OPA3)
373   prsSignalVDAC0_CH0  = PRS_VDAC0_CH0,  /**< VDAC0_CH0  Signal. */
374   prsSignalVDAC0_CH1  = PRS_VDAC0_CH1,  /**< VDAC0_CH1  Signal. */
375   prsSignalVDAC0_OPA0 = PRS_VDAC0_OPA0, /**< VDAC0_OPA0 Signal. */
376   prsSignalVDAC0_OPA1 = PRS_VDAC0_OPA1, /**< VDAC0_OPA1 Signal. */
377   prsSignalVDAC0_OPA2 = PRS_VDAC0_OPA2, /**< VDAC0_OPA2 Signal. */
378   prsSignalVDAC0_OPA3 = PRS_VDAC0_OPA3, /**< VDAC0_OPA3 Signal. */
379 #endif
380 #if defined(VDAC1) & (_SILICON_LABS_32B_SERIES >= 2)
381   prsSignalVDAC1_CH0WARM          = PRS_VDAC1L_CH0WARM,         /**< VDAC1 channel 0 warmed Signal. */
382   prsSignalVDAC1_CH1WARM          = PRS_VDAC1L_CH1WARM,         /**< VDAC1 channel 1 warmed Signal. */
383   prsSignalVDAC1_CH0DONE          = PRS_VDAC1L_CH0DONEASYNC,    /**< VDAC1 channel 0 conversion done Signal. */
384   prsSignalVDAC1_CH1DONE          = PRS_VDAC1L_CH1DONEASYNC,    /**< VDAC1 channel 1 conversion done Signal. */
385   prsSignalVDAC1_INTERNALTIMEROF  = PRS_VDAC1L_INTERNALTIMEROF, /**< VDAC1 internal timer overflow Signal. */
386   prsSignalVDAC1_REFRESHTIMEROF   = PRS_VDAC1L_REFRESHTIMEROF,  /**< VDAC1 internal timer overflow Signal. */
387 #endif
388 
389 #if defined(PRS_LESENSE_SCANRES15)
390   prsSignalLESENSE_SCANRES0  = PRS_LESENSE_SCANRES0,  /**< LESENSE_SCANRES0  Signal. */
391   prsSignalLESENSE_SCANRES1  = PRS_LESENSE_SCANRES1,  /**< LESENSE_SCANRES1  Signal. */
392   prsSignalLESENSE_SCANRES2  = PRS_LESENSE_SCANRES2,  /**< LESENSE_SCANRES2  Signal. */
393   prsSignalLESENSE_SCANRES3  = PRS_LESENSE_SCANRES3,  /**< LESENSE_SCANRES3  Signal. */
394   prsSignalLESENSE_SCANRES4  = PRS_LESENSE_SCANRES4,  /**< LESENSE_SCANRES4  Signal. */
395   prsSignalLESENSE_SCANRES5  = PRS_LESENSE_SCANRES5,  /**< LESENSE_SCANRES5  Signal. */
396   prsSignalLESENSE_SCANRES6  = PRS_LESENSE_SCANRES6,  /**< LESENSE_SCANRES6  Signal. */
397   prsSignalLESENSE_SCANRES7  = PRS_LESENSE_SCANRES7,  /**< LESENSE_SCANRES7  Signal. */
398   prsSignalLESENSE_SCANRES8  = PRS_LESENSE_SCANRES8,  /**< LESENSE_SCANRES8  Signal. */
399   prsSignalLESENSE_SCANRES9  = PRS_LESENSE_SCANRES9,  /**< LESENSE_SCANRES9  Signal. */
400   prsSignalLESENSE_SCANRES10 = PRS_LESENSE_SCANRES10, /**< LESENSE_SCANRES10 Signal. */
401   prsSignalLESENSE_SCANRES11 = PRS_LESENSE_SCANRES11, /**< LESENSE_SCANRES11 Signal. */
402   prsSignalLESENSE_SCANRES12 = PRS_LESENSE_SCANRES12, /**< LESENSE_SCANRES12 Signal. */
403   prsSignalLESENSE_SCANRES13 = PRS_LESENSE_SCANRES13, /**< LESENSE_SCANRES13 Signal. */
404   prsSignalLESENSE_SCANRES14 = PRS_LESENSE_SCANRES14, /**< LESENSE_SCANRES14 Signal. */
405   prsSignalLESENSE_SCANRES15 = PRS_LESENSE_SCANRES15, /**< LESENSE_SCANRES15 Signal. */
406 #endif
407 #if defined(PRS_LESENSE_DEC2)
408   prsSignalLESENSE_DEC0    = PRS_LESENSE_DEC0,    /**< LESENSE_DEC0    Signal. */
409   prsSignalLESENSE_DEC1    = PRS_LESENSE_DEC1,    /**< LESENSE_DEC1    Signal. */
410   prsSignalLESENSE_DEC2    = PRS_LESENSE_DEC2,    /**< LESENSE_DEC2    Signal. */
411 #endif
412 #if defined(PRS_LESENSE_DECOUT2)
413   prsSignalLESENSE_DECOUT0    = PRS_LESENSE_DECOUT0,    /**< LESENSE_DECOUT0    Signal. */
414   prsSignalLESENSE_DECOUT1    = PRS_LESENSE_DECOUT1,    /**< LESENSE_DECOUT1    Signal. */
415   prsSignalLESENSE_DECOUT2    = PRS_LESENSE_DECOUT2,    /**< LESENSE_DECOUT2    Signal. */
416 #endif
417 #if defined(PRS_LESENSE_DECCMP)
418   prsSignalLESENSE_DECCMP  = PRS_LESENSE_DECCMP,  /**< LESENSE_DECCMP  Signal. */
419 #endif
420 #if defined(PRS_LESENSE_MEASACT)
421   prsSignalLESENSE_MEASACT = PRS_LESENSE_MEASACT, /**< LESENSE_MEASACT Signal. */
422 #endif
423 
424   /* USART Signals */
425 #if defined(USART0)
426   prsSignalUSART0_TXC     = PRS_USART0_TXC,    /**< USART0 TX complete Signal. */
427 #if defined(PRS_USART0_RXDATA)
428   prsSignalUSART0_RXDATA  = PRS_USART0_RXDATA, /**< USART0 RX data available Signal. */
429 #endif
430 #if defined(PRS_USART0_RXDATAV)
431   prsSignalUSART0_RXDATAV = PRS_USART0_RXDATAV, /**< USART0 RX data available Signal. */
432 #endif
433 #if defined(PRS_USART0_IRTX)
434   prsSignalUSART0_IRTX    = PRS_USART0_IRTX,    /**< USART0 IR TX Signal. */
435 #endif
436 #if defined(PRS_USART0_RTS)
437   prsSignalUSART0_RTS     = PRS_USART0_RTS,    /**< USART0 RTS Signal. */
438   prsSignalUSART0_TX      = PRS_USART0_TX,     /**< USART0 TX Signal. */
439   prsSignalUSART0_CS      = PRS_USART0_CS,     /**< USART0 chip select Signal. */
440 #endif
441 #endif
442 #if defined(USART1)
443   prsSignalUSART1_TXC     = PRS_USART1_TXC,    /**< USART1 TX complete Signal. */
444 #if defined(PRS_USART1_RXDATA)
445   prsSignalUSART1_RXDATA  = PRS_USART1_RXDATA, /**< USART1 RX data available Signal. */
446 #endif
447 #if defined(PRS_USART1_RXDATAV)
448   prsSignalUSART1_RXDATAV = PRS_USART1_RXDATAV, /**< USART1 RX data available Signal. */
449 #endif
450 #if defined(PRS_USART1_IRTX)
451   prsSignalUSART1_IRTX    = PRS_USART1_IRTX,   /**< USART1 IR TX Signal. */
452 #endif
453 #if defined(PRS_USART1_RTS)
454   prsSignalUSART1_RTS     = PRS_USART1_RTS,    /**< USART1 RTS Signal. */
455   prsSignalUSART1_TX      = PRS_USART1_TX,     /**< USART1 TX Signal. */
456   prsSignalUSART1_CS      = PRS_USART1_CS,     /**< USART1 chip select Signal. */
457 #endif
458 #endif
459 #if defined(USART2)
460   prsSignalUSART2_TXC     = PRS_USART2_TXC,    /**< USART2 TX complete Signal. */
461 #if defined(PRS_USART2_RXDATA)
462   prsSignalUSART2_RXDATA  = PRS_USART2_RXDATA, /**< USART2 RX data available Signal. */
463 #endif
464 #if defined(PRS_USART2_RXDATAV)
465   prsSignalUSART2_RXDATAV = PRS_USART2_RXDATAV, /**< USART2 RX data available Signal. */
466 #endif
467 #if defined(PRS_USART2_IRTX)
468   prsSignalUSART2_IRTX    = PRS_USART2_IRTX,   /**< USART2 IR TX Signal. */
469 #endif
470 #if defined(PRS_USART2_RTS)
471   prsSignalUSART2_RTS     = PRS_USART2_RTS,    /**< USART2 RTS Signal. */
472   prsSignalUSART2_TX      = PRS_USART2_TX,     /**< USART2 TX Signal. */
473   prsSignalUSART2_CS      = PRS_USART2_CS,     /**< USART2 chip select Signal. */
474 #endif
475 #endif
476 #if defined(PRS_USART3_TXC)
477   prsSignalUSART3_TXC     = PRS_USART3_TXC,       /**< USART3 TX complete Signal. */
478   prsSignalUSART3_RXDATAV = PRS_USART3_RXDATAV,   /**< USART3 RX data available Signal. */
479   prsSignalUSART3_RTS     = PRS_USART3_RTS,       /**< USART3 RTS Signal. */
480   prsSignalUSART3_TX      = PRS_USART3_TX,        /**< USART3 TX Signal. */
481   prsSignalUSART3_CS      = PRS_USART3_CS,        /**< USART3 chip select Signal. */
482 #endif
483 #if defined(PRS_USART4_TXC)
484   prsSignalUSART4_TXC     = PRS_USART4_TXC,       /**< USART4 TX complete Signal. */
485   prsSignalUSART4_RXDATAV = PRS_USART4_RXDATAV,   /**< USART4 RX data available Signal. */
486   prsSignalUSART4_RTS     = PRS_USART4_RTS,       /**< USART4 RTS Signal. */
487   prsSignalUSART4_TX      = PRS_USART4_TX,        /**< USART4 TX Signal. */
488   prsSignalUSART4_CS      = PRS_USART4_CS,        /**< USART4 chip select Signal. */
489 #endif
490 #if defined(PRS_USART5_TXC)
491   prsSignalUSART5_TXC     = PRS_USART5_TXC,       /**< USART5 TX complete Signal. */
492   prsSignalUSART5_RXDATAV = PRS_USART5_RXDATAV,   /**< USART5 RX data available Signal. */
493   prsSignalUSART5_RTS     = PRS_USART5_RTS,       /**< USART5 RTS Signal. */
494   prsSignalUSART5_TX      = PRS_USART5_TX,        /**< USART5 TX Signal. */
495   prsSignalUSART5_CS      = PRS_USART5_CS,        /**< USART5 chip select Signal. */
496 #endif
497 
498 #if defined(UART0)
499   prsSignalUART0_TXC     = PRS_UART0_TXC,       /**< UART0 TX complete Signal. */
500   prsSignalUART0_RXDATAV = PRS_UART0_RXDATAV,   /**< UART0 RX data available Signal. */
501 #if defined(PRS_UART1_IRTX)
502   prsSignalUART0_IRTX    = PRS_UART0_IRTX,      /**< UART0 IR TX Signal. */
503 #endif
504 #if defined(PRS_UART0_RTS)
505   prsSignalUART0_RTS     = PRS_UART0_RTS,       /**< UART0 RTS Signal. */
506   prsSignalUART0_TX      = PRS_UART0_TX,        /**< UART0 TX Signal. */
507   prsSignalUART0_CS      = PRS_UART0_CS,        /**< UART0 chip select Signal. */
508 #endif
509 #endif
510 
511 #if defined(UART1)
512   prsSignalUART1_TXC     = PRS_UART1_TXC,       /**< UART1 TX complete Signal. */
513   prsSignalUART1_RXDATAV = PRS_UART1_RXDATAV,   /**< UART1 RX data available Signal. */
514 #if defined(PRS_UART1_IRTX)
515   prsSignalUART1_IRTX    = PRS_UART1_IRTX,      /**< UART1 IR RX Signal. */
516 #endif
517 #if defined(PRS_UART1_RTS)
518   prsSignalUART1_RTS     = PRS_UART1_RTS,       /**< UART1 RTS Signal. */
519   prsSignalUART1_TX      = PRS_UART1_TX,        /**< UART1 RX Signal. */
520   prsSignalUART1_CS      = PRS_UART1_CS,        /**< UART1 chip select Signal. */
521 #endif
522 #endif
523 
524 #if defined(PRS_USB_SOF)
525   prsSignalUSB_SOF   = PRS_USB_SOF,     /**< USB_SOF   Signal. */
526   prsSignalUSB_SOFSR = PRS_USB_SOFSR,   /**< USB_SOFSR Signal. */
527 #endif
528 
529 #if defined(PRS_CM4_TXEV)
530   prsSignalCM4_TXEV             = PRS_CM4_TXEV,               /**< TXEV             Signal. */
531 #endif
532 #if defined(PRS_CM4_ICACHEPCHITSOF)
533   prsSignalCM4_ICACHEPCHITSOF   = PRS_CM4_ICACHEPCHITSOF,     /**< ICACHEPCHITSOF   Signal. */
534   prsSignalCM4_ICACHEPCMISSESOF = PRS_CM4_ICACHEPCMISSESOF,   /**< ICACHEPCMISSESOF Signal. */
535 #endif
536 
537 #if defined(PRS_WTIMER0_UF)
538   prsSignalWTIMER0_UF  = PRS_WTIMER0_UF,    /**< WTIMER0_UF  Signal. */
539   prsSignalWTIMER0_OF  = PRS_WTIMER0_OF,    /**< WTIMER0_OF  Signal. */
540   prsSignalWTIMER0_CC0 = PRS_WTIMER0_CC0,   /**< WTIMER0_CC0 Signal. */
541   prsSignalWTIMER0_CC1 = PRS_WTIMER0_CC1,   /**< WTIMER0_CC1 Signal. */
542   prsSignalWTIMER0_CC2 = PRS_WTIMER0_CC2,   /**< WTIMER0_CC2 Signal. */
543 #endif
544 #if defined(PRS_WTIMER1_UF)
545   prsSignalWTIMER1_UF  = PRS_WTIMER1_UF,    /**< WTIMER1_UF  Signal. */
546   prsSignalWTIMER1_OF  = PRS_WTIMER1_OF,    /**< WTIMER1_OF  Signal. */
547   prsSignalWTIMER1_CC0 = PRS_WTIMER1_CC0,   /**< WTIMER1_CC0 Signal. */
548   prsSignalWTIMER1_CC1 = PRS_WTIMER1_CC1,   /**< WTIMER1_CC1 Signal. */
549   prsSignalWTIMER1_CC2 = PRS_WTIMER1_CC2,   /**< WTIMER1_CC2 Signal. */
550   prsSignalWTIMER1_CC3 = PRS_WTIMER1_CC3,   /**< WTIMER1_CC3 Signal. */
551 #endif
552 #if defined(PRS_WTIMER2_UF)
553   prsSignalWTIMER2_UF  = PRS_WTIMER2_UF,    /**< WTIMER2_UF  Signal. */
554   prsSignalWTIMER2_OF  = PRS_WTIMER2_OF,    /**< WTIMER2_OF  Signal. */
555   prsSignalWTIMER2_CC0 = PRS_WTIMER2_CC0,   /**< WTIMER2_CC0 Signal. */
556   prsSignalWTIMER2_CC1 = PRS_WTIMER2_CC1,   /**< WTIMER2_CC1 Signal. */
557   prsSignalWTIMER2_CC2 = PRS_WTIMER2_CC2,   /**< WTIMER2_CC2 Signal. */
558 #endif
559 #if defined(PRS_WTIMER3_UF)
560   prsSignalWTIMER3_UF  = PRS_WTIMER3_UF,    /**< WTIMER3_UF  Signal. */
561   prsSignalWTIMER3_OF  = PRS_WTIMER3_OF,    /**< WTIMER3_OF  Signal. */
562   prsSignalWTIMER3_CC0 = PRS_WTIMER3_CC0,   /**< WTIMER3_CC0 Signal. */
563   prsSignalWTIMER3_CC1 = PRS_WTIMER3_CC1,   /**< WTIMER3_CC1 Signal. */
564   prsSignalWTIMER3_CC2 = PRS_WTIMER3_CC2,   /**< WTIMER3_CC2 Signal. */
565 #endif
566 
567 /* EUSART Signals */
568 #if defined(EUSART0)
569   prsSignalEUSART0_CS         = PRS_EUSART0L_CS,         /**< EUSART0 chip select Signal. */
570   prsSignalEUSART0_IRTX       = PRS_EUSART0L_IRDATX,     /**< EUSART0 IR RX Signal. */
571   prsSignalEUSART0_RTS        = PRS_EUSART0L_RTS,        /**< EUSART0 RTS Signal. */
572   prsSignalEUSART0_RXDATA     = PRS_EUSART0L_RXDATAV,    /**< EUSART0 RX data available Signal. */
573   prsSignalEUSART0_TX         = PRS_EUSART0L_TX,         /**< EUSART0 TX Signal. */
574   prsSignalEUSART0_TXC        = PRS_EUSART0L_TXC,        /**< EUSART0 TX complete Signal. */
575   prsSignalEUSART0_RXFL       = PRS_EUSART0L_RXFL,       /**< EUSART0 rxfl Signal. */
576   prsSignalEUSART0_TXFL       = PRS_EUSART0L_TXFL,       /**< EUSART0 txfl Signal. */
577 #endif
578 #if defined(EUSART1)
579   prsSignalEUSART1_CS         = PRS_EUSART1L_CS,         /**< EUSART1 chip select Signal. */
580   prsSignalEUSART1_IRTX       = PRS_EUSART1L_IRDATX,     /**< EUSART1 IR TX Signal. */
581   prsSignalEUSART1_RTS        = PRS_EUSART1L_RTS,        /**< EUSART1 RTS Signal. */
582   prsSignalEUSART1_RXDATA     = PRS_EUSART1L_RXDATAV,    /**< EUSART1 RX data available Signal. */
583   prsSignalEUSART1_TX         = PRS_EUSART1L_TX,         /**< EUSART1 TX Signal. */
584   prsSignalEUSART1_TXC        = PRS_EUSART1L_TXC,        /**< EUSART1 TX complete Signal. */
585   prsSignalEUSART1_RXFL       = PRS_EUSART1L_RXFL,       /**< EUSART1 rxfl Signal. */
586   prsSignalEUSART1_TXFL       = PRS_EUSART1L_TXFL,       /**< EUSART1 txfl Signal. */
587 #endif
588 #if defined(EUSART2)
589 #if defined(PRS_EUSART2L_CS)
590   prsSignalEUSART2_CS         = PRS_EUSART2L_CS,         /**< EUSART2 chip select Signal. */
591   prsSignalEUSART2_IRTX       = PRS_EUSART2L_IRDATX,     /**< EUSART2 IR TX Signal. */
592   prsSignalEUSART2_RTS        = PRS_EUSART2L_RTS,        /**< EUSART2 RTS Signal. */
593   prsSignalEUSART2_RXDATA     = PRS_EUSART2L_RXDATAV,    /**< EUSART2 RX data available Signal. */
594   prsSignalEUSART2_TX         = PRS_EUSART2L_TX,         /**< EUSART2 TX Signal. */
595   prsSignalEUSART2_TXC        = PRS_EUSART2L_TXC,        /**< EUSART2 TX complete Signal. */
596   prsSignalEUSART2_RXFL       = PRS_EUSART2L_RXFL,       /**< EUSART2 rxfl Signal. */
597   prsSignalEUSART2_TXFL       = PRS_EUSART2L_TXFL,       /**< EUSART2 txfl Signal. */
598 #else
599   prsSignalEUSART2_CS         = PRS_EUSART2_CS,         /**< EUSART2 chip select Signal. */
600   prsSignalEUSART2_IRTX       = PRS_EUSART2_IRDATX,     /**< EUSART2 IR TX Signal. */
601   prsSignalEUSART2_RTS        = PRS_EUSART2_RTS,        /**< EUSART2 RTS Signal. */
602   prsSignalEUSART2_RXDATA     = PRS_EUSART2_RXDATAV,    /**< EUSART2 RX data available Signal. */
603   prsSignalEUSART2_TX         = PRS_EUSART2_TX,         /**< EUSART2 TX Signal. */
604   prsSignalEUSART2_TXC        = PRS_EUSART2_TXC,        /**< EUSART2 TX complete Signal. */
605   prsSignalEUSART2_RXFL       = PRS_EUSART2_RXFL,       /**< EUSART2 rxfl Signal. */
606   prsSignalEUSART2_TXFL       = PRS_EUSART2_TXFL,       /**< EUSART2 txfl Signal. */
607 #endif
608 #endif
609 #if defined(EUSART3)
610 #if defined(PRS_EUSART3L_CS)
611   prsSignalEUSART3_CS         = PRS_EUSART3L_CS,         /**< EUSART3 chip select Signal. */
612   prsSignalEUSART3_IRTX       = PRS_EUSART3L_IRDATX,     /**< EUSART3 IR TX Signal. */
613   prsSignalEUSART3_RTS        = PRS_EUSART3L_RTS,        /**< EUSART3 RTS Signal. */
614   prsSignalEUSART3_RXDATA     = PRS_EUSART3L_RXDATAV,    /**< EUSART3 RX data available Signal. */
615   prsSignalEUSART3_TX         = PRS_EUSART3L_TX,         /**< EUSART3 TX Signal. */
616   prsSignalEUSART3_TXC        = PRS_EUSART3L_TXC,        /**< EUSART3 TX complete Signal. */
617   prsSignalEUSART3_RXFL       = PRS_EUSART3L_RXFL,       /**< EUSART3 rxfl Signal. */
618   prsSignalEUSART3_TXFL       = PRS_EUSART3L_TXFL,       /**< EUSART3 txfl Signal. */
619 #else
620   prsSignalEUSART3_CS         = PRS_EUSART3_CS,         /**< EUSART3 chip select Signal. */
621   prsSignalEUSART3_IRTX       = PRS_EUSART3_IRDATX,     /**< EUSART3 IR TX Signal. */
622   prsSignalEUSART3_RTS        = PRS_EUSART3_RTS,        /**< EUSART3 RTS Signal. */
623   prsSignalEUSART3_RXDATA     = PRS_EUSART3_RXDATAV,    /**< EUSART3 RX data available Signal. */
624   prsSignalEUSART3_TX         = PRS_EUSART3_TX,         /**< EUSART3 TX Signal. */
625   prsSignalEUSART3_TXC        = PRS_EUSART3_TXC,        /**< EUSART3 TX complete Signal. */
626   prsSignalEUSART3_RXFL       = PRS_EUSART3_RXFL,       /**< EUSART3 rxfl Signal. */
627   prsSignalEUSART3_TXFL       = PRS_EUSART3_TXFL,       /**< EUSART3 txfl Signal. */
628 #endif
629 #endif
630 #if defined(EUSART4)
631   prsSignalEUSART4_CS         = PRS_EUSART4L_CS,         /**< EUSART4 chip select Signal. */
632   prsSignalEUSART4_IRTX       = PRS_EUSART4L_IRDATX,     /**< EUSART4 IR TX Signal. */
633   prsSignalEUSART4_RTS        = PRS_EUSART4L_RTS,        /**< EUSART4 RTS Signal. */
634   prsSignalEUSART4_RXDATA     = PRS_EUSART4L_RXDATAV,    /**< EUSART4 RX data available Signal. */
635   prsSignalEUSART4_TX         = PRS_EUSART4L_TX,         /**< EUSART4 TX Signal. */
636   prsSignalEUSART4_TXC        = PRS_EUSART4L_TXC,        /**< EUSART4 TX complete Signal. */
637   prsSignalEUSART4_RXFL       = PRS_EUSART4L_RXFL,       /**< EUSART4 rxfl Signal. */
638   prsSignalEUSART4_TXFL       = PRS_EUSART4L_TXFL,       /**< EUSART4 txfl Signal. */
639 #endif
640   /* ADC Signals */
641 #if defined(IADC0)
642   prsSignalIADC0_SCANENTRY  = PRS_IADC0_SCANENTRYDONE, /**< IADC0 scan entry Signal. */
643   prsSignalIADC0_SCANTABLE  = PRS_IADC0_SCANTABLEDONE, /**< IADC0 scan table Signal. */
644   prsSignalIADC0_SINGLE     = PRS_IADC0_SINGLEDONE,    /**< IADC0 single Signal. */
645 #endif
646 
647   /* GPIO pin Signals */
648   prsSignalGPIO_PIN0  = PRS_GPIO_PIN0,   /**< GPIO Pin 0 Signal. */
649   prsSignalGPIO_PIN1  = PRS_GPIO_PIN1,   /**< GPIO Pin 1 Signal. */
650   prsSignalGPIO_PIN2  = PRS_GPIO_PIN2,   /**< GPIO Pin 2 Signal. */
651   prsSignalGPIO_PIN3  = PRS_GPIO_PIN3,   /**< GPIO Pin 3 Signal. */
652   prsSignalGPIO_PIN4  = PRS_GPIO_PIN4,   /**< GPIO Pin 4 Signal. */
653   prsSignalGPIO_PIN5  = PRS_GPIO_PIN5,   /**< GPIO Pin 5 Signal. */
654   prsSignalGPIO_PIN6  = PRS_GPIO_PIN6,   /**< GPIO Pin 6 Signal. */
655   prsSignalGPIO_PIN7  = PRS_GPIO_PIN7,   /**< GPIO Pin 7 Signal. */
656 #if defined(PRS_GPIO_PIN15)
657   prsSignalGPIO_PIN8  = PRS_GPIO_PIN8,    /**< GPIO Pin 8 Signal. */
658   prsSignalGPIO_PIN9  = PRS_GPIO_PIN9,    /**< GPIO Pin 9 Signal. */
659   prsSignalGPIO_PIN10 = PRS_GPIO_PIN10,   /**< GPIO Pin 10 Signal. */
660   prsSignalGPIO_PIN11 = PRS_GPIO_PIN11,   /**< GPIO Pin 11 Signal. */
661   prsSignalGPIO_PIN12 = PRS_GPIO_PIN12,   /**< GPIO Pin 12 Signal. */
662   prsSignalGPIO_PIN13 = PRS_GPIO_PIN13,   /**< GPIO Pin 13 Signal. */
663   prsSignalGPIO_PIN14 = PRS_GPIO_PIN14,   /**< GPIO Pin 14 Signal. */
664   prsSignalGPIO_PIN15 = PRS_GPIO_PIN15,   /**< GPIO Pin 15 Signal. */
665 #endif
666 #if defined(PRS_AGCL_CCA)
667   prsSignalAGCL_CCA                  = PRS_AGCL_CCA,            /**< AGCL_CCA Signal. */
668   prsSignalAGCL_CCAREQ               = PRS_AGCL_CCAREQ,         /**< AGCL_CCAREQ Signal. */
669   prsSignalAGCL_GAINADJUST           = PRS_AGCL_GAINADJUST,     /**< AGCL_GAINADJUST Signal. */
670   prsSignalAGCL_GAINOK               = PRS_AGCL_GAINOK,         /**< AGCL_GAINOK Signal. */
671   prsSignalAGCL_GAINREDUCED          = PRS_AGCL_GAINREDUCED,    /**< AGCL_GAINREDUCED Signal. */
672   prsSignalAGCL_IFPKI1               = PRS_AGCL_IFPKI1,         /**< AGCL_IFPKI1 Signal. */
673   prsSignalAGCL_IFPKQ2               = PRS_AGCL_IFPKQ2,         /**< AGCL_IFPKQ2 Signal. */
674   prsSignalAGCL_IFPKRST              = PRS_AGCL_IFPKRST,        /**< AGCL_IFPKRST Signal. */
675 #endif
676 #if defined(PRS_AGC_PEAKDET)
677   prsSignalAGC_PEAKDET               = PRS_AGC_PEAKDET,         /**< AGC_PEAKDET Signal. */
678   prsSignalAGC_PROPAGATED            = PRS_AGC_PROPAGATED,      /**< AGC_PROPAGATED Signal. */
679   prsSignalAGC_RSSIDONE              = PRS_AGC_RSSIDONE,        /**< AGC_RSSIDONE Signal. */
680 #endif
681 #if defined(PRS_BUFC_THR0)
682   prsSignalBUFC_THR0                 = PRS_BUFC_THR0,           /**< BUFC_THR0 Signal. */
683   prsSignalBUFC_THR1                 = PRS_BUFC_THR1,           /**< BUFC_THR1 Signal. */
684   prsSignalBUFC_THR2                 = PRS_BUFC_THR2,           /**< BUFC_THR2 Signal. */
685   prsSignalBUFC_THR3                 = PRS_BUFC_THR3,           /**< BUFC_THR3 Signal. */
686 #endif
687 #if defined(PRS_BUFC_CNT0)
688   prsSignalBUFC_CNT0                 = PRS_BUFC_CNT0,           /**< BUFC_CNT0 Signal. */
689   prsSignalBUFC_CNT1                 = PRS_BUFC_CNT1,           /**< BUFC_CNT1 Signal. */
690   prsSignalBUFC_FULL                 = PRS_BUFC_FULL,           /**< BUFC_FULL Signal. */
691 #endif
692 #if defined(PRS_MODEML_ADVANCE)
693   prsSignalMODEML_ADVANCE            = PRS_MODEML_ADVANCE,      /**< MODEML_ADVANCE Signal. */
694   prsSignalMODEML_ANT0               = PRS_MODEML_ANT0,         /**< MODEML_ANT0 Signal. */
695   prsSignalMODEML_ANT1               = PRS_MODEML_ANT1,         /**< MODEML_ANT1 Signal. */
696   prsSignalMODEML_COHDSADET          = PRS_MODEML_COHDSADET,    /**< MODEML_COHDSADET Signal. */
697   prsSignalMODEML_COHDSALIVE         = PRS_MODEML_COHDSALIVE,   /**< MODEML_COHDSALIVE Signal. */
698   prsSignalMODEML_DCLK               = PRS_MODEML_DCLK,         /**< MODEML_DCLK Signal. */
699   prsSignalMODEML_DOUT               = PRS_MODEML_DOUT,         /**< MODEML_DOUT Signal. */
700   prsSignalMODEML_FRAMEDET           = PRS_MODEML_FRAMEDET,     /**< MODEML_FRAMEDET Signal. */
701 #endif
702 #if defined(PRS_MODEM_FRAMEDET)
703   prsSignalMODEM_FRAMEDET            = PRS_MODEM_FRAMEDET,       /**< MODEM_FRAMEDET Signal. */
704   prsSignalMODEM_TIMDET              = PRS_MODEM_TIMDET,         /**< MODEM_TIMDET Signal. */
705   prsSignalMODEM_SYNCSENT            = PRS_MODEM_SYNCSENT,       /**< MODEM_SYNCSENT Signal. */
706   prsSignalMODEM_PRESENT             = PRS_MODEM_PRESENT,        /**< MODEM_PRESENT Signal. */
707   prsSignalMODEM_ANT0                = PRS_MODEM_ANT0,           /**< MODEM_ANT0 Signal. */
708   prsSignalMODEM_ANT1                = PRS_MODEM_ANT1,           /**< MODEM_ANT1 Signal. */
709 #endif
710 #if defined(PRS_MODEM_FRAMESENT)
711   prsSignalMODEM_FRAMESENT           = PRS_MODEM_FRAMESENT,     /**< MODEM_FRAMESENT Signal. */
712 #endif
713 #if defined(PRS_MODEM_PREDET)
714   prsSignalMODEM_PREDET              = PRS_MODEM_PREDET,         /**< MODEM_PREDET Signal. */
715 #endif
716 #if defined(PRS_MODEM_LRDSADET)
717   prsSignalMODEM_LRDSADET            = PRS_MODEM_LRDSADET,      /**< MODEM_LRDSADET Signal. */
718   prsSignalMODEM_LRDSALIVE           = PRS_MODEM_LRDSALIVE,     /**< MODEM_LRDSALIVE Signal. */
719 #endif
720 #if defined(PRS_MODEM_LOWCORR)
721   prsSignalMODEM_LOWCORR             = PRS_MODEM_LOWCORR,       /**< MODEM_LOWCORR Signal. */
722   prsSignalMODEM_NEWSYMBOL           = PRS_MODEM_NEWSYMBOL,     /**< MODEM_NEWSYMBOL Signal. */
723   prsSignalMODEM_NEWWND              = PRS_MODEM_NEWWND,        /**< MODEM_NEWWND Signal. */
724   prsSignalMODEM_POSTPONE            = PRS_MODEM_POSTPONE,      /**< MODEM_POSTPONE Signal. */
725 #endif
726 #if defined(PRS_MODEMH_PRESENT)
727   prsSignalMODEMH_PRESENT            = PRS_MODEMH_PRESENT,      /**< MODEMH_PRESENT Signal. */
728   prsSignalMODEMH_RSSIJUMP           = PRS_MODEMH_RSSIJUMP,     /**< MODEMH_RSSIJUMP Signal. */
729   prsSignalMODEMH_SYNCSENT           = PRS_MODEMH_SYNCSENT,     /**< MODEMH_SYNCSENT Signal. */
730   prsSignalMODEMH_TIMDET             = PRS_MODEMH_TIMDET,       /**< MODEMH_TIMDET Signal. */
731   prsSignalMODEMH_WEAK               = PRS_MODEMH_WEAK,         /**< MODEMH_WEAK Signal. */
732   prsSignalMODEMH_EOF                = PRS_MODEMH_EOF,          /**< MODEMH_EOF Signal. */
733 #endif
734 #if defined(PRS_MODEMH_SI)
735   prsSignalMODEMH_SI                 = PRS_MODEMH_SI,           /**< MODEMH_SI Signal. */
736 #endif
737 #if defined(PRS_FRC_DCLK)
738   prsSignalFRC_DCLK                  = PRS_FRC_DCLK,            /**< FRC_DCLK Signal. */
739   prsSignalFRC_DOUT                  = PRS_FRC_DOUT,            /**< FRC_DOUT Signal. */
740 #endif
741 #if defined(PRS_PROTIMERL_BOF)
742   prsSignalPROTIMERL_BOF             = PRS_PROTIMERL_BOF,       /**< PROTIMERL_BOF Signal. */
743   prsSignalPROTIMERL_CC0             = PRS_PROTIMERL_CC0,       /**< PROTIMERL_CC0 Signal. */
744   prsSignalPROTIMERL_CC1             = PRS_PROTIMERL_CC1,       /**< PROTIMERL_CC1 Signal. */
745   prsSignalPROTIMERL_CC2             = PRS_PROTIMERL_CC2,       /**< PROTIMERL_CC2 Signal. */
746   prsSignalPROTIMERL_CC3             = PRS_PROTIMERL_CC3,       /**< PROTIMERL_CC3 Signal. */
747   prsSignalPROTIMERL_CC4             = PRS_PROTIMERL_CC4,       /**< PROTIMERL_CC4 Signal. */
748   prsSignalPROTIMERL_LBTF            = PRS_PROTIMERL_LBTF,      /**< PROTIMERL_LBTF Signal. */
749   prsSignalPROTIMERL_LBTR            = PRS_PROTIMERL_LBTR,      /**< PROTIMERL_LBTR Signal. */
750 #endif
751 #if defined(PRS_PROTIMER_LBTR)
752   prsSignalPROTIMER_LBTR             = PRS_PROTIMER_LBTR,        /**< PROTIMER_LBTR Signal. */
753   prsSignalPROTIMER_LBTF             = PRS_PROTIMER_LBTF,        /**< PROTIMER_LBTF Signal. */
754 #endif
755 #if defined(PRS_PROTIMER_LBTS)
756   prsSignalPROTIMER_LBTS             = PRS_PROTIMER_LBTS,        /**< PROTIMER_LBTS Signal. */
757 #endif
758 #if defined(PRS_PROTIMER_POF)
759   prsSignalPROTIMER_POF              = PRS_PROTIMER_POF,        /**< PROTIMER_POF Signal. */
760   prsSignalPROTIMER_T0MATCH          = PRS_PROTIMER_T0MATCH,    /**< PROTIMER_T0MATCH Signal. */
761   prsSignalPROTIMER_T0UF             = PRS_PROTIMER_T0UF,       /**< PROTIMER_T0UF Signal. */
762   prsSignalPROTIMER_T1MATCH          = PRS_PROTIMER_T1MATCH,    /**< PROTIMER_T1MATCH Signal. */
763   prsSignalPROTIMER_T1UF             = PRS_PROTIMER_T1UF,       /**< PROTIMER_T1UF Signal. */
764   prsSignalPROTIMER_WOF              = PRS_PROTIMER_WOF,        /**< PROTIMER_WOF Signal. */
765 #endif
766 #if defined(PRS_RAC_ACTIVE)
767   prsSignalRAC_ACTIVE                = PRS_RAC_ACTIVE,          /**< RAC_ACTIVE Signal. */
768   prsSignalRAC_LNAEN                 = PRS_RAC_LNAEN,           /**< RAC_LNAEN Signal. */
769   prsSignalRAC_PAEN                  = PRS_RAC_PAEN,            /**< RAC_PAEN Signal. */
770   prsSignalRAC_RX                    = PRS_RAC_RX,              /**< RAC_RX Signal. */
771   prsSignalRAC_TX                    = PRS_RAC_TX,              /**< RAC_TX Signal. */
772 #endif
773 #if defined(PRS_RACL_ACTIVE)
774   prsSignalRACL_ACTIVE               = PRS_RACL_ACTIVE,          /**< RACL_ACTIVE Signal. */
775   prsSignalRACL_LNAEN                = PRS_RACL_LNAEN,           /**< RACL_LNAEN Signal. */
776   prsSignalRACL_PAEN                 = PRS_RACL_PAEN,            /**< RACL_PAEN Signal. */
777   prsSignalRACL_RX                   = PRS_RACL_RX,              /**< RACL_RX Signal. */
778   prsSignalRACL_TX                   = PRS_RACL_TX,              /**< RACL_TX Signal. */
779   prsSignalRACL_CTIOUT0              = PRS_RACL_CTIOUT0,        /**< RACL_CTIOUT0 Signal. */
780   prsSignalRACL_CTIOUT1              = PRS_RACL_CTIOUT1,        /**< RACL_CTIOUT1 Signal. */
781   prsSignalRACL_CTIOUT2              = PRS_RACL_CTIOUT2,        /**< RACL_CTIOUT2 Signal. */
782 #endif
783 #if defined(PRS_RAC_CTIOUT3)
784   prsSignalRAC_CTIOUT3               = PRS_RAC_CTIOUT3,         /**< RAC_CTIOUT3 Signal. */
785 #endif
786 #if defined(PRS_RAC_AUXADCDATA)
787   prsSignalRAC_AUXADCDATA            = PRS_RAC_AUXADCDATA,      /**< RAC_AUXADCDATA Signal. */
788   prsSignalRAC_AUXADCDATAVALID       = PRS_RAC_AUXADCDATAVALID, /**< RAC_AUXADCDATAVALID Signal. */
789 #endif
790 #if defined(PRS_SYNTH_MUX0)
791   prsSignalSYNTH_MUX0                = PRS_SYNTH_MUX0,          /**< SYNTH_MUX0 Signal. */
792   prsSignalSYNTH_MUX1                = PRS_SYNTH_MUX1,          /**< SYNTH_MUX1 Signal. */
793 #endif
794 #if defined(PRS_PRORTC_CCV0)
795   prsSignalPRORTC_CCV0               = PRS_PRORTC_CCV0,         /**< PRORTC_CCV0 Signal. */
796   prsSignalPRORTC_CCV1               = PRS_PRORTC_CCV1,         /**< PRORTC_CCV1 Signal. */
797 #endif
798 #if defined(RFFPLL0)
799   prsSignalRFFPLL0L_CLKDIGDIV4      = PRS_RFFPLL0L_CLKDIGDIV4,      /**< RFFPLL0L CLKDIGDIV4 Signal. */
800   prsSignalRFFPLL0L_CLKMODEMDIV4    = PRS_RFFPLL0L_CLKMODEMDIV4,    /**< RFFPLL0L CLKMODEMDIV4 Signal. */
801 #if defined(PRS_RFFPLL0L_RFBIASFSMSTATE0)
802   prsSignalRFFPLL0L_RFBIASFSMSTATE0 = PRS_RFFPLL0L_RFBIASFSMSTATE0, /**< RFFPLL0L RFBIASFSMSTATE0 Signal. */
803   prsSignalRFFPLL0L_RFBIASFSMSTATE1 = PRS_RFFPLL0L_RFBIASFSMSTATE1, /**< RFFPLL0L RFBIASFSMSTATE1 Signal. */
804   prsSignalRFFPLL0L_RFFPLLFSMSTATE0 = PRS_RFFPLL0L_RFFPLLFSMSTATE0, /**< RFFPLL0L RFFPLLFSMSTATE0 Signal. */
805   prsSignalRFFPLL0L_RFFPLLFSMSTATE1 = PRS_RFFPLL0L_RFFPLLFSMSTATE1, /**< RFFPLL0L RFFPLLFSMSTATE1 Signal. */
806   prsSignalRFFPLL0L_RFFPLLFSMSTATE2 = PRS_RFFPLL0L_RFFPLLFSMSTATE2, /**< RFFPLL0L RFFPLLFSMSTATE2 Signal. */
807   prsSignalRFFPLL0L_RFBIASFSMSTATE2 = PRS_RFFPLL0L_RFBIASFSMSTATE2, /**< RFFPLL0L RFBIASFSMSTATE2 Signal. */
808   prsSignalRFFPLL0_RFFPLLFSMSTATE3  = PRS_RFFPLL0_RFFPLLFSMSTATE3,  /**< RFFPLL0 RFFPLLFSMSTATE3 Signal. */
809 #endif
810 #endif
811 #if defined(FEFILT0)
812   prsSignalFEFILT0_REMPTY = PRS_FEFILT0_REMPTY, /**< FEFILT0 REMPTY Signal. */
813   prsSignalFEFILT0_WFULL  = PRS_FEFILT0_WFULL,  /**< FEFILT0 WFULL Signal. */
814 #endif
815 #if defined(FEFILT0)
816   prsSignalFEFILT1_REMPTY = PRS_FEFILT1_REMPTY, /**< FEFILT1 REMPTY Signal. */
817   prsSignalFEFILT1_WFULL  = PRS_FEFILT1_WFULL,  /**< FEFILT1 WFULL Signal. */
818 #endif
819 #if defined(ETAMPDET)
820   prsSignalETAMPDET_TAMPERSRCETAMPDET = PRS_ETAMPDET_TAMPERSRCETAMPDET, /**< ETAMPDET TAMPERSRCETAMPDET Signal. */
821 #endif
822 #if defined(SMCTRL)
823   prsSignalSMCTRLL_SOFTM0 = PRS_SMCTRLL_SOFTM0, /**< SMCTRLL SOFTM0 Signal. */
824   prsSignalSMCTRLL_SOFTM1 = PRS_SMCTRLL_SOFTM1, /**< SMCTRLL SOFTM1 Signal. */
825   prsSignalSMCTRLL_SOFTM2 = PRS_SMCTRLL_SOFTM2, /**< SMCTRLL SOFTM2 Signal. */
826   prsSignalSMCTRLL_SOFTM3 = PRS_SMCTRLL_SOFTM3, /**< SMCTRLL SOFTM3 Signal. */
827   prsSignalSMCTRLL_SOFTM4 = PRS_SMCTRLL_SOFTM4, /**< SMCTRLL SOFTM4 Signal. */
828   prsSignalSMCTRLL_SOFTM5 = PRS_SMCTRLL_SOFTM5, /**< SMCTRLL SOFTM5 Signal. */
829   prsSignalSMCTRLL_SOFTM6 = PRS_SMCTRLL_SOFTM6, /**< SMCTRLL SOFTM6 Signal. */
830   prsSignalSMCTRLL_SOFTM7 = PRS_SMCTRLL_SOFTM7, /**< SMCTRLL SOFTM7 Signal. */
831   prsSignalSMCTRL_SOFTM8  = PRS_SMCTRL_SOFTM8,  /**< SMCTRL SOFTM8 Signal. */
832   prsSignalSMCTRL_SOFTM9  = PRS_SMCTRL_SOFTM9,  /**< SMCTRL SOFTM9 Signal. */
833   prsSignalSMCTRL_SOFTM10 = PRS_SMCTRL_SOFTM10, /**< SMCTRL SOFTM10 Signal. */
834   prsSignalSMCTRL_SOFTM11 = PRS_SMCTRL_SOFTM11, /**< SMCTRL SOFTM11 Signal. */
835 #endif
836 #if defined(PRS_SEHFRCO_COREEN)
837   prsSignalSEHFRCO_COREEN = PRS_SEHFRCO_COREEN, /**< SEHFRCO COREEN Signal. */
838   prsSignalSEHFRCO_STATE0 = PRS_SEHFRCO_STATE0, /**< SEHFRCO STATE0 Signal. */
839   prsSignalSEHFRCO_STATE1 = PRS_SEHFRCO_STATE1, /**< SEHFRCO STATE1 Signal. */
840   prsSignalSEHFRCO_STATE2 = PRS_SEHFRCO_STATE2, /**< SEHFRCO STATE2 Signal. */
841 #endif
842 #if defined(PRS_SEATAMPDET_SEATAMPDETSUPTPDELAY)
843   prsSignalSEATAMPDET_SEATAMPDETSUPTPDELAY = PRS_SEATAMPDET_SEATAMPDETSUPTPDELAY, /**< SEATAMPDET SEATAMPDETSUPTPDELAY Signal. */
844 #endif
845 #if defined(PRS_DCDC_MONO70NSANA)
846   prsSignalDCDC_MONO70NSANA = PRS_DCDC_MONO70NSANA, /** DCDC Pulses for Coulomb Counter Calibration Signal. */
847 #endif
848 #if defined(PRS_LFRCO_CALMEAS)
849   prsSignalLFRCO_CALMEAS = PRS_LFRCO_CALMEAS, /** LFRCO Calibration Measure Signal. */
850   prsSignalLFRCO_SDM     = PRS_LFRCO_SDM,     /** LFRCO Sigma Delta Modulator output Signal. */
851   prsSignalLFRCO_TCMEAS  = PRS_LFRCO_TCMEAS,  /** LFRCO Temperature Check Measure Signal. */
852 #endif
853 } PRS_Signal_t;
854 
855 #if defined(_SILICON_LABS_32B_SERIES_2)
856 /** PRS Consumers. */
857 typedef enum {
858   prsConsumerNone                = 0x000,                                               /**< No PRS consumer */
859   prsConsumerCMU_CALDN           = offsetof(PRS_TypeDef, CONSUMER_CMU_CALDN),           /**< CMU calibration down consumer. */
860   prsConsumerCMU_CALUP           = offsetof(PRS_TypeDef, CONSUMER_CMU_CALUP),           /**< CMU calibration up consumer. */
861 #if defined(IADC_PRESENT)
862   prsConsumerIADC0_SCANTRIGGER   = offsetof(PRS_TypeDef, CONSUMER_IADC0_SCANTRIGGER),   /**< IADC0 scan trigger consumer. */
863   prsConsumerIADC0_SINGLETRIGGER = offsetof(PRS_TypeDef, CONSUMER_IADC0_SINGLETRIGGER), /**< IADC0 single trigger consumer. */
864 #endif
865   prsConsumerLDMA_REQUEST0       = offsetof(PRS_TypeDef, CONSUMER_LDMAXBAR_DMAREQ0),    /**< LDMA Request 0 consumer. */
866   prsConsumerLDMA_REQUEST1       = offsetof(PRS_TypeDef, CONSUMER_LDMAXBAR_DMAREQ1),    /**< LDMA Request 1 consumer. */
867 #if defined(LETIMER0)
868   prsConsumerLETIMER0_CLEAR      = offsetof(PRS_TypeDef, CONSUMER_LETIMER0_CLEAR),      /**< LETIMER0 clear consumer. */
869   prsConsumerLETIMER0_START      = offsetof(PRS_TypeDef, CONSUMER_LETIMER0_START),      /**< LETIMER0 start consumer. */
870   prsConsumerLETIMER0_STOP       = offsetof(PRS_TypeDef, CONSUMER_LETIMER0_STOP),       /**< LETIMER0 stop consumer. */
871 #endif
872   prsConsumerTIMER0_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER0_CC0),          /**< TIMER0 capture/compare channel 0 consumer. */
873   prsConsumerTIMER0_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER0_CC1),          /**< TIMER0 capture/compare channel 1 consumer. */
874   prsConsumerTIMER0_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER0_CC2),          /**< TIMER0 capture/compare channel 2 consumer. */
875   prsConsumerTIMER1_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER1_CC0),          /**< TIMER1 capture/compare channel 0 consumer. */
876   prsConsumerTIMER1_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER1_CC1),          /**< TIMER1 capture/compare channel 1 consumer. */
877   prsConsumerTIMER1_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER1_CC2),          /**< TIMER1 capture/compare channel 2 consumer. */
878   prsConsumerTIMER2_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER2_CC0),          /**< TIMER2 capture/compare channel 0 consumer. */
879   prsConsumerTIMER2_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER2_CC1),          /**< TIMER2 capture/compare channel 1 consumer. */
880   prsConsumerTIMER2_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER2_CC2),          /**< TIMER2 capture/compare channel 2 consumer. */
881   prsConsumerTIMER3_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER3_CC0),          /**< TIMER3 capture/compare channel 0 consumer. */
882   prsConsumerTIMER3_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER3_CC1),          /**< TIMER3 capture/compare channel 1 consumer. */
883   prsConsumerTIMER3_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER3_CC2),          /**< TIMER3 capture/compare channel 2 consumer. */
884 #if defined(TIMER4)
885   prsConsumerTIMER4_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER4_CC0),          /**< TIMER4 capture/compare channel 0 consumer. */
886   prsConsumerTIMER4_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER4_CC1),          /**< TIMER4 capture/compare channel 1 consumer. */
887   prsConsumerTIMER4_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER4_CC2),          /**< TIMER4 capture/compare channel 2 consumer. */
888 #endif
889 #if defined(TIMER5)
890   prsConsumerTIMER5_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER5_CC0),          /**< TIMER5 capture/compare channel 0 consumer. */
891   prsConsumerTIMER5_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER5_CC1),          /**< TIMER5 capture/compare channel 1 consumer. */
892   prsConsumerTIMER5_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER5_CC2),          /**< TIMER5 capture/compare channel 2 consumer. */
893 #endif
894 #if defined(TIMER6)
895   prsConsumerTIMER6_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER6_CC0),          /**< TIMER6 capture/compare channel 0 consumer. */
896   prsConsumerTIMER6_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER6_CC1),          /**< TIMER6 capture/compare channel 1 consumer. */
897   prsConsumerTIMER6_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER6_CC2),          /**< TIMER6 capture/compare channel 2 consumer. */
898 #endif
899 #if defined(TIMER7)
900   prsConsumerTIMER7_CC0          = offsetof(PRS_TypeDef, CONSUMER_TIMER7_CC0),          /**< TIMER7 capture/compare channel 0 consumer. */
901   prsConsumerTIMER7_CC1          = offsetof(PRS_TypeDef, CONSUMER_TIMER7_CC1),          /**< TIMER7 capture/compare channel 1 consumer. */
902   prsConsumerTIMER7_CC2          = offsetof(PRS_TypeDef, CONSUMER_TIMER7_CC2),          /**< TIMER7 capture/compare channel 2 consumer. */
903 #endif
904 #if defined(USART0)
905   prsConsumerUSART0_CLK          = offsetof(PRS_TypeDef, CONSUMER_USART0_CLK),          /**< USART0 clock consumer. */
906   prsConsumerUSART0_IR           = offsetof(PRS_TypeDef, CONSUMER_USART0_IR),           /**< USART0 IR consumer. */
907   prsConsumerUSART0_RX           = offsetof(PRS_TypeDef, CONSUMER_USART0_RX),           /**< USART0 RX consumer. */
908   prsConsumerUSART0_TRIGGER      = offsetof(PRS_TypeDef, CONSUMER_USART0_TRIGGER),      /**< USART0 trigger consumer. */
909 #endif
910 #if defined(USART1)
911   prsConsumerUSART1_CLK          = offsetof(PRS_TypeDef, CONSUMER_USART1_CLK),          /**< USART1 clock consumer. */
912   prsConsumerUSART1_IR           = offsetof(PRS_TypeDef, CONSUMER_USART1_IR),           /**< USART1 IR consumer. */
913   prsConsumerUSART1_RX           = offsetof(PRS_TypeDef, CONSUMER_USART1_RX),           /**< USART1 TX consumer. */
914   prsConsumerUSART1_TRIGGER      = offsetof(PRS_TypeDef, CONSUMER_USART1_TRIGGER),      /**< USART1 trigger consumer. */
915 #endif
916 #if defined(USART2)
917   prsConsumerUSART2_CLK          = offsetof(PRS_TypeDef, CONSUMER_USART2_CLK),          /**< USART2 clock consumer. */
918   prsConsumerUSART2_IR           = offsetof(PRS_TypeDef, CONSUMER_USART2_IR),           /**< USART2 IR consumer. */
919   prsConsumerUSART2_RX           = offsetof(PRS_TypeDef, CONSUMER_USART2_RX),           /**< USART2 RX consumer. */
920   prsConsumerUSART2_TRIGGER      = offsetof(PRS_TypeDef, CONSUMER_USART2_TRIGGER),      /**< USART2 trigger consumer. */
921 #endif
922 #if defined(EUSART0)
923   prsConsumerEUSART0_CLK         = offsetof(PRS_TypeDef, CONSUMER_EUSART0_CLK),         /**< EUSART0 clk consumer. */
924   prsConsumerEUSART0_RX          = offsetof(PRS_TypeDef, CONSUMER_EUSART0_RX),          /**< EUSART0 RX consumer. */
925   prsConsumerEUSART0_TRIGGER     = offsetof(PRS_TypeDef, CONSUMER_EUSART0_TRIGGER),     /**< EUSART0 trigger consumer. */
926 #endif
927 #if defined(EUSART1)
928   prsConsumerEUSART1_CLK         = offsetof(PRS_TypeDef, CONSUMER_EUSART1_CLK),         /**< EUSART1 clk consumer. */
929   prsConsumerEUSART1_RX          = offsetof(PRS_TypeDef, CONSUMER_EUSART1_RX),          /**< EUSART1 RX consumer. */
930   prsConsumerEUSART1_TRIGGER     = offsetof(PRS_TypeDef, CONSUMER_EUSART1_TRIGGER),     /**< EUSART1 trigger consumer. */
931 #endif
932 #if defined(EUSART2)
933   prsConsumerEUSART2_CLK         = offsetof(PRS_TypeDef, CONSUMER_EUSART2_CLK),         /**< EUSART1 clk consumer. */
934   prsConsumerEUSART2_RX          = offsetof(PRS_TypeDef, CONSUMER_EUSART2_RX),          /**< EUSART2 RX consumer. */
935   prsConsumerEUSART2_TRIGGER     = offsetof(PRS_TypeDef, CONSUMER_EUSART2_TRIGGER),     /**< EUSART2 trigger consumer. */
936 #endif
937 #if defined(EUSART3)
938   prsConsumerEUSART3_RX          = offsetof(PRS_TypeDef, CONSUMER_EUSART3_RX),             /**< EUSART3 RX consumer. */
939   prsConsumerEUSART3_TRIGGER     = offsetof(PRS_TypeDef, CONSUMER_EUSART3_TRIGGER),        /**< EUSART3 trigger consumer. */
940 #endif
941 #if defined(EUSART4)
942   prsConsumerEUSART4_RX          = offsetof(PRS_TypeDef, CONSUMER_EUSART4_RX),             /**< EUSART4 RX consumer. */
943   prsConsumerEUSART4_TRIGGER     = offsetof(PRS_TypeDef, CONSUMER_EUSART4_TRIGGER),        /**< EUSART4 trigger consumer. */
944 #endif
945 #if defined(EUART0)
946   prsConsumerEUART0_RX           = offsetof(PRS_TypeDef, CONSUMER_EUART0_RX),           /**< EUART0 RX consumer. */
947   prsConsumerEUART0_TRIGGER      = offsetof(PRS_TypeDef, CONSUMER_EUART0_TRIGGER),      /**< EUART0 TRIGGER Consumer. */
948 #endif
949   prsConsumerWDOG0_SRC0          = offsetof(PRS_TypeDef, CONSUMER_WDOG0_SRC0),          /**< WDOG0 source 0 consumer. */
950   prsConsumerWDOG0_SRC1          = offsetof(PRS_TypeDef, CONSUMER_WDOG0_SRC1),          /**< WDOG0 source 1 consumer. */
951 #if defined(WDOG1)
952   prsConsumerWDOG1_SRC0          = offsetof(PRS_TypeDef, CONSUMER_WDOG1_SRC0),          /**< WDOG1 source 0 consumer. */
953   prsConsumerWDOG1_SRC1          = offsetof(PRS_TypeDef, CONSUMER_WDOG1_SRC1),          /**< WDOG1 source 1 consumer. */
954 #endif
955 #if defined(PCNT0)
956   prsConsumerPCNT0_IN0           = offsetof(PRS_TypeDef, CONSUMER_PCNT0_S0IN),          /**< PCNT0 input 0 consumer. */
957   prsConsumerPCNT0_IN1           = offsetof(PRS_TypeDef, CONSUMER_PCNT0_S1IN),          /**< PCNT0 input 1 consumer. */
958 #endif
959 #if defined(_PRS_CONSUMER_RTCC_CC2_MASK)
960   prsConsumerRTCC_CC0            = offsetof(PRS_TypeDef, CONSUMER_RTCC_CC0),            /**< RTCC capture/compare channel 0 consumer. */
961   prsConsumerRTCC_CC1            = offsetof(PRS_TypeDef, CONSUMER_RTCC_CC1),            /**< RTCC capture/compare channel 1 consumer. */
962   prsConsumerRTCC_CC2            = offsetof(PRS_TypeDef, CONSUMER_RTCC_CC2),            /**< RTCC capture/compare channel 2 consumer. */
963 #endif
964 #if defined(SYSRTC0)
965   prsConsumerSYSRTC0_SRC0        = offsetof(PRS_TypeDef, CONSUMER_SYSRTC0_IN0),         /**< SYSRTC0 input 0 consumer. */
966   prsConsumerSYSRTC0_SRC1        = offsetof(PRS_TypeDef, CONSUMER_SYSRTC0_IN1),         /**< SYSRTC0 input 1 consumer. */
967 #endif
968 #if defined(_PRS_CONSUMER_HFXO0_OSCREQ_MASK)
969   prsConsumerHFXO0_OSCREQ        = offsetof(PRS_TypeDef, CONSUMER_HFXO0_OSCREQ),        /**< OSCREQ consumer. */
970   prsConsumerHFXO0_TIMEOUT       = offsetof(PRS_TypeDef, CONSUMER_HFXO0_TIMEOUT),       /**< HFXO0_TIMEOUT consumer. */
971 #endif
972 #if defined(LESENSE)
973   prsConsumerLESENSE_START       = offsetof(PRS_TypeDef, CONSUMER_LESENSE_START),       /**< LESENSE_START consumer. */
974 #endif
975 #if defined(VDAC0)
976   prsConsumerVDAC0_ASYNCTRIGCH0  = offsetof(PRS_TypeDef, CONSUMER_VDAC0_ASYNCTRIGCH0),  /**< VDAC0 ASYNC TRIGER CH0 consumer. */
977   prsConsumerVDAC0_ASYNCTRIGCH1  = offsetof(PRS_TypeDef, CONSUMER_VDAC0_ASYNCTRIGCH1),  /**< VDAC0 ASYNC TRIGER CH1 consumer. */
978   prsConsumerVDAC0_SYNCTRIGCH0   = offsetof(PRS_TypeDef, CONSUMER_VDAC0_SYNCTRIGCH0),   /**< VDAC0 SYNC TRIGER CH0 consumer. */
979   prsConsumerVDAC0_SYNCTRIGCH1   = offsetof(PRS_TypeDef, CONSUMER_VDAC0_SYNCTRIGCH1),   /**< VDAC0 SYNC TRIGER CH1 consumer. */
980 #endif
981 #if defined(VDAC1)
982   prsConsumerVDAC1_ASYNCTRIGCH0  = offsetof(PRS_TypeDef, CONSUMER_VDAC1_ASYNCTRIGCH0),  /**< VDAC1 ASYNC TRIGER CH0 consumer. */
983   prsConsumerVDAC1_ASYNCTRIGCH1  = offsetof(PRS_TypeDef, CONSUMER_VDAC1_ASYNCTRIGCH1),  /**< VDAC1 ASYNC TRIGER CH1 consumer. */
984   prsConsumerVDAC1_SYNCTRIGCH0   = offsetof(PRS_TypeDef, CONSUMER_VDAC1_SYNCTRIGCH0),   /**< VDAC1 SYNC TRIGER CH0 consumer. */
985   prsConsumerVDAC1_SYNCTRIGCH1   = offsetof(PRS_TypeDef, CONSUMER_VDAC1_SYNCTRIGCH1),   /**< VDAC1 SYNC TRIGER CH1 consumer. */
986 #endif
987 } PRS_Consumer_t;
988 #endif
989 
990 /*******************************************************************************
991  *****************************   PROTOTYPES   **********************************
992  ******************************************************************************/
993 
994 /***************************************************************************//**
995  * @brief
996  *   Set level control bit for one or more channels.
997  *
998  * @details
999  *   The level value for a channel is XORed with both the pulse possibly issued
1000  *   by PRS_PulseTrigger() and the PRS input signal selected for the channel(s).
1001  *
1002  * @cond DOXYDOC_S2_DEVICE
1003  * @note
1004  *   Note that software level control is only available for asynchronous
1005  *   channels on Series 2 devices.
1006  * @endcond
1007  *
1008  * @param[in] level
1009  *   Level to use for channels indicated by @p mask. Use logical OR combination
1010  *   of PRS_SWLEVEL_CHnLEVEL defines for channels to set high level, otherwise 0.
1011  *
1012  * @param[in] mask
1013  *   Mask indicating which channels to set level for. Use logical OR combination
1014  *   of PRS_SWLEVEL_CHnLEVEL defines.
1015  ******************************************************************************/
PRS_LevelSet(uint32_t level,uint32_t mask)1016 __STATIC_INLINE void PRS_LevelSet(uint32_t level, uint32_t mask)
1017 {
1018 #if defined(_PRS_SWLEVEL_MASK)
1019   PRS->SWLEVEL = (PRS->SWLEVEL & ~mask) | (level & mask);
1020 #else
1021   PRS->ASYNC_SWLEVEL = (PRS->ASYNC_SWLEVEL & ~mask) | (level & mask);
1022 #endif
1023 }
1024 
1025 /***************************************************************************//**
1026  * @brief
1027  *   Get level control bit for all channels.
1028  *
1029  * @return
1030  *   The current software level configuration.
1031  ******************************************************************************/
PRS_LevelGet(void)1032 __STATIC_INLINE uint32_t PRS_LevelGet(void)
1033 {
1034 #if defined(_PRS_SWLEVEL_MASK)
1035   return PRS->SWLEVEL;
1036 #else
1037   return PRS->ASYNC_SWLEVEL;
1038 #endif
1039 }
1040 
1041 #if defined(_PRS_ASYNC_PEEK_MASK) || defined(_PRS_PEEK_MASK)
1042 /***************************************************************************//**
1043  * @brief
1044  *   Get the PRS channel values for all channels.
1045  *
1046  * @param[in] type
1047  *   PRS channel type. This can be either @ref prsTypeAsync or
1048  *   @ref prsTypeSync.
1049  *
1050  * @return
1051  *   The current PRS channel output values for all channels as a bitset.
1052  ******************************************************************************/
PRS_Values(PRS_ChType_t type)1053 __STATIC_INLINE uint32_t PRS_Values(PRS_ChType_t type)
1054 {
1055 #if defined(_PRS_ASYNC_PEEK_MASK)
1056   if (type == prsTypeAsync) {
1057     return PRS->ASYNC_PEEK;
1058   } else {
1059     return PRS->SYNC_PEEK;
1060   }
1061 #else
1062   (void) type;
1063   return PRS->PEEK;
1064 #endif
1065 }
1066 
1067 /***************************************************************************//**
1068  * @brief
1069  *   Get the PRS channel value for a single channel.
1070  *
1071  * @param[in] ch
1072  *   PRS channel number.
1073  *
1074  * @param[in] type
1075  *   PRS channel type. This can be either @ref prsTypeAsync or
1076  *   @ref prsTypeSync.
1077  *
1078  * @return
1079  *   The current PRS channel output value. This is either 0 or 1.
1080  ******************************************************************************/
PRS_ChannelValue(unsigned int ch,PRS_ChType_t type)1081 __STATIC_INLINE bool PRS_ChannelValue(unsigned int ch, PRS_ChType_t type)
1082 {
1083   return (0UL != ((PRS_Values(type) >> ch) & 0x1U));
1084 }
1085 #endif
1086 
1087 /***************************************************************************//**
1088  * @brief
1089  *   Trigger a high pulse (one HFPERCLK) for one or more channels.
1090  *
1091  * @details
1092  *   Setting a bit for a channel causes the bit in the register to remain high
1093  *   for one HFPERCLK cycle. Pulse is XORed with both the corresponding bit
1094  *   in PRS SWLEVEL register and the PRS input signal selected for the
1095  *   channel(s).
1096  *
1097  * @param[in] channels
1098  *   Logical ORed combination of channels to trigger a pulse for. Use
1099  *   PRS_SWPULSE_CHnPULSE defines.
1100  ******************************************************************************/
PRS_PulseTrigger(uint32_t channels)1101 __STATIC_INLINE void PRS_PulseTrigger(uint32_t channels)
1102 {
1103 #if defined(_PRS_SWPULSE_MASK)
1104   PRS->SWPULSE = channels & _PRS_SWPULSE_MASK;
1105 #else
1106   PRS->ASYNC_SWPULSE = channels & _PRS_ASYNC_SWPULSE_MASK;
1107 #endif
1108 }
1109 
1110 /***************************************************************************//**
1111  * @brief
1112  *   Set the PRS channel level for one asynchronous PRS channel.
1113  *
1114  * @param[in] ch
1115  *   PRS channel number.
1116  *
1117  * @param[in] level
1118  *   true to set the level high (1) and false to set the level low (0).
1119  ******************************************************************************/
PRS_ChannelLevelSet(unsigned int ch,bool level)1120 __STATIC_INLINE void PRS_ChannelLevelSet(unsigned int ch, bool level)
1121 {
1122   PRS_LevelSet((uint32_t) level << ch, 0x1UL << ch);
1123 }
1124 
1125 /***************************************************************************//**
1126  * @brief
1127  *   Trigger a pulse on one PRS channel.
1128  *
1129  * @param[in] ch
1130  *   PRS channel number.
1131  ******************************************************************************/
PRS_ChannelPulse(unsigned int ch)1132 __STATIC_INLINE void PRS_ChannelPulse(unsigned int ch)
1133 {
1134   PRS_PulseTrigger(0x1UL << ch);
1135 }
1136 
1137 void PRS_SourceSignalSet(unsigned int ch,
1138                          uint32_t source,
1139                          uint32_t signal,
1140                          PRS_Edge_TypeDef edge);
1141 
1142 #if defined(PRS_ASYNC_SUPPORTED)
1143 void PRS_SourceAsyncSignalSet(unsigned int ch,
1144                               uint32_t source,
1145                               uint32_t signal);
1146 #endif
1147 #if defined(_PRS_ROUTELOC0_MASK) || (defined(_PRS_ROUTE_MASK) && (_PRS_ROUTE_MASK))
1148 void PRS_GpioOutputLocation(unsigned int ch,
1149                             unsigned int location);
1150 #endif
1151 
1152 int PRS_GetFreeChannel(PRS_ChType_t type);
1153 void PRS_Reset(void);
1154 void PRS_ConnectSignal(unsigned int ch, PRS_ChType_t type, PRS_Signal_t signal);
1155 #if defined(_SILICON_LABS_32B_SERIES_2)
1156 uint32_t PRS_ConvertToSyncSource(uint32_t asyncSource);
1157 uint32_t PRS_ConvertToSyncSignal(uint32_t asyncSource, uint32_t asyncSignal);
1158 void PRS_ConnectConsumer(unsigned int ch, PRS_ChType_t type, PRS_Consumer_t consumer);
1159 void PRS_PinOutput(unsigned int ch, PRS_ChType_t type, GPIO_Port_TypeDef port, uint8_t pin);
1160 void PRS_Combine(unsigned int chA, unsigned int chB, PRS_Logic_t logic);
1161 #endif
1162 
1163 /** @} (end addtogroup prs) */
1164 
1165 #ifdef __cplusplus
1166 }
1167 #endif
1168 
1169 #endif /* defined(PRS_COUNT) && (PRS_COUNT > 0) */
1170 #endif /* EM_PRS_H */
1171