[Tinyos-2-commits] CVS: tinyos-2.x/tos/sensorboards/im2sb LIS3L02DQInternalC.nc, 1.1.2.4, 1.1.2.5 LIS3L02DQInternalP.nc, 1.1.2.2, 1.1.2.3

Philip Buonadonna philipb at users.sourceforge.net
Thu Nov 2 18:28:24 PST 2006


Update of /cvsroot/tinyos/tinyos-2.x/tos/sensorboards/im2sb
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9869

Modified Files:
      Tag: tinyos-2_0_devel-BRANCH
	LIS3L02DQInternalC.nc LIS3L02DQInternalP.nc 
Log Message:
Added SSP1 IO configuration calls that were originally in the core driver

Index: LIS3L02DQInternalC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/sensorboards/im2sb/LIS3L02DQInternalC.nc,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -C2 -d -r1.1.2.4 -r1.1.2.5
*** LIS3L02DQInternalC.nc	15 Aug 2006 11:59:09 -0000	1.1.2.4
--- LIS3L02DQInternalC.nc	3 Nov 2006 02:28:22 -0000	1.1.2.5
***************
*** 44,82 ****
  
  implementation {
    components new SimpleFcfsArbiterC( "LIS3L02DQ.Resource" ) as Arbiter;
    components MainC;
-   Resource = Arbiter;
  
!   components HplLIS3L02DQLogicSPIP as Logic;
!   MainC.SoftwareInit -> Logic;
  
    components GeneralIOC;
!   Logic.InterruptPin -> GeneralIOC.GeneralIO[GPIO_LIS3L02DQ_RDY_INT];
!   Logic.InterruptAlert -> GeneralIOC.GpioInterrupt[GPIO_LIS3L02DQ_RDY_INT];
  
!   components HplPXA27xSSP1C;
!   // 0: Motorola SPI
!   // 3: random guess what SSP Clock Rate should be
!   // 7: 8 bit data size OR 15: 16 bit data size?
!   // FALSE: No "Receive without transmit"
!   components new HalPXA27xSpiPioC(128, 7, FALSE) as HalSpi;
!   HalSpi.SSP -> HplPXA27xSSP1C;
!   MainC.SoftwareInit -> HalSpi;
!   Logic.SpiPacket -> HalSpi.SpiPacket[unique("SPIInstance")];
  
!   components LIS3L02DQInternalP as Internal;
!   HplLIS3L02DQ = Internal;
!   Internal.ToHPLC -> Logic.HplLIS3L02DQ;
!   
!   SplitControl = Logic;
  
!   components HplPXA27xGPIOC;
!   Logic.SPICLK -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_SCLK];
!   Logic.SPIFRM -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_SFRM];
!   Logic.SPIRxD -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_RXD];
!   Logic.SPITxD -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_TXD];
  
!   components HalLIS3L02DQControlP as Control;
!   Control.Hpl -> Logic;
    
  }
--- 44,80 ----
  
  implementation {
+   components LIS3L02DQInternalP as InternalP;
    components new SimpleFcfsArbiterC( "LIS3L02DQ.Resource" ) as Arbiter;
    components MainC;
  
!   Resource = Arbiter;
!   HplLIS3L02DQ = InternalP;
!   SplitControl = InternalP;
!   MainC.SoftwareInit -> InternalP;
  
+   components HplLIS3L02DQLogicSPIP as LogicSPIP;
+   components HalLIS3L02DQControlP as ControlP;
+   components new HalPXA27xSpiPioC(128, 7, FALSE) as HalSpi;
+   components HplPXA27xSSP1C;
    components GeneralIOC;
!   components HplPXA27xGPIOC;
  
!   InternalP.ToHPLC -> LogicSPIP.HplLIS3L02DQ;
!   InternalP.SubControl -> LogicSPIP.SplitControl;
!   InternalP.SPICLK -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_SCLK];
!   InternalP.SPIRxD -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_RXD];
!   InternalP.SPITxD -> HplPXA27xGPIOC.HplPXA27xGPIOPin[SSP1_TXD];
!   InternalP.HPWRCntl -> HplPXA27xGPIOC.HplPXA27xGPIOPin[GPIO_PWR_ADC_NSHDWN];
  
!   LogicSPIP.SpiPacket -> HalSpi.SpiPacket[unique("SPIInstance")];
!   LogicSPIP.SPIFRM -> GeneralIOC.GeneralIO[SSP1_SFRM];
!   LogicSPIP.InterruptAlert -> GeneralIOC.GpioInterrupt[GPIO_LIS3L02DQ_RDY_INT];
  
!   ControlP.Hpl -> LogicSPIP;
  
!   MainC.SoftwareInit -> HalSpi;
!   MainC.SoftwareInit -> LogicSPIP;
! 
!   HalSpi.SSP -> HplPXA27xSSP1C;
    
  }

Index: LIS3L02DQInternalP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/sensorboards/im2sb/LIS3L02DQInternalP.nc,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -C2 -d -r1.1.2.2 -r1.1.2.3
*** LIS3L02DQInternalP.nc	14 Jul 2006 16:30:29 -0000	1.1.2.2
--- LIS3L02DQInternalP.nc	3 Nov 2006 02:28:22 -0000	1.1.2.3
***************
*** 38,43 ****
--- 38,51 ----
  
  module LIS3L02DQInternalP {
+   provides interface Init;
+   provides interface SplitControl;
    provides interface HplLIS3L02DQ[uint8_t id];
+   
+   uses interface SplitControl as SubControl;
    uses interface HplLIS3L02DQ as ToHPLC;
+   uses interface HplPXA27xGPIOPin as SPIRxD;
+   uses interface HplPXA27xGPIOPin as SPITxD;
+   uses interface HplPXA27xGPIOPin as SPICLK;
+   uses interface HplPXA27xGPIOPin as HPWRCntl;
  }
  
***************
*** 45,48 ****
--- 53,83 ----
    uint8_t currentId;
  
+ 
+   command error_t Init.init() {
+     // Initialize Pin Directions
+     call SPICLK.setGAFRpin(SSP1_SCLK_ALTFN);
+     call SPICLK.setGPDRbit(TRUE);
+     call SPIRxD.setGAFRpin(SSP1_RXD_ALTFN);
+     call SPIRxD.setGPDRbit(FALSE);
+     call SPITxD.setGAFRpin(SSP1_TXD_ALTFN);
+     call SPITxD.setGPDRbit(TRUE);
+ 
+     call HPWRCntl.setGPDRbit(TRUE);
+     call HPWRCntl.setGPSRbit();
+     return SUCCESS;
+   }
+ 
+   command error_t SplitControl.start() {
+     error_t error = SUCCESS;
+     error = call SubControl.start();
+     return error;
+   }
+ 
+   command error_t SplitControl.stop() {
+     error_t error = SUCCESS;
+     error = call SubControl.stop();
+     return error;
+   }
+ 
    command error_t HplLIS3L02DQ.getReg[uint8_t id](uint8_t regAddr) {
      currentId = id;
***************
*** 53,56 ****
--- 88,101 ----
      return call ToHPLC.setReg(regAddr, val);
    }
+ 
+   event void SubControl.startDone(error_t error) {
+     signal SplitControl.startDone(error);
+     return;
+   }
+   event void SubControl.stopDone(error_t error) {
+     signal SplitControl.stopDone(error);
+     return;
+   }
+ 
    async event void ToHPLC.getRegDone(error_t error, uint8_t regAddr, uint8_t val) {
      signal HplLIS3L02DQ.getRegDone[currentId](error, regAddr, val);
***************
*** 62,65 ****
--- 107,118 ----
      signal HplLIS3L02DQ.alertThreshold[currentId]();
    }
+   
+   async event void SPITxD.interruptGPIOPin() {}
+   async event void SPIRxD.interruptGPIOPin() {}
+   async event void SPICLK.interruptGPIOPin() {}
+   async event void HPWRCntl.interruptGPIOPin() {}
+ 
+   default event void SplitControl.startDone(error_t error) { return; }
+   default event void SplitControl.stopDone(error_t error) { return; }
  
    default async event void HplLIS3L02DQ.getRegDone[uint8_t id](error_t error, uint8_t regAddr, uint8_t val) { }



More information about the Tinyos-2-commits mailing list