CC27xxDriverLibrary
evtsvt.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Filename: evtsvt.h
3  *
4  * Description: Prototypes and defines for the EVTSVT API.
5  *
6  * Copyright (c) 2025 Texas Instruments Incorporated
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * 1) Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the following disclaimer.
13  *
14  * 2) Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17  *
18  * 3) Neither the name of the copyright holder nor the names of its
19  * contributors may be used to endorse or promote products derived from this
20  * software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
26  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  *
34  ******************************************************************************/
35 
36 #ifndef __EVTSVT_H__
37 #define __EVTSVT_H__
38 
39 //*****************************************************************************
40 //
45 //
46 //*****************************************************************************
47 
48 #include <stdint.h>
49 #include "../inc/hw_types.h"
50 #include "../inc/hw_memmap.h"
51 #include "../inc/hw_evtsvt.h"
52 
53 //*****************************************************************************
54 //
55 // If building with a C++ compiler, make all of the definitions in this header
56 // have a C binding.
57 //
58 //*****************************************************************************
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
63 //*****************************************************************************
64 //
65 // Event subscribers
66 //
67 //*****************************************************************************
68 
69 #define EVTSVT_SUB_CPUIRQ0 EVTSVT_O_CPUIRQ0SEL
70 #define EVTSVT_SUB_CPUIRQ1 EVTSVT_O_CPUIRQ1SEL
71 #define EVTSVT_SUB_CPUIRQ2 EVTSVT_O_CPUIRQ2SEL
72 #define EVTSVT_SUB_CPUIRQ3 EVTSVT_O_CPUIRQ3SEL
73 #define EVTSVT_SUB_CPUIRQ4 EVTSVT_O_CPUIRQ4SEL
74 #define EVTSVT_SUB_CPUIRQ16 EVTSVT_O_CPUIRQ16SEL
75 #define EVTSVT_SUB_CPUIRQ17 EVTSVT_O_CPUIRQ17SEL
76 #define EVTSVT_SUB_SYSTIMC1 EVTSVT_O_SYSTIMC1SEL
77 #define EVTSVT_SUB_SYSTIMC5 EVTSVT_O_SYSTIMC5SEL
78 #define EVTSVT_SUB_ADCTRG EVTSVT_O_ADCTRGSEL
79 #define EVTSVT_SUB_LGPTSYNC EVTSVT_O_LGPTSYNCSEL
80 #define EVTSVT_SUB_LGPT0IN0 EVTSVT_O_LGPT0IN0SEL
81 #define EVTSVT_SUB_LGPT0IN1 EVTSVT_O_LGPT0IN1SEL
82 #define EVTSVT_SUB_LGPT0IN2 EVTSVT_O_LGPT0IN2SEL
83 #define EVTSVT_SUB_LGPT0TEN EVTSVT_O_LGPT0TENSEL
84 #define EVTSVT_SUB_LGPT1IN0 EVTSVT_O_LGPT1IN0SEL
85 #define EVTSVT_SUB_LGPT1IN1 EVTSVT_O_LGPT1IN1SEL
86 #define EVTSVT_SUB_LGPT1IN2 EVTSVT_O_LGPT1IN2SEL
87 #define EVTSVT_SUB_LGPT1TEN EVTSVT_O_LGPT1TENSEL
88 #define EVTSVT_SUB_LGPT2IN0 EVTSVT_O_LGPT2IN0SEL
89 #define EVTSVT_SUB_LGPT2IN1 EVTSVT_O_LGPT2IN1SEL
90 #define EVTSVT_SUB_LGPT2IN2 EVTSVT_O_LGPT2IN2SEL
91 #define EVTSVT_SUB_LGPT2TEN EVTSVT_O_LGPT2TENSEL
92 #define EVTSVT_SUB_LGPT3IN0 EVTSVT_O_LGPT3IN0SEL
93 #define EVTSVT_SUB_LGPT3IN1 EVTSVT_O_LGPT3IN1SEL
94 #define EVTSVT_SUB_LGPT3IN2 EVTSVT_O_LGPT3IN2SEL
95 #define EVTSVT_SUB_LGPT3TEN EVTSVT_O_LGPT3TENSEL
96 #define EVTSVT_SUB_I2SSTMP EVTSVT_O_I2SSTMPSEL
97 
98 //*****************************************************************************
99 //
100 // DMA channels
101 //
102 //*****************************************************************************
103 
104 #define EVTSVT_DMA_CH0 EVTSVT_O_DMACH0SEL
105 #define EVTSVT_DMA_CH1 EVTSVT_O_DMACH1SEL
106 #define EVTSVT_DMA_CH2 EVTSVT_O_DMACH2SEL
107 #define EVTSVT_DMA_CH3 EVTSVT_O_DMACH3SEL
108 #define EVTSVT_DMA_CH4 EVTSVT_O_DMACH4SEL
109 #define EVTSVT_DMA_CH5 EVTSVT_O_DMACH5SEL
110 #define EVTSVT_DMA_CH6 EVTSVT_O_DMACH6SEL
111 #define EVTSVT_DMA_CH7 EVTSVT_O_DMACH7SEL
112 #define EVTSVT_DMA_CH8 EVTSVT_O_DMACH8SEL
113 #define EVTSVT_DMA_CH9 EVTSVT_O_DMACH9SEL
114 #define EVTSVT_DMA_CH10 EVTSVT_O_DMACH10SEL
115 #define EVTSVT_DMA_CH11 EVTSVT_O_DMACH11SEL
116 
117 //*****************************************************************************
118 //
119 // DMA triggers for use use with dedicated DMA channels (DCH) in
120 // EVTSVTConfigureDma(). Channels 0-7 are dedicated DMA channels.
121 //
122 //*****************************************************************************
123 
124 #define EVTSVT_DMA_TRIG_UART0TXTRG EVTSVT_DMACH2SEL_IPID_UART0TXTRG
125 #define EVTSVT_DMA_TRIG_UART0RXTRG EVTSVT_DMACH3SEL_IPID_UART0RXTRG
126 #define EVTSVT_DMA_TRIG_UART1TXTRG EVTSVT_DMACH1SEL_IPID_UART1TXTRG
127 #define EVTSVT_DMA_TRIG_UART1RXTRG EVTSVT_DMACH0SEL_IPID_UART1RXTRG
128 #define EVTSVT_DMA_TRIG_SPI0TXTRG EVTSVT_DMACH0SEL_IPID_SPI0TXTRG
129 #define EVTSVT_DMA_TRIG_SPI0RXTRG EVTSVT_DMACH1SEL_IPID_SPI0RXTRG
130 #define EVTSVT_DMA_TRIG_SPI1TXTRG EVTSVT_DMACH6SEL_IPID_SPI1TXTRG
131 #define EVTSVT_DMA_TRIG_SPI1RXTRG EVTSVT_DMACH7SEL_IPID_SPI1RXTRG
132 #define EVTSVT_DMA_TRIG_LRFDTRG EVTSVT_DMACH2SEL_IPID_LRFDTRG
133 #define EVTSVT_DMA_TRIG_ADC0TRG EVTSVT_DMACH3SEL_IPID_ADC0TRG
134 #define EVTSVT_DMA_TRIG_LAESTRGA EVTSVT_DMACH4SEL_IPID_LAESTRGA
135 #define EVTSVT_DMA_TRIG_LAESTRGB EVTSVT_DMACH5SEL_IPID_LAESTRGB
136 #define EVTSVT_DMA_TRIG_CANTRGA EVTSVT_DMACH6SEL_IPID_CANTRGA
137 #define EVTSVT_DMA_TRIG_CANTRGB EVTSVT_DMACH7SEL_IPID_CANTRGB
138 
139 //*****************************************************************************
140 //
141 // Event publishers for use with EVTSVTConfigureEvent() and
142 // EVTSVTConfigureDma(). Channels 8-11 are event publisher DMA channels (ECH).
143 //
144 //*****************************************************************************
145 
146 #define EVTSVT_PUB_SYSTIM5 EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM5
147 #define EVTSVT_PUB_GPIO_EVT1 EVTSVT_CPUIRQ0SEL_PUBID_GPIO_EVT1
148 #define EVTSVT_PUB_APU_IRQ EVTSVT_CPUIRQ0SEL_PUBID_APU_IRQ
149 #define EVTSVT_PUB_SPI1_COMB EVTSVT_CPUIRQ0SEL_PUBID_SPI1_COMB
150 #define EVTSVT_PUB_CAN_EVT EVTSVT_CPUIRQ0SEL_PUBID_CAN_EVT
151 #define EVTSVT_PUB_CAN_IRQ EVTSVT_CPUIRQ0SEL_PUBID_CAN_IRQ
152 #define EVTSVT_PUB_I2S_IRQ EVTSVT_CPUIRQ0SEL_PUBID_I2S_IRQ
153 #define EVTSVT_PUB_LGPT3_ADC EVTSVT_CPUIRQ0SEL_PUBID_LGPT3_ADC
154 #define EVTSVT_PUB_LGPT3_DMA EVTSVT_CPUIRQ0SEL_PUBID_LGPT3_DMA
155 #define EVTSVT_PUB_LGPT3_COMB EVTSVT_CPUIRQ0SEL_PUBID_LGPT3_COMB
156 #define EVTSVT_PUB_LGPT3C2 EVTSVT_CPUIRQ0SEL_PUBID_LGPT3C2
157 #define EVTSVT_PUB_LGPT3C1 EVTSVT_CPUIRQ0SEL_PUBID_LGPT3C1
158 #define EVTSVT_PUB_LGPT3C0 EVTSVT_CPUIRQ0SEL_PUBID_LGPT3C0
159 #define EVTSVT_PUB_LGPT2_ADC EVTSVT_CPUIRQ0SEL_PUBID_LGPT2_ADC
160 #define EVTSVT_PUB_LGPT2_DMA EVTSVT_CPUIRQ0SEL_PUBID_LGPT2_DMA
161 #define EVTSVT_PUB_LGPT2_COMB EVTSVT_CPUIRQ0SEL_PUBID_LGPT2_COMB
162 #define EVTSVT_PUB_LGPT2C2 EVTSVT_CPUIRQ0SEL_PUBID_LGPT2C2
163 #define EVTSVT_PUB_LGPT2C1 EVTSVT_CPUIRQ0SEL_PUBID_LGPT2C1
164 #define EVTSVT_PUB_LGPT2C0 EVTSVT_CPUIRQ0SEL_PUBID_LGPT2C0
165 #define EVTSVT_PUB_UART1_COMB EVTSVT_CPUIRQ0SEL_PUBID_UART1_COMB
166 #define EVTSVT_PUB_LRFD_EVT2 EVTSVT_CPUIRQ0SEL_PUBID_LRFD_EVT2
167 #define EVTSVT_PUB_LRFD_EVT1 EVTSVT_CPUIRQ0SEL_PUBID_LRFD_EVT1
168 #define EVTSVT_PUB_LRFD_EVT0 EVTSVT_CPUIRQ0SEL_PUBID_LRFD_EVT0
169 #define EVTSVT_PUB_LGPT1_ADC EVTSVT_CPUIRQ0SEL_PUBID_LGPT1_ADC
170 #define EVTSVT_PUB_LGPT1_DMA EVTSVT_CPUIRQ0SEL_PUBID_LGPT1_DMA
171 #define EVTSVT_PUB_LGPT1C2 EVTSVT_CPUIRQ0SEL_PUBID_LGPT1C2
172 #define EVTSVT_PUB_LGPT1C1 EVTSVT_CPUIRQ0SEL_PUBID_LGPT1C1
173 #define EVTSVT_PUB_LGPT1C0 EVTSVT_CPUIRQ0SEL_PUBID_LGPT1C0
174 #define EVTSVT_PUB_LGPT0_ADC EVTSVT_CPUIRQ0SEL_PUBID_LGPT0_ADC
175 #define EVTSVT_PUB_LGPT0_DMA EVTSVT_CPUIRQ0SEL_PUBID_LGPT0_DMA
176 #define EVTSVT_PUB_LGPT0C2 EVTSVT_CPUIRQ0SEL_PUBID_LGPT0C2
177 #define EVTSVT_PUB_LGPT0C1 EVTSVT_CPUIRQ0SEL_PUBID_LGPT0C1
178 #define EVTSVT_PUB_LGPT0C0 EVTSVT_CPUIRQ0SEL_PUBID_LGPT0C0
179 #define EVTSVT_PUB_SYSTIM4 EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM4
180 #define EVTSVT_PUB_SYSTIM3 EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM3
181 #define EVTSVT_PUB_SYSTIM2 EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM2
182 #define EVTSVT_PUB_SYSTIM1 EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM1
183 #define EVTSVT_PUB_SYSTIM0 EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM0
184 #define EVTSVT_PUB_SYSTIM_LT EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM_LT
185 #define EVTSVT_PUB_SYSTIM_HB EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM_HB
186 #define EVTSVT_PUB_I2C0_IRQ EVTSVT_CPUIRQ0SEL_PUBID_I2C0_IRQ
187 #define EVTSVT_PUB_UART0_COMB EVTSVT_CPUIRQ0SEL_PUBID_UART0_COMB
188 #define EVTSVT_PUB_AES_COMB EVTSVT_CPUIRQ0SEL_PUBID_AES_COMB
189 #define EVTSVT_PUB_DMA_ERR EVTSVT_CPUIRQ0SEL_PUBID_DMA_ERR
190 #define EVTSVT_PUB_DMA_DONE_COMB EVTSVT_CPUIRQ0SEL_PUBID_DMA_DONE_COMB
191 #define EVTSVT_PUB_LGPT1_COMB EVTSVT_CPUIRQ0SEL_PUBID_LGPT1_COMB
192 #define EVTSVT_PUB_LGPT0_COMB EVTSVT_CPUIRQ0SEL_PUBID_LGPT0_COMB
193 #define EVTSVT_PUB_ADC_EVT EVTSVT_CPUIRQ0SEL_PUBID_ADC_EVT
194 #define EVTSVT_PUB_ADC_COMB EVTSVT_CPUIRQ0SEL_PUBID_ADC_COMB
195 #define EVTSVT_PUB_SPI0_COMB EVTSVT_CPUIRQ0SEL_PUBID_SPI0_COMB
196 #define EVTSVT_PUB_LRFD_IRQ2 EVTSVT_CPUIRQ0SEL_PUBID_LRFD_IRQ2
197 #define EVTSVT_PUB_LRFD_IRQ1 EVTSVT_CPUIRQ0SEL_PUBID_LRFD_IRQ1
198 #define EVTSVT_PUB_LRFD_IRQ0 EVTSVT_CPUIRQ0SEL_PUBID_LRFD_IRQ0
199 #define EVTSVT_PUB_FLASH_IRQ EVTSVT_CPUIRQ0SEL_PUBID_FLASH_IRQ
200 #define EVTSVT_PUB_GPIO_EVT EVTSVT_CPUIRQ0SEL_PUBID_GPIO_EVT
201 #define EVTSVT_PUB_GPIO_COMB EVTSVT_CPUIRQ0SEL_PUBID_GPIO_COMB
202 #define EVTSVT_PUB_SYSTIM_COMB EVTSVT_CPUIRQ0SEL_PUBID_SYSTIM_COMB
203 #define EVTSVT_PUB_AON_IOC_COMB EVTSVT_CPUIRQ0SEL_PUBID_AON_IOC_COMB
204 #define EVTSVT_PUB_AON_LPMCMP_IRQ \
205  EVTSVT_CPUIRQ0SEL_PUBID_AON_LPMCMP_IRQ
206 #define EVTSVT_PUB_AON_DBG_COMB EVTSVT_CPUIRQ0SEL_PUBID_AON_DBG_COMB
207 #define EVTSVT_PUB_AON_RTC_COMB EVTSVT_CPUIRQ0SEL_PUBID_AON_RTC_COMB
208 #define EVTSVT_PUB_AON_CKM_COMB \
209  EVTSVT_CPUIRQ0SEL_PUBID_AON_CKM_COMB
210 #define EVTSVT_PUB_AON_PMU_COMB \
211  EVTSVT_CPUIRQ0SEL_PUBID_AON_PMU_COMB
212 #define EVTSVT_PUB_NONE EVTSVT_CPUIRQ0SEL_PUBID_NONE
213 
214 //*****************************************************************************
215 //
216 // Helper defines used for range checking
217 //
218 //*****************************************************************************
220 #define EVTSVT_IPID_MAX_VAL EVTSVT_DMA_TRIG_UART1RXTRG
221 
223 #define EVTSVT_PUBID_MAX_VAL EVTSVT_PUB_SYSTIM5
224 
227 #define EVTSVT_DMA_CH_MAX_VAL EVTSVT_DMA_CH9
228 #define EVTSVT_DMA_CH_MIN_VAL EVTSVT_DMA_CH0
230 
232 #define EVTSVT_SUB_MAX_VAL EVTSVT_SUB_I2SSTMP
233 #define EVTSVT_SUB_MIN_VAL EVTSVT_SUB_CPUIRQ0
235 
236 //*****************************************************************************
237 //
238 // API Functions and prototypes
239 //
240 //*****************************************************************************
241 
242 #ifndef DRIVERLIB_NS
243 //*****************************************************************************
244 //
245 // Below functions will only be compiled into the driverlib.a library and not
246 // the driverlib_ns.a library.
247 // Non-secure applications might be able to access some/all of these functions
248 // through veneers declared further below in the #else case.
249 //
250 //*****************************************************************************
251 
252 //*****************************************************************************
253 //
365 //
366 //*****************************************************************************
367 extern void EVTSVTConfigureDma(uint32_t channel, uint32_t id);
368 
369 //*****************************************************************************
370 //
476 //
477 //*****************************************************************************
478 extern void EVTSVTConfigureEvent(uint32_t subscriber, uint32_t pubId);
479 
480 #else
481 //*****************************************************************************
482 //
483 // Secure-only API functions available from non-secure context through
484 // veneers.
485 //
486 // These functions must be linked in from from the secure veneer library.
487 //
488 //*****************************************************************************
489 
490 extern void EVTSVTConfigureDma_veneer(uint32_t channel, uint32_t id);
491  #define EVTSVTConfigureDma EVTSVTConfigureDma_veneer
492 
493 extern void EVTSVTConfigureEvent_veneer(uint32_t subscriber, uint32_t pubId);
494  #define EVTSVTConfigureEvent EVTSVTConfigureEvent_veneer
495 #endif
496 
497 //*****************************************************************************
498 //
499 // Mark the end of the C bindings section for C++ compilers.
500 //
501 //*****************************************************************************
502 #ifdef __cplusplus
503 }
504 #endif
505 
506 //*****************************************************************************
507 //
511 //
512 //*****************************************************************************
513 
514 #endif // __EVTSVT_H__
void EVTSVTConfigureEvent(uint32_t subscriber, uint32_t pubId)
Configure event publisher to be input to a subscriber.
Definition: evtsvt.c:82
__tz_c_veneer void EVTSVTConfigureEvent_veneer(uint32_t subscriber, uint32_t pubId)
Veneer for calling EVTSVTConfigureEvent() from non-secure context.
Definition: evtsvt_veneers.c:644
void EVTSVTConfigureDma(uint32_t channel, uint32_t id)
Configure DMA channel for the given trigger/publisher.
Definition: evtsvt.c:54
__tz_c_veneer void EVTSVTConfigureDma_veneer(uint32_t channel, uint32_t id)
Veneer for calling EVTSVTConfigureDma() from non-secure context.
Definition: evtsvt_veneers.c:576