- /* Configure USCI registers */
- call Registers.assignCtl0(0xff, config->uart.ctl0);
- call Registers.assignCtl1(0xff, config->uart.ctl1|UCSWRST);
- call Registers.assignBr0(0xff, config->uart.brx & 0xff);
- call Registers.assignBr1(0xff, config->uart.brx >> 8);
- call Registers.assignMctl(0xff, config->uart.mctl);
- call Registers.assignIrtctl(0xff, config->uart.irtctl);
- call Registers.assignIrrctl(0xff, config->uart.irrctl);
- call Registers.assignAbctl(0xff, config->uart.abctl);
- /* FIXME: we may need to have REN/DIR stuff in the configuration... */
+ /* Configure USCI registers */
+ call Registers.assignCtl0(config->ctl0 & ~UCSYNC);
+ call Registers.assignCtl1(config->ctl1 | UCSWRST);
+ call Registers.assignBr0(config->brx & 0xff);
+ call Registers.assignBr1(config->brx >> 8);
+ call Registers.assignMctl(config->mctl);
+ call Registers.assignIrtctl(config->irtctl);
+ call Registers.assignIrrctl(config->irrctl);
+ call Registers.assignAbctl(config->abctl);
+ if (config->uclisten)
+ call Registers.setStat(UCLISTEN);
+ else
+ call Registers.clrStat(UCLISTEN);