X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fmsp430%2Fusci%2FMsp430SpiP.nc;h=3320200596be9ff6f17a42c318c1fbf4e98225c1;hb=b83aa91d0424245008bc68cecceac8b12efda682;hp=2d8db430d41b9bca0375be9fd86533a0b5d03e2c;hpb=d3c4fe58cc54a7f304e00ad4318d8c07bbb093c3;p=tinyos-2.x.git diff --git a/tos/chips/msp430/usci/Msp430SpiP.nc b/tos/chips/msp430/usci/Msp430SpiP.nc index 2d8db430..33202005 100644 --- a/tos/chips/msp430/usci/Msp430SpiP.nc +++ b/tos/chips/msp430/usci/Msp430SpiP.nc @@ -93,18 +93,21 @@ implementation { { atomic { const msp430_usci_spi_t* config = call Configure.get(); + uint8_t ctl0; call Registers.setCtl1(UCSWRST); + /* Force 3-pin SPI if config says I2C */ + ctl0 = config->ctl0 | UCSYNC; + if ((ctl0 & UCMODE_3) == UCMODE_3) + ctl0 &= ~(UCMODE_3); + /* Configure USCI registers */ - call Registers.assignCtl0(config->ctl0); - call Registers.assignCtl1(config->ctl1|UCSWRST); + call Registers.assignCtl0(ctl0); + 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); + call Registers.assignMctl(config->mctl); /* ??? */ call Registers.clrStat(UCLISTEN); /* Save pin IO states */