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 SIM3U1XX_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 16 40 41 //----------------------------------------------------------------------------- 42 // Define the DMA Crossbar Channel Select Enum Type 43 44 typedef enum SI32_DMAXBAR_CHNSEL_Enum 45 { 46 SI32_DMAXBAR_CHAN0_USB0_EP4_OUT = 0x00, 47 SI32_DMAXBAR_CHAN0_SPI1_RX = 0x01, 48 SI32_DMAXBAR_CHAN0_USART0_RX = 0x02, 49 SI32_DMAXBAR_CHAN0_I2C0_TX = 0x03, 50 SI32_DMAXBAR_CHAN0_DMA0T0_RISE = 0x04, 51 SI32_DMAXBAR_CHAN0_DMA0T0_FALL = 0x05, 52 SI32_DMAXBAR_CHAN0_DMA0T1_RISE = 0x06, 53 SI32_DMAXBAR_CHAN0_DMA0T1_FALL = 0x07, 54 SI32_DMAXBAR_CHAN0_TIMER0L = 0x08, 55 SI32_DMAXBAR_CHAN0_TIMER0H = 0x09, 56 SI32_DMAXBAR_CHAN0_TIMER1L = 0x0A, 57 SI32_DMAXBAR_CHAN0_TIMER1H = 0x0B, 58 SI32_DMAXBAR_CHAN0_NONE = 0x0F, 59 60 SI32_DMAXBAR_CHAN1_USB0_EP3_OUT = 0x10, 61 SI32_DMAXBAR_CHAN1_SPI0_RX = 0x11, 62 SI32_DMAXBAR_CHAN1_USART1_RX = 0x12, 63 SI32_DMAXBAR_CHAN1_I2C0_RX = 0x13, 64 SI32_DMAXBAR_CHAN1_IDAC1 = 0x14, 65 SI32_DMAXBAR_CHAN1_EPCA0_CONTROL = 0x15, 66 SI32_DMAXBAR_CHAN1_DMA0T0_RISE = 0x16, 67 SI32_DMAXBAR_CHAN1_DMA0T0_FALL = 0x17, 68 SI32_DMAXBAR_CHAN1_DMA0T1_RISE = 0x18, 69 SI32_DMAXBAR_CHAN1_DMA0T1_FALL = 0x19, 70 SI32_DMAXBAR_CHAN1_TIMER0L = 0x1A, 71 SI32_DMAXBAR_CHAN1_TIMER1L = 0x1B, 72 SI32_DMAXBAR_CHAN1_TIMER1H = 0x1C, 73 SI32_DMAXBAR_CHAN1_NONE = 0x1F, 74 75 SI32_DMAXBAR_CHAN2_USB0_EP2_OUT = 0x20, 76 SI32_DMAXBAR_CHAN2_SPI0_TX = 0x21, 77 SI32_DMAXBAR_CHAN2_USART0_TX = 0x22, 78 SI32_DMAXBAR_CHAN2_SARADC0 = 0x23, 79 SI32_DMAXBAR_CHAN2_IDAC1 = 0x24, 80 SI32_DMAXBAR_CHAN2_I2S0_TX = 0x25, 81 SI32_DMAXBAR_CHAN2_EPCA0_CONTROL = 0x26, 82 SI32_DMAXBAR_CHAN2_DMA0T0_RISE = 0x27, 83 SI32_DMAXBAR_CHAN2_DMA0T0_FALL = 0x28, 84 SI32_DMAXBAR_CHAN2_DMA0T1_RISE = 0x29, 85 SI32_DMAXBAR_CHAN2_DMA0T1_FALL = 0x2A, 86 SI32_DMAXBAR_CHAN2_NONE = 0x2F, 87 88 SI32_DMAXBAR_CHAN3_USB0_EP1_OUT = 0x30, 89 SI32_DMAXBAR_CHAN3_SARADC1 = 0x31, 90 SI32_DMAXBAR_CHAN3_IDAC0 = 0x32, 91 SI32_DMAXBAR_CHAN3_I2S0_TX = 0x33, 92 SI32_DMAXBAR_CHAN3_EPCA0_CAPTURE = 0x34, 93 SI32_DMAXBAR_CHAN3_DMA0T0_RISE = 0x35, 94 SI32_DMAXBAR_CHAN3_DMA0T0_FALL = 0x36, 95 SI32_DMAXBAR_CHAN3_DMA0T1_RISE = 0x37, 96 SI32_DMAXBAR_CHAN3_DMA0T1_FALL = 0x38, 97 SI32_DMAXBAR_CHAN3_TIMER1H = 0x39, 98 SI32_DMAXBAR_CHAN3_NONE = 0x3F, 99 100 SI32_DMAXBAR_CHAN4_USB0_EP4_IN = 0x40, 101 SI32_DMAXBAR_CHAN4_SPI1_TX = 0x41, 102 SI32_DMAXBAR_CHAN4_USART0_TX = 0x42, 103 SI32_DMAXBAR_CHAN4_SARADC0 = 0x43, 104 SI32_DMAXBAR_CHAN4_I2S0_RX = 0x44, 105 SI32_DMAXBAR_CHAN4_EPCA0_CAPTURE = 0x45, 106 SI32_DMAXBAR_CHAN4_DMA0T0_RISE = 0x46, 107 SI32_DMAXBAR_CHAN4_DMA0T0_FALL = 0x47, 108 SI32_DMAXBAR_CHAN4_DMA0T1_RISE = 0x48, 109 SI32_DMAXBAR_CHAN4_DMA0T1_FALL = 0x49, 110 SI32_DMAXBAR_CHAN4_TIMER0H = 0x4A, 111 SI32_DMAXBAR_CHAN4_NONE = 0x4F, 112 113 SI32_DMAXBAR_CHAN5_USB0_EP3_IN = 0x50, 114 SI32_DMAXBAR_CHAN5_AES0_TX = 0x51, 115 SI32_DMAXBAR_CHAN5_USART1_TX = 0x52, 116 SI32_DMAXBAR_CHAN5_SARADC0 = 0x53, 117 SI32_DMAXBAR_CHAN5_I2S0_RX = 0x54, 118 SI32_DMAXBAR_CHAN5_DMA0T0_RISE = 0x55, 119 SI32_DMAXBAR_CHAN5_DMA0T0_FALL = 0x56, 120 SI32_DMAXBAR_CHAN5_DMA0T1_RISE = 0x57, 121 SI32_DMAXBAR_CHAN5_DMA0T1_FALL = 0x58, 122 SI32_DMAXBAR_CHAN5_NONE = 0x5F, 123 124 SI32_DMAXBAR_CHAN6_USB0_EP2_IN = 0x60, 125 SI32_DMAXBAR_CHAN6_AES0_RX = 0x61, 126 SI32_DMAXBAR_CHAN6_USART0_RX = 0x62, 127 SI32_DMAXBAR_CHAN6_I2C0_RX = 0x63, 128 SI32_DMAXBAR_CHAN6_IDAC0 = 0x64, 129 SI32_DMAXBAR_CHAN6_DMA0T0_RISE = 0x65, 130 SI32_DMAXBAR_CHAN6_DMA0T0_FALL = 0x66, 131 SI32_DMAXBAR_CHAN6_DMA0T1_RISE = 0x67, 132 SI32_DMAXBAR_CHAN6_DMA0T1_FALL = 0x68, 133 SI32_DMAXBAR_CHAN6_TIMER0H = 0x69, 134 SI32_DMAXBAR_CHAN6_NONE = 0x6F, 135 136 SI32_DMAXBAR_CHAN7_USB0_EP1_IN = 0x70, 137 SI32_DMAXBAR_CHAN7_AES0_XOR = 0x71, 138 SI32_DMAXBAR_CHAN7_SPI1_TX = 0x72, 139 SI32_DMAXBAR_CHAN7_USART0_TX = 0x73, 140 SI32_DMAXBAR_CHAN7_DMA0T0_RISE = 0x74, 141 SI32_DMAXBAR_CHAN7_DMA0T0_FALL = 0x75, 142 SI32_DMAXBAR_CHAN7_DMA0T1_RISE = 0x76, 143 SI32_DMAXBAR_CHAN7_DMA0T1_FALL = 0x77, 144 SI32_DMAXBAR_CHAN7_TIMER0L = 0x78, 145 SI32_DMAXBAR_CHAN7_TIMER1L = 0x79, 146 SI32_DMAXBAR_CHAN7_TIMER1H = 0x7A, 147 SI32_DMAXBAR_CHAN7_NONE = 0x7F, 148 149 SI32_DMAXBAR_CHAN8_USB0_EP4_OUT = 0x80, 150 SI32_DMAXBAR_CHAN8_USART1_RX = 0x81, 151 SI32_DMAXBAR_CHAN8_SPI1_RX = 0x82, 152 SI32_DMAXBAR_CHAN8_USART0_RX = 0x83, 153 SI32_DMAXBAR_CHAN8_EPCA0_CAPTURE = 0x84, 154 SI32_DMAXBAR_CHAN8_DMA0T0_RISE = 0x85, 155 SI32_DMAXBAR_CHAN8_DMA0T0_FALL = 0x86, 156 SI32_DMAXBAR_CHAN8_DMA0T1_RISE = 0x87, 157 SI32_DMAXBAR_CHAN8_DMA0T1_FALL = 0x88, 158 SI32_DMAXBAR_CHAN8_NONE = 0x8F, 159 160 SI32_DMAXBAR_CHAN9_USB0_EP3_OUT = 0x90, 161 SI32_DMAXBAR_CHAN9_USART1_TX = 0x91, 162 SI32_DMAXBAR_CHAN9_I2C0_TX = 0x92, 163 SI32_DMAXBAR_CHAN9_EPCA0_CAPTURE = 0x93, 164 SI32_DMAXBAR_CHAN9_DMA0T0_RISE = 0x94, 165 SI32_DMAXBAR_CHAN9_DMA0T0_FALL = 0x95, 166 SI32_DMAXBAR_CHAN9_DMA0T1_RISE = 0x96, 167 SI32_DMAXBAR_CHAN9_DMA0T1_FALL = 0x97, 168 SI32_DMAXBAR_CHAN9_TIMER0H = 0x98, 169 SI32_DMAXBAR_CHAN9_NONE = 0x9F, 170 171 SI32_DMAXBAR_CHAN10_USB0_EP2_OUT = 0xA0, 172 SI32_DMAXBAR_CHAN10_AES0_TX = 0xA1, 173 SI32_DMAXBAR_CHAN10_SARADC1 = 0xA2, 174 SI32_DMAXBAR_CHAN10_I2S0_RX = 0xA3, 175 SI32_DMAXBAR_CHAN10_DMA0T0_RISE = 0xA4, 176 SI32_DMAXBAR_CHAN10_DMA0T0_FALL = 0xA5, 177 SI32_DMAXBAR_CHAN10_DMA0T1_RISE = 0xA6, 178 SI32_DMAXBAR_CHAN10_DMA0T1_FALL = 0xA7, 179 SI32_DMAXBAR_CHAN10_TIMER1H = 0xA8, 180 SI32_DMAXBAR_CHAN10_NONE = 0xAF, 181 182 SI32_DMAXBAR_CHAN11_USB0_EP1_OUT = 0xB0, 183 SI32_DMAXBAR_CHAN11_AES0_RX = 0xB1, 184 SI32_DMAXBAR_CHAN11_USART1_RX = 0xB2, 185 SI32_DMAXBAR_CHAN11_USART0_RX = 0xB3, 186 SI32_DMAXBAR_CHAN11_I2C0_RX = 0xB4, 187 SI32_DMAXBAR_CHAN11_I2S0_RX = 0xB5, 188 SI32_DMAXBAR_CHAN11_DMA0T0_RISE = 0xB6, 189 SI32_DMAXBAR_CHAN11_DMA0T0_FALL = 0xB7, 190 SI32_DMAXBAR_CHAN11_DMA0T1_RISE = 0xB8, 191 SI32_DMAXBAR_CHAN11_DMA0T1_FALL = 0xB9, 192 SI32_DMAXBAR_CHAN11_TIMER0H = 0xBA, 193 SI32_DMAXBAR_CHAN11_NONE = 0xBF, 194 195 SI32_DMAXBAR_CHAN12_USB0_EP4_IN = 0xC0, 196 SI32_DMAXBAR_CHAN12_AES0_XOR = 0xC1, 197 SI32_DMAXBAR_CHAN12_USART1_TX = 0xC2, 198 SI32_DMAXBAR_CHAN12_SPI1_TX = 0xC3, 199 SI32_DMAXBAR_CHAN12_IDAC1 = 0xC4, 200 SI32_DMAXBAR_CHAN12_I2S0_TX = 0xC5, 201 SI32_DMAXBAR_CHAN12_DMA0T0_RISE = 0xC6, 202 SI32_DMAXBAR_CHAN12_DMA0T0_FALL = 0xC7, 203 SI32_DMAXBAR_CHAN12_DMA0T1_RISE = 0xC8, 204 SI32_DMAXBAR_CHAN12_DMA0T1_FALL = 0xC9, 205 SI32_DMAXBAR_CHAN12_TIMER0L = 0xCA, 206 SI32_DMAXBAR_CHAN12_TIMER1L = 0xCB, 207 SI32_DMAXBAR_CHAN12_TIMER1H = 0xCC, 208 SI32_DMAXBAR_CHAN12_NONE = 0xCF, 209 210 SI32_DMAXBAR_CHAN13_USB0_EP3_IN = 0xD0, 211 SI32_DMAXBAR_CHAN13_SPI0_RX = 0xD1, 212 SI32_DMAXBAR_CHAN13_USART0_RX = 0xD2, 213 SI32_DMAXBAR_CHAN13_IDAC1 = 0xD3, 214 SI32_DMAXBAR_CHAN13_I2S0_TX = 0xD4, 215 SI32_DMAXBAR_CHAN13_DMA0T0_RISE = 0xD5, 216 SI32_DMAXBAR_CHAN13_DMA0T0_FALL = 0xD6, 217 SI32_DMAXBAR_CHAN13_DMA0T1_RISE = 0xD7, 218 SI32_DMAXBAR_CHAN13_DMA0T1_FALL = 0xD8, 219 SI32_DMAXBAR_CHAN13_TIMER0H = 0xD9, 220 SI32_DMAXBAR_CHAN13_NONE = 0xDF, 221 222 SI32_DMAXBAR_CHAN14_USB0_EP2_IN = 0xE0, 223 SI32_DMAXBAR_CHAN14_SPI0_TX = 0xE1, 224 SI32_DMAXBAR_CHAN14_USART0_TX = 0xE2, 225 SI32_DMAXBAR_CHAN14_IDAC0 = 0xE3, 226 SI32_DMAXBAR_CHAN14_EPCA0_CONTROL = 0xE4, 227 SI32_DMAXBAR_CHAN14_DMA0T0_RISE = 0xE5, 228 SI32_DMAXBAR_CHAN14_DMA0T0_FALL = 0xE6, 229 SI32_DMAXBAR_CHAN14_DMA0T1_RISE = 0xE7, 230 SI32_DMAXBAR_CHAN14_DMA0T1_FALL = 0xE8, 231 SI32_DMAXBAR_CHAN14_TIMER0L = 0xE9, 232 SI32_DMAXBAR_CHAN14_TIMER1L = 0xEA, 233 SI32_DMAXBAR_CHAN14_NONE = 0xEF, 234 235 SI32_DMAXBAR_CHAN15_USB0_EP1_IN = 0xF0, 236 SI32_DMAXBAR_CHAN15_SARADC1 = 0xF1, 237 SI32_DMAXBAR_CHAN15_IDAC0 = 0xF2, 238 SI32_DMAXBAR_CHAN15_EPCA0_CONTROL = 0xF3, 239 SI32_DMAXBAR_CHAN15_DMA0T0_RISE = 0xF4, 240 SI32_DMAXBAR_CHAN15_DMA0T0_FALL = 0xF5, 241 SI32_DMAXBAR_CHAN15_DMA0T1_RISE = 0xF6, 242 SI32_DMAXBAR_CHAN15_DMA0T1_FALL = 0xF7, 243 SI32_DMAXBAR_CHAN15_TIMER0H = 0xF8, 244 SI32_DMAXBAR_CHAN15_TIMER1H = 0xF9, 245 SI32_DMAXBAR_CHAN15_NONE = 0xFF 246 } 247 SI32_DMAXBAR_CHNSEL_Enum_Type; 248 249 // Extracts DMA channel number from SI32_DMAXBAR_CHNSEL_Enum_Type 250 #define SI32_DMAXBAR_CHANNEL_OF(chsel) (((chsel) & 0xF0) >> 4) 251 252 //----------------------------------------------------------------------------- 253 // Define the DMA Endpoints 254 255 #define SI32_SARADC_0_RX_ENDPOINT &SI32_SARADC_0->DATA.U32 256 #define SI32_SARADC_1_RX_ENDPOINT &SI32_SARADC_1->DATA.U32 257 #define SI32_AES_0_TX_ENDPOINT &SI32_AES_0->DATAFIFO.U32 258 #define SI32_AES_0_RX_ENDPOINT &SI32_AES_0->DATAFIFO.U32 259 #define SI32_AES_0_XOR_ENDPOINT &SI32_AES_0->XORFIFO.U32 260 #define SI32_EPCA_0_CH0_RX_ENDPOINT &SI32_EPCA_0_CH0->CCAPV.U32 261 #define SI32_EPCA_0_CH1_RX_ENDPOINT &SI32_EPCA_0_CH1->CCAPV.U32 262 #define SI32_EPCA_0_CH2_RX_ENDPOINT &SI32_EPCA_0_CH2->CCAPV.U32 263 #define SI32_EPCA_0_CH3_RX_ENDPOINT &SI32_EPCA_0_CH3->CCAPV.U32 264 #define SI32_EPCA_0_CH4_RX_ENDPOINT &SI32_EPCA_0_CH4->CCAPV.U32 265 #define SI32_EPCA_0_CH5_RX_ENDPOINT &SI32_EPCA_0_CH5->CCAPV.U32 266 #define SI32_EPCA_0_TX_ENDPOINT &SI32_EPCA_0->DTARGET.U32 267 #define SI32_EPCA_0_CH0_TX_ENDPOINT &SI32_EPCA_0_CH0->CCAPVUPD.U32 268 #define SI32_EPCA_0_CH1_TX_ENDPOINT &SI32_EPCA_0_CH1->CCAPVUPD.U32 269 #define SI32_EPCA_0_CH2_TX_ENDPOINT &SI32_EPCA_0_CH2->CCAPVUPD.U32 270 #define SI32_EPCA_0_CH3_TX_ENDPOINT &SI32_EPCA_0_CH3->CCAPVUPD.U32 271 #define SI32_EPCA_0_CH4_TX_ENDPOINT &SI32_EPCA_0_CH4->CCAPVUPD.U32 272 #define SI32_EPCA_0_CH5_TX_ENDPOINT &SI32_EPCA_0_CH5->CCAPVUPD.U32 273 #define SI32_I2C_0_RX_ENDPOINT &SI32_I2C_0->DATA.U32 274 #define SI32_I2C_0_TX_ENDPOINT &SI32_I2C_0->DATA.U32 275 #define SI32_I2S_0_RX_ENDPOINT &SI32_I2S_0->RXFIFO.U32 276 #define SI32_I2S_0_TX_ENDPOINT &SI32_I2S_0->TXFIFO.U32 277 #define SI32_IDAC_0_TX_ENDPOINT &SI32_IDAC_0->DATA.U32 278 #define SI32_IDAC_1_TX_ENDPOINT &SI32_IDAC_1->DATA.U32 279 #define SI32_SPI_0_RX_ENDPOINT &SI32_SPI_0->DATA.U32 280 #define SI32_SPI_0_TX_ENDPOINT &SI32_SPI_0->DATA.U32 281 #define SI32_SPI_1_RX_ENDPOINT &SI32_SPI_1->DATA.U32 282 #define SI32_SPI_1_TX_ENDPOINT &SI32_SPI_1->DATA.U32 283 #define SI32_USART_0_RX_ENDPOINT &SI32_USART_0->DATA.U32 284 #define SI32_USART_0_TX_ENDPOINT &SI32_USART_0->DATA.U32 285 #define SI32_USART_1_RX_ENDPOINT &SI32_USART_1->DATA.U32 286 #define SI32_USART_1_TX_ENDPOINT &SI32_USART_1->DATA.U32 287 #define SI32_USB_0_EP1_IN_ENDPOINT &SI32_USB_0_EP1->EPFIFO.U32 288 #define SI32_USB_0_EP1_OUT_ENDPOINT &SI32_USB_0_EP1->EPFIFO.U32 289 #define SI32_USB_0_EP2_IN_ENDPOINT &SI32_USB_0_EP2->EPFIFO.U32 290 #define SI32_USB_0_EP2_OUT_ENDPOINT &SI32_USB_0_EP2->EPFIFO.U32 291 #define SI32_USB_0_EP3_IN_ENDPOINT &SI32_USB_0_EP3->EPFIFO.U32 292 #define SI32_USB_0_EP3_OUT_ENDPOINT &SI32_USB_0_EP3->EPFIFO.U32 293 #define SI32_USB_0_EP4_IN_ENDPOINT &SI32_USB_0_EP4->EPFIFO.U32 294 #define SI32_USB_0_EP4_OUT_ENDPOINT &SI32_USB_0_EP4->EPFIFO.U32 295 296 #ifdef __cplusplus 297 } 298 #endif 299 300 #endif // __SI32_DMAXBAR_A_Support_Guard__ 301 302 //-eof-------------------------------------------------------------------------- 303