1 //------------------------------------------------------------------------------ 2 // Copyright 2012 (c) Silicon Laboratories Inc. 3 // 4 // SPDX-License-Identifier: Zlib 5 // 6 // This siHAL software is provided 'as-is', without any express or implied 7 // warranty. In no event will the authors be held liable for any damages 8 // arising from the use of this software. 9 // 10 // Permission is granted to anyone to use this software for any purpose, 11 // including commercial applications, and to alter it and redistribute it 12 // freely, subject to the following restrictions: 13 // 14 // 1. The origin of this software must not be misrepresented; you must not 15 // claim that you wrote the original software. If you use this software 16 // in a product, an acknowledgment in the product documentation would be 17 // appreciated but is not required. 18 // 2. Altered source versions must be plainly marked as such, and must not be 19 // misrepresented as being the original software. 20 // 3. This notice may not be removed or altered from any source distribution. 21 //------------------------------------------------------------------------------ 22 // 23 // This file applies to the SIM3L1XX_DMAXBAR_A module 24 // 25 // Version: 1 26 27 #ifndef __SI32_DMAXBAR_A_Support_Guard__ 28 #define __SI32_DMAXBAR_A_Support_Guard__ 29 30 #include <stdint.h> 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 //----------------------------------------------------------------------------- 37 // Define the number of DMA channels. 38 39 #define SI32_DMACTRL_NUM_CHANNELS 10 40 41 //----------------------------------------------------------------------------- 42 // Define the DMA Crossbar Channel Select Enum Type 43 44 typedef enum SI32_DMAXBAR_CHNSEL_Enum 45 { 46 SI32_DMAXBAR_CHAN0_DTM0_A = 0x00, 47 SI32_DMAXBAR_CHAN0_SPI0_TX = 0x01, 48 SI32_DMAXBAR_CHAN0_AES0_TX = 0x02, 49 SI32_DMAXBAR_CHAN0_USART0_RX = 0x03, 50 SI32_DMAXBAR_CHAN0_I2C0_RX = 0x04, 51 SI32_DMAXBAR_CHAN0_I2C0_TX = 0x05, 52 SI32_DMAXBAR_CHAN0_EPCA0_CAPTURE = 0x06, 53 SI32_DMAXBAR_CHAN0_TIMER0L = 0x07, 54 SI32_DMAXBAR_CHAN0_TIMER0H = 0x08, 55 SI32_DMAXBAR_CHAN0_DMA0T0_RISE = 0x09, 56 SI32_DMAXBAR_CHAN0_DMA0T0_FALL = 0x0A, 57 SI32_DMAXBAR_CHAN0_NONE = 0x0F, 58 59 SI32_DMAXBAR_CHAN1_DTM0_B = 0x10, 60 SI32_DMAXBAR_CHAN1_SPI0_RX = 0x11, 61 SI32_DMAXBAR_CHAN1_AES0_RX = 0x12, 62 SI32_DMAXBAR_CHAN1_USART0_TX = 0x13, 63 SI32_DMAXBAR_CHAN1_SARADC0 = 0x14, 64 SI32_DMAXBAR_CHAN1_EPCA0_CAPTURE = 0x15, 65 SI32_DMAXBAR_CHAN1_EPCA0_CONTROL = 0x16, 66 SI32_DMAXBAR_CHAN1_TIMER1L = 0x17, 67 SI32_DMAXBAR_CHAN1_TIMER1H = 0x18, 68 SI32_DMAXBAR_CHAN1_DMA0T1_RISE = 0x19, 69 SI32_DMAXBAR_CHAN1_DMA0T1_FALL = 0x1A, 70 SI32_DMAXBAR_CHAN1_NONE = 0x1F, 71 72 SI32_DMAXBAR_CHAN2_DTM0_C = 0x20, 73 SI32_DMAXBAR_CHAN2_DTM2_A = 0x21, 74 SI32_DMAXBAR_CHAN2_ENCDEC0_TX = 0x22, 75 SI32_DMAXBAR_CHAN2_AES0_XOR = 0x23, 76 SI32_DMAXBAR_CHAN2_SPI1_TX = 0x24, 77 SI32_DMAXBAR_CHAN2_USART0_RX = 0x25, 78 SI32_DMAXBAR_CHAN2_I2C0_RX = 0x26, 79 SI32_DMAXBAR_CHAN2_IDAC0 = 0x27, 80 SI32_DMAXBAR_CHAN2_TIMER0L = 0x28, 81 SI32_DMAXBAR_CHAN2_TIMER0H = 0x29, 82 SI32_DMAXBAR_CHAN2_DMA0T0_RISE = 0x2A, 83 SI32_DMAXBAR_CHAN2_DMA0T0_FALL = 0x2B, 84 SI32_DMAXBAR_CHAN2_NONE = 0x2F, 85 86 SI32_DMAXBAR_CHAN3_DTM0_D = 0x30, 87 SI32_DMAXBAR_CHAN3_DTM2_B = 0x31, 88 SI32_DMAXBAR_CHAN3_ENCDEC0_RX = 0x32, 89 SI32_DMAXBAR_CHAN3_SPI1_RX = 0x33, 90 SI32_DMAXBAR_CHAN3_USART0_TX = 0x34, 91 SI32_DMAXBAR_CHAN3_I2C0_RX = 0x35, 92 SI32_DMAXBAR_CHAN3_I2C0_TX = 0x36, 93 SI32_DMAXBAR_CHAN3_TIMER1L = 0x37, 94 SI32_DMAXBAR_CHAN3_TIMER1H = 0x38, 95 SI32_DMAXBAR_CHAN3_DMA0T1_RISE = 0x39, 96 SI32_DMAXBAR_CHAN3_DMA0T1_FALL = 0x3A, 97 SI32_DMAXBAR_CHAN3_NONE = 0x3F, 98 99 SI32_DMAXBAR_CHAN4_DTM1_A = 0x40, 100 SI32_DMAXBAR_CHAN4_DTM2_C = 0x41, 101 SI32_DMAXBAR_CHAN4_SPI0_TX = 0x42, 102 SI32_DMAXBAR_CHAN4_AES0_TX = 0x43, 103 SI32_DMAXBAR_CHAN4_SARADC0 = 0x44, 104 SI32_DMAXBAR_CHAN4_EPCA0_CAPTURE = 0x45, 105 SI32_DMAXBAR_CHAN4_EPCA0_CONTROL = 0x46, 106 SI32_DMAXBAR_CHAN4_TIMER0L = 0x47, 107 SI32_DMAXBAR_CHAN4_TIMER0H = 0x48, 108 SI32_DMAXBAR_CHAN4_DMA0T0_RISE = 0x49, 109 SI32_DMAXBAR_CHAN4_DMA0T0_FALL = 0x4A, 110 SI32_DMAXBAR_CHAN4_NONE = 0x4F, 111 112 SI32_DMAXBAR_CHAN5_DTM1_B = 0x50, 113 SI32_DMAXBAR_CHAN5_DTM2_D = 0x51, 114 SI32_DMAXBAR_CHAN5_SPI0_RX = 0x52, 115 SI32_DMAXBAR_CHAN5_AES0_RX = 0x53, 116 SI32_DMAXBAR_CHAN5_USART0_RX = 0x54, 117 SI32_DMAXBAR_CHAN5_I2C0_RX = 0x55, 118 SI32_DMAXBAR_CHAN5_IDAC0 = 0x56, 119 SI32_DMAXBAR_CHAN5_EPCA0_CONTROL = 0x57, 120 SI32_DMAXBAR_CHAN5_TIMER1L = 0x58, 121 SI32_DMAXBAR_CHAN5_TIMER1H = 0x59, 122 SI32_DMAXBAR_CHAN5_DMA0T1_RISE = 0x5A, 123 SI32_DMAXBAR_CHAN5_DMA0T1_FALL = 0x5B, 124 SI32_DMAXBAR_CHAN5_NONE = 0x5F, 125 126 SI32_DMAXBAR_CHAN6_DTM1_C = 0x60, 127 SI32_DMAXBAR_CHAN6_DTM2_A = 0x61, 128 SI32_DMAXBAR_CHAN6_ENCDEC0_TX = 0x62, 129 SI32_DMAXBAR_CHAN6_AES0_XOR = 0x63, 130 SI32_DMAXBAR_CHAN6_USART0_TX = 0x64, 131 SI32_DMAXBAR_CHAN6_I2C0_RX = 0x65, 132 SI32_DMAXBAR_CHAN6_I2C0_TX = 0x66, 133 SI32_DMAXBAR_CHAN6_SARADC0 = 0x67, 134 SI32_DMAXBAR_CHAN6_TIMER0L = 0x68, 135 SI32_DMAXBAR_CHAN6_TIMER0H = 0x69, 136 SI32_DMAXBAR_CHAN6_DMA0T0_RISE = 0x6A, 137 SI32_DMAXBAR_CHAN6_DMA0T0_FALL = 0x6B, 138 SI32_DMAXBAR_CHAN6_NONE = 0x6F, 139 140 SI32_DMAXBAR_CHAN7_DTM1_D = 0x70, 141 SI32_DMAXBAR_CHAN7_DTM2_B = 0x71, 142 SI32_DMAXBAR_CHAN7_ENCDEC0_RX = 0x72, 143 SI32_DMAXBAR_CHAN7_SPI1_TX = 0x73, 144 SI32_DMAXBAR_CHAN7_USART0_RX = 0x74, 145 SI32_DMAXBAR_CHAN7_IDAC0 = 0x75, 146 SI32_DMAXBAR_CHAN7_TIMER1L = 0x76, 147 SI32_DMAXBAR_CHAN7_TIMER1H = 0x77, 148 SI32_DMAXBAR_CHAN7_DMA0T1_RISE = 0x78, 149 SI32_DMAXBAR_CHAN7_DMA0T1_FALL = 0x79, 150 SI32_DMAXBAR_CHAN7_NONE = 0x7F, 151 152 SI32_DMAXBAR_CHAN8_DTM2_C = 0x80, 153 SI32_DMAXBAR_CHAN8_SPI0_TX = 0x81, 154 SI32_DMAXBAR_CHAN8_SPI1_RX = 0x82, 155 SI32_DMAXBAR_CHAN8_USART0_TX = 0x83, 156 SI32_DMAXBAR_CHAN8_I2C0_RX = 0x84, 157 SI32_DMAXBAR_CHAN8_SARADC0 = 0x85, 158 SI32_DMAXBAR_CHAN8_EPCA0_CAPTURE = 0x86, 159 SI32_DMAXBAR_CHAN8_TIMER0L = 0x87, 160 SI32_DMAXBAR_CHAN8_TIMER0H = 0x88, 161 SI32_DMAXBAR_CHAN8_DMA0T0_RISE = 0x89, 162 SI32_DMAXBAR_CHAN8_DMA0T0_FALL = 0x8A, 163 SI32_DMAXBAR_CHAN8_NONE = 0x8F, 164 165 SI32_DMAXBAR_CHAN9_DTM2_D = 0x90, 166 SI32_DMAXBAR_CHAN9_SPI0_RX = 0x91, 167 SI32_DMAXBAR_CHAN9_I2C0_RX = 0x92, 168 SI32_DMAXBAR_CHAN9_I2C0_TX = 0x93, 169 SI32_DMAXBAR_CHAN9_IDAC0 = 0x94, 170 SI32_DMAXBAR_CHAN9_EPCA0_CAPTURE = 0x95, 171 SI32_DMAXBAR_CHAN9_EPCA0_CONTROL = 0x96, 172 SI32_DMAXBAR_CHAN9_TIMER1L = 0x97, 173 SI32_DMAXBAR_CHAN9_TIMER1H = 0x98, 174 SI32_DMAXBAR_CHAN9_DMA0T1_RISE = 0x99, 175 SI32_DMAXBAR_CHAN9_DMA0T1_FALL = 0x9A, 176 SI32_DMAXBAR_CHAN9_NONE = 0x9F 177 } 178 SI32_DMAXBAR_CHNSEL_Enum_Type; 179 180 // Extracts DMA channel number from SI32_DMAXBAR_CHNSEL_Enum_Type 181 #define SI32_DMAXBAR_CHANNEL_OF(chsel) (((chsel) & 0xF0) >> 4) 182 183 //----------------------------------------------------------------------------- 184 // Define the DMA Endpoints 185 186 #define SI32_ADC_0_RX_ENDPOINT &SI32_ADC_0->DATA.U32 187 #define SI32_AES_0_TX_ENDPOINT &SI32_AES_0->DATAFIFO.U32 188 #define SI32_AES_0_RX_ENDPOINT &SI32_AES_0->DATAFIFO.U32 189 #define SI32_AES_0_XOR_ENDPOINT &SI32_AES_0->XORFIFO.U32 190 #define SI32_ENCDEC_0_RX_ENDPOINT &SI32_ENCDEC_0->DATAOUT.U32 191 #define SI32_ENCDEC_0_TX_ENDPOINT &SI32_ENCDEC_0->DATAIN.U32 192 #define SI32_EPCA_0_CH0_RX_ENDPOINT &SI32_EPCA_0_CH0->CCAPV.U32 193 #define SI32_EPCA_0_CH1_RX_ENDPOINT &SI32_EPCA_0_CH1->CCAPV.U32 194 #define SI32_EPCA_0_CH2_RX_ENDPOINT &SI32_EPCA_0_CH2->CCAPV.U32 195 #define SI32_EPCA_0_CH3_RX_ENDPOINT &SI32_EPCA_0_CH3->CCAPV.U32 196 #define SI32_EPCA_0_CH4_RX_ENDPOINT &SI32_EPCA_0_CH4->CCAPV.U32 197 #define SI32_EPCA_0_CH5_RX_ENDPOINT &SI32_EPCA_0_CH5->CCAPV.U32 198 #define SI32_EPCA_0_TX_ENDPOINT &SI32_EPCA_0->DTARGET.U32 199 #define SI32_EPCA_0_CH0_TX_ENDPOINT &SI32_EPCA_0_CH0->CCAPVUPD.U32 200 #define SI32_EPCA_0_CH1_TX_ENDPOINT &SI32_EPCA_0_CH1->CCAPVUPD.U32 201 #define SI32_EPCA_0_CH2_TX_ENDPOINT &SI32_EPCA_0_CH2->CCAPVUPD.U32 202 #define SI32_EPCA_0_CH3_TX_ENDPOINT &SI32_EPCA_0_CH3->CCAPVUPD.U32 203 #define SI32_EPCA_0_CH4_TX_ENDPOINT &SI32_EPCA_0_CH4->CCAPVUPD.U32 204 #define SI32_EPCA_0_CH5_TX_ENDPOINT &SI32_EPCA_0_CH5->CCAPVUPD.U32 205 #define SI32_I2C_0_RX_ENDPOINT &SI32_I2C_0->DATA.U32 206 #define SI32_I2C_0_TX_ENDPOINT &SI32_I2C_0->DATA.U32 207 #define SI32_IDAC_0_TX_ENDPOINT &SI32_IDAC_0->DATA.U32 208 #define SI32_SPI_0_RX_ENDPOINT &SI32_SPI_0->DATA.U32 209 #define SI32_SPI_0_TX_ENDPOINT &SI32_SPI_0->DATA.U32 210 #define SI32_SPI_1_RX_ENDPOINT &SI32_SPI_1->DATA.U32 211 #define SI32_SPI_1_TX_ENDPOINT &SI32_SPI_1->DATA.U32 212 #define SI32_USART_0_RX_ENDPOINT &SI32_USART_0->DATA.U32 213 #define SI32_USART_0_TX_ENDPOINT &SI32_USART_0->DATA.U32 214 215 #ifdef __cplusplus 216 } 217 #endif 218 219 #endif // __SI32_DMAXBAR_A_Support_Guard__ 220 221 //-eof-------------------------------------------------------------------------- 222