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