CC23x0r2DriverLibrary
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_SYSTIMC1 EVTSVT_O_SYSTIMC1SEL
76 #define EVTSVT_SUB_ADCTRG EVTSVT_O_ADCTRGSEL
77 #define EVTSVT_SUB_LGPTSYNC EVTSVT_O_LGPTSYNCSEL
78 #define EVTSVT_SUB_LGPT0IN0 EVTSVT_O_LGPT0IN0SEL
79 #define EVTSVT_SUB_LGPT0IN1 EVTSVT_O_LGPT0IN1SEL
80 #define EVTSVT_SUB_LGPT0IN2 EVTSVT_O_LGPT0IN2SEL
81 #define EVTSVT_SUB_LGPT0TEN EVTSVT_O_LGPT0TENSEL
82 #define EVTSVT_SUB_LGPT1IN0 EVTSVT_O_LGPT1IN0SEL
83 #define EVTSVT_SUB_LGPT1IN1 EVTSVT_O_LGPT1IN1SEL
84 #define EVTSVT_SUB_LGPT1IN2 EVTSVT_O_LGPT1IN2SEL
85 #define EVTSVT_SUB_LGPT1TEN EVTSVT_O_LGPT1TENSEL
86 #define EVTSVT_SUB_LGPT2IN0 EVTSVT_O_LGPT2IN0SEL
87 #define EVTSVT_SUB_LGPT2IN1 EVTSVT_O_LGPT2IN1SEL
88 #define EVTSVT_SUB_LGPT2IN2 EVTSVT_O_LGPT2IN2SEL
89 #define EVTSVT_SUB_LGPT2TEN EVTSVT_O_LGPT2TENSEL
90 #define EVTSVT_SUB_LGPT3IN0 EVTSVT_O_LGPT3IN0SEL
91 #define EVTSVT_SUB_LGPT3IN1 EVTSVT_O_LGPT3IN1SEL
92 #define EVTSVT_SUB_LGPT3IN2 EVTSVT_O_LGPT3IN2SEL
93 #define EVTSVT_SUB_LGPT3TEN EVTSVT_O_LGPT3TENSEL
94 
95 //*****************************************************************************
96 //
97 // DMA channels
98 //
99 //*****************************************************************************
100 
101 #define EVTSVT_DMA_CH0 EVTSVT_O_DMACH0SEL
102 #define EVTSVT_DMA_CH1 EVTSVT_O_DMACH1SEL
103 #define EVTSVT_DMA_CH2 EVTSVT_O_DMACH2SEL
104 #define EVTSVT_DMA_CH3 EVTSVT_O_DMACH3SEL
105 #define EVTSVT_DMA_CH4 EVTSVT_O_DMACH4SEL
106 #define EVTSVT_DMA_CH5 EVTSVT_O_DMACH5SEL
107 #define EVTSVT_DMA_CH6 EVTSVT_O_DMACH6SEL
108 #define EVTSVT_DMA_CH7 EVTSVT_O_DMACH7SEL
109 
110 //*****************************************************************************
111 //
112 // DMA triggers for use use with dedicated DMA channels (DCH) in
113 // EVTSVTConfigureDma(). Channels 0-5 are dedicated DMA channels.
114 //
115 //*****************************************************************************
116 
117 #define EVTSVT_DMA_TRIG_SPI0TXTRG EVTSVT_DMACH0SEL_IPID_SPI0TXTRG
118 #define EVTSVT_DMA_TRIG_SPI0RXTRG EVTSVT_DMACH1SEL_IPID_SPI0RXTRG
119 #define EVTSVT_DMA_TRIG_LAESTRGA EVTSVT_DMACH4SEL_IPID_LAESTRGA
120 #define EVTSVT_DMA_TRIG_LAESTRGB EVTSVT_DMACH5SEL_IPID_LAESTRGB
121 #define EVTSVT_DMA_TRIG_ADC0TRG EVTSVT_DMACH3SEL_IPID_ADC0TRG
122 #define EVTSVT_DMA_TRIG_UART0TXTRG EVTSVT_DMACH1SEL_IPID_UART0TXTRG
123 #define EVTSVT_DMA_TRIG_UART0RXTRG EVTSVT_DMACH0SEL_IPID_UART0RXTRG
124 
125 //*****************************************************************************
126 //
127 // Event publishers for use with EVTSVTConfigureEvent() and
128 // EVTSVTConfigureDma(). Channels 6 and 7 are event publisher DMA channels
129 // (ECH).
130 //
131 //*****************************************************************************
132 
133 #define EVTSVT_PUB_LGPT3_ADC EVTSVT_DMACH6SEL_PUBID_LGPT3_ADC
134 #define EVTSVT_PUB_LGPT3_DMA EVTSVT_DMACH6SEL_PUBID_LGPT3_DMA
135 #define EVTSVT_PUB_LGPT3_COMB EVTSVT_DMACH6SEL_PUBID_LGPT3_COMB
136 #define EVTSVT_PUB_LGPT3C2 EVTSVT_DMACH6SEL_PUBID_LGPT3C2
137 #define EVTSVT_PUB_LGPT3C1 EVTSVT_DMACH6SEL_PUBID_LGPT3C1
138 #define EVTSVT_PUB_LGPT3C0 EVTSVT_DMACH6SEL_PUBID_LGPT3C0
139 #define EVTSVT_PUB_LGPT2_ADC EVTSVT_DMACH6SEL_PUBID_LGPT2_ADC
140 #define EVTSVT_PUB_LGPT2_DMA EVTSVT_DMACH6SEL_PUBID_LGPT2_DMA
141 #define EVTSVT_PUB_LGPT2_COMB EVTSVT_DMACH6SEL_PUBID_LGPT2_COMB
142 #define EVTSVT_PUB_LGPT2C2 EVTSVT_DMACH6SEL_PUBID_LGPT2C2
143 #define EVTSVT_PUB_LGPT2C1 EVTSVT_DMACH6SEL_PUBID_LGPT2C1
144 #define EVTSVT_PUB_LGPT2C0 EVTSVT_DMACH6SEL_PUBID_LGPT2C0
145 #define EVTSVT_PUB_LRFD_EVT2 EVTSVT_DMACH6SEL_PUBID_LRFD_EVT2
146 #define EVTSVT_PUB_LRFD_EVT1 EVTSVT_DMACH6SEL_PUBID_LRFD_EVT1
147 #define EVTSVT_PUB_LRFD_EVT0 EVTSVT_DMACH6SEL_PUBID_LRFD_EVT0
148 #define EVTSVT_PUB_LGPT1_ADC EVTSVT_DMACH6SEL_PUBID_LGPT1_ADC
149 #define EVTSVT_PUB_LGPT1_DMA EVTSVT_DMACH6SEL_PUBID_LGPT1_DMA
150 #define EVTSVT_PUB_LGPT1C2 EVTSVT_DMACH6SEL_PUBID_LGPT1C2
151 #define EVTSVT_PUB_LGPT1C1 EVTSVT_DMACH6SEL_PUBID_LGPT1C1
152 #define EVTSVT_PUB_LGPT1C0 EVTSVT_DMACH6SEL_PUBID_LGPT1C0
153 #define EVTSVT_PUB_LGPT0_ADC EVTSVT_DMACH6SEL_PUBID_LGPT0_ADC
154 #define EVTSVT_PUB_LGPT0_DMA EVTSVT_DMACH6SEL_PUBID_LGPT0_DMA
155 #define EVTSVT_PUB_LGPT0C2 EVTSVT_DMACH6SEL_PUBID_LGPT0C2
156 #define EVTSVT_PUB_LGPT0C1 EVTSVT_DMACH6SEL_PUBID_LGPT0C1
157 #define EVTSVT_PUB_LGPT0C0 EVTSVT_DMACH6SEL_PUBID_LGPT0C0
158 #define EVTSVT_PUB_SYSTIM4 EVTSVT_DMACH6SEL_PUBID_SYSTIM4
159 #define EVTSVT_PUB_SYSTIM3 EVTSVT_DMACH6SEL_PUBID_SYSTIM3
160 #define EVTSVT_PUB_SYSTIM2 EVTSVT_DMACH6SEL_PUBID_SYSTIM2
161 #define EVTSVT_PUB_SYSTIM1 EVTSVT_DMACH6SEL_PUBID_SYSTIM1
162 #define EVTSVT_PUB_SYSTIM0 EVTSVT_DMACH6SEL_PUBID_SYSTIM0
163 #define EVTSVT_PUB_SYSTIM_LT EVTSVT_DMACH6SEL_PUBID_SYSTIM_LT
164 #define EVTSVT_PUB_SYSTIM_HB EVTSVT_DMACH6SEL_PUBID_SYSTIM_HB
165 #define EVTSVT_PUB_I2C0_IRQ EVTSVT_DMACH6SEL_PUBID_I2C0_IRQ
166 #define EVTSVT_PUB_UART0_COMB EVTSVT_DMACH6SEL_PUBID_UART0_COMB
167 #define EVTSVT_PUB_AES_COMB EVTSVT_DMACH6SEL_PUBID_AES_COMB
168 #define EVTSVT_PUB_DMA_ERR EVTSVT_DMACH6SEL_PUBID_DMA_ERR
169 #define EVTSVT_PUB_DMA_DONE_COMB EVTSVT_DMACH6SEL_PUBID_DMA_DONE_COMB
170 #define EVTSVT_PUB_LGPT1_COMB EVTSVT_DMACH6SEL_PUBID_LGPT1_COMB
171 #define EVTSVT_PUB_LGPT0_COMB EVTSVT_DMACH6SEL_PUBID_LGPT0_COMB
172 #define EVTSVT_PUB_ADC_EVT EVTSVT_DMACH6SEL_PUBID_ADC_EVT
173 #define EVTSVT_PUB_ADC_COMB EVTSVT_DMACH6SEL_PUBID_ADC_COMB
174 #define EVTSVT_PUB_SPI0_COMB EVTSVT_DMACH6SEL_PUBID_SPI0_COMB
175 #define EVTSVT_PUB_LRFD_IRQ2 EVTSVT_DMACH6SEL_PUBID_LRFD_IRQ2
176 #define EVTSVT_PUB_LRFD_IRQ1 EVTSVT_DMACH6SEL_PUBID_LRFD_IRQ1
177 #define EVTSVT_PUB_LRFD_IRQ0 EVTSVT_DMACH6SEL_PUBID_LRFD_IRQ0
178 #define EVTSVT_PUB_FLASH_IRQ EVTSVT_DMACH6SEL_PUBID_FLASH_IRQ
179 #define EVTSVT_PUB_GPIO_EVT EVTSVT_DMACH6SEL_PUBID_GPIO_EVT
180 #define EVTSVT_PUB_GPIO_COMB EVTSVT_DMACH6SEL_PUBID_GPIO_COMB
181 #define EVTSVT_PUB_SYSTIM_COMB EVTSVT_DMACH6SEL_PUBID_SYSTIM_COMB
182 #define EVTSVT_PUB_AON_IOC_COMB EVTSVT_DMACH6SEL_PUBID_AON_IOC_COMB
183 #define EVTSVT_PUB_AON_LPMCMP_IRQ EVTSVT_DMACH6SEL_PUBID_AON_LPMCMP_IRQ
184 #define EVTSVT_PUB_AON_DBG_COMB EVTSVT_DMACH6SEL_PUBID_AON_DBG_COMB
185 #define EVTSVT_PUB_AON_RTC_COMB EVTSVT_DMACH6SEL_PUBID_AON_RTC_COMB
186 #define EVTSVT_PUB_AON_CKM_COMB EVTSVT_DMACH6SEL_PUBID_AON_CKM_COMB
187 #define EVTSVT_PUB_AON_PMU_COMB EVTSVT_DMACH6SEL_PUBID_AON_PMU_COMB
188 #define EVTSVT_PUB_NONE EVTSVT_DMACH6SEL_PUBID_NONE
189 
190 //*****************************************************************************
191 //
192 // Helper defines used for range checking
193 //
194 //*****************************************************************************
196 #define EVTSVT_IPID_MAX_VAL EVTSVT_DMA_TRIG_UART0RXTRG
197 
199 #define EVTSVT_PUBID_MAX_VAL EVTSVT_PUB_LGPT3_ADC
200 
203 #define EVTSVT_DMA_CH_MAX_VAL EVTSVT_DMA_CH7
204 #define EVTSVT_DMA_CH_MIN_VAL EVTSVT_DMA_CH0
206 
208 #define EVTSVT_SUB_MAX_VAL EVTSVT_O_LGPT3TENSEL
209 #define EVTSVT_SUB_MIN_VAL EVTSVT_SUB_CPUIRQ0
211 
212 //*****************************************************************************
213 //
214 // API Functions and prototypes
215 //
216 //*****************************************************************************
217 
218 //*****************************************************************************
219 //
312 //
313 //*****************************************************************************
314 extern void EVTSVTConfigureDma(uint32_t channel, uint32_t id);
315 
316 //*****************************************************************************
317 //
412 //
413 //*****************************************************************************
414 extern void EVTSVTConfigureEvent(uint32_t subscriber, uint32_t pubId);
415 
416 //*****************************************************************************
417 //
418 // Mark the end of the C bindings section for C++ compilers.
419 //
420 //*****************************************************************************
421 #ifdef __cplusplus
422 }
423 #endif
424 
425 //*****************************************************************************
426 //
430 //
431 //*****************************************************************************
432 
433 #endif // __EVTSVT_H__
void EVTSVTConfigureEvent(uint32_t subscriber, uint32_t pubId)
Configure event publisher to be input to a subscriber.
Definition: evtsvt.c:72
void EVTSVTConfigureDma(uint32_t channel, uint32_t id)
Configure DMA channel for the given trigger/publisher.
Definition: evtsvt.c:44