24 static int SCI_A_in_use=0;
25 static int SCI_B_in_use=0;
26 static int SCI_C_in_use=0;
28 switch(SCI_Int.
scirx){
29 case 11:
if(!SCI_B_in_use){
30 TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<11);
31 TMC_BASE_PIO->CTL[0].QSEL1 |= ((
Uint32)0x3<<22);
32 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<22);
33 switch(SCI_Int.
scitx){
34 case 9: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<9);
35 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<18);
37 case 14: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<14);
38 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<28);
40 case 18: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<18);
41 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x2<<4);
43 case 22: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<22);
44 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x3<<12);
56 case 15:
if(!SCI_B_in_use){
57 TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<15);
58 TMC_BASE_PIO->CTL[0].QSEL1 |= ((
Uint32)0x3<<30);
59 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<30);
60 switch(SCI_Int.
scitx){
61 case 9: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<9);
62 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<18);
64 case 14: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<14);
65 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<28);
67 case 18: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<18);
68 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x2<<4);
70 case 22: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<22);
71 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x3<<12);
83 case 19:
if(!SCI_B_in_use){
84 TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<19);
85 TMC_BASE_PIO->CTL[0].QSEL2 |= ((
Uint32)0x3<<6);
86 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x2<<6);
87 switch(SCI_Int.
scitx){
88 case 9: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<9);
89 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<18);
91 case 14: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<14);
92 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<28);
94 case 18: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<18);
95 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x2<<4);
97 case 22: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<22);
98 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x3<<12);
110 case 23:
if(!SCI_B_in_use){
111 TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<23);
112 TMC_BASE_PIO->CTL[0].QSEL2 |= ((
Uint32)0x3<<14);
113 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x3<<14);
114 switch(SCI_Int.
scitx){
115 case 9: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<9);
116 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<18);
118 case 14: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<14);
119 TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2<<28);
121 case 18: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<18);
122 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x2<<4);
124 case 22: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<22);
125 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x3<<12);
137 case 28:
if(!SCI_A_in_use){
138 TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<28);
139 TMC_BASE_PIO->CTL[0].QSEL2 |= ((
Uint32)0x3<<24);
140 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x1<<24);
141 switch(SCI_Int.
scitx){
142 case 29: TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1<<29);
143 TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x1<<26);
155 case 62:
if(!SCI_C_in_use){
156 TMC_BASE_PIO->CTL[1].PUD &= ~((
Uint32)0x1<<30);
157 TMC_BASE_PIO->CTL[1].QSEL2 |= ((
Uint32)0x3<<28);
158 TMC_BASE_PIO->CTL[1].MUX2 |= ((
Uint32)0x1<<28);
159 switch(SCI_Int.
scitx){
160 case 63: TMC_BASE_PIO->CTL[1].PUD &= ~((
Uint32)0x1<<31);
161 TMC_BASE_PIO->CTL[1].MUX2 |= ((
Uint32)0x1<<30);
180 SCI->
CTL1 |= (0x1 << 1);
181 SCI->
PRI |= (0x1 << 3);
182 BRR = (0x23BE000/((long)SCI_Int.
baudrate*8))-1;
184 SCI->
HBAUD = BRR >> 8;
185 SCI->
LBAUD = BRR&0xFF;
189 SCI->
FFTX |= (0x1 << 5);
190 SCI->
FFTX |= (0x1 << 6);
191 SCI->
FFTX &= ~(0x1F);
193 SCI->
FFRX |= (0x1 << 14);
194 SCI->
FFRX |= (0x1 << 13);
195 SCI->
FFRX |= (0x1 << 5);
196 SCI->
FFRX &= ~(0x1F);
198 SCI->
FFRX |= (0x1 << 6);
200 SCI->
CTL1 |= (0x1<<5);
215 TMC_BASE_PIE->CTRL |= 0x01;
217 switch(SCI_Int.
scitx){
218 case 9: TMC_BASE_INT_REGS->SCITXINTB_SCI = (
Uint32)spiTxFIFOISR;
219 TMC_BASE_PIE->GROUP[8].IER |= 0x8;
222 case 14: TMC_BASE_INT_REGS->SCITXINTB_SCI = (
Uint32)spiTxFIFOISR;
223 TMC_BASE_PIE->GROUP[8].IER |= 0x8;
226 case 18: TMC_BASE_INT_REGS->SCITXINTB_SCI = (
Uint32)spiTxFIFOISR;
227 TMC_BASE_PIE->GROUP[8].IER |= 0x8;
230 case 22: TMC_BASE_INT_REGS->SCITXINTB_SCI = (
Uint32)spiTxFIFOISR;
231 TMC_BASE_PIE->GROUP[8].IER |= 0x8;
234 case 29: TMC_BASE_INT_REGS->SCITXINTA_SCI = (
Uint32)spiTxFIFOISR;
235 TMC_BASE_PIE->GROUP[8].IER |= 0x2;
238 case 63: TMC_BASE_INT_REGS->SCITXINTC_SCI = (
Uint32)spiTxFIFOISR;
239 TMC_BASE_PIE->GROUP[7].IER |= 0x20;
261 TMC_BASE_PIE->CTRL |= 0x01;
263 switch(SCI_Int.
scirx){
264 case 11: TMC_BASE_INT_REGS->SCIRXINTB_SCI = (
Uint32)spiRxFIFOISR;
265 TMC_BASE_PIE->GROUP[8].IER |= 0x4;
268 case 15: TMC_BASE_INT_REGS->SCIRXINTB_SCI = (
Uint32)spiRxFIFOISR;
269 TMC_BASE_PIE->GROUP[8].IER |= 0x4;
272 case 19: TMC_BASE_INT_REGS->SCIRXINTB_SCI = (
Uint32)spiRxFIFOISR;
273 TMC_BASE_PIE->GROUP[8].IER |= 0x4;
276 case 23: TMC_BASE_INT_REGS->SCIRXINTB_SCI = (
Uint32)spiRxFIFOISR;
277 TMC_BASE_PIE->GROUP[8].IER |= 0x4;
280 case 28: TMC_BASE_INT_REGS->SCIRXINTA_SCI = (
Uint32)spiRxFIFOISR;
281 TMC_BASE_PIE->GROUP[8].IER |= 0x1;
284 case 62: TMC_BASE_INT_REGS->SCIRXINTC_SCI = (
Uint32)spiRxFIFOISR;
285 TMC_BASE_PIE->GROUP[7].IER |= 0x10;
307 switch(SCI_Int.
scitx){
308 case 9: SCI=TMC_BASE_SCIB;
310 case 14: SCI=TMC_BASE_SCIB;
312 case 18: SCI=TMC_BASE_SCIB;
314 case 22: SCI=TMC_BASE_SCIB;
316 case 29: SCI=TMC_BASE_SCIA;
318 case 63: SCI=TMC_BASE_SCIC;
336 switch(SCI_Int.
scirx){
337 case 11: SCI=TMC_BASE_SCIB;
339 case 15: SCI=TMC_BASE_SCIB;
341 case 19: SCI=TMC_BASE_SCIB;
343 case 23: SCI=TMC_BASE_SCIB;
345 case 28: SCI=TMC_BASE_SCIA;
347 case 62: SCI=TMC_BASE_SCIC;
352 if(SCI->
FFRX & 0x1F00){
365 switch(SCI_Int.
scirx){
366 case 11: SCI=TMC_BASE_SCIB;
368 case 15: SCI=TMC_BASE_SCIB;
370 case 19: SCI=TMC_BASE_SCIB;
372 case 23: SCI=TMC_BASE_SCIB;
374 case 28: SCI=TMC_BASE_SCIA;
376 case 62: SCI=TMC_BASE_SCIC;
380 SCI->
FFRX |= (0x1<<6);
390 switch(SCI_Int.
scirx){
391 case 11: SCI=TMC_BASE_SCIB;
393 case 15: SCI=TMC_BASE_SCIB;
395 case 19: SCI=TMC_BASE_SCIB;
397 case 23: SCI=TMC_BASE_SCIB;
399 case 28: SCI=TMC_BASE_SCIA;
401 case 62: SCI=TMC_BASE_SCIC;
405 SCI->
FFTX |= (0x1<<6);
414 TMC_BASE_PIE->ACK |= 0x180;