]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/msp430/usci/Msp430SpiP.nc
The msp430 now has two basic clock peripherals. Add tos/chips/msp430/clock and
[tinyos-2.x.git] / tos / chips / msp430 / usci / Msp430SpiP.nc
index 2d8db430d41b9bca0375be9fd86533a0b5d03e2c..3320200596be9ff6f17a42c318c1fbf4e98225c1 100644 (file)
@@ -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 */