]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/sensorboards/im2sb/LIS3L02DQInternalP.nc
stm25p: fix seek error
[tinyos-2.x.git] / tos / sensorboards / im2sb / LIS3L02DQInternalP.nc
index f5598239f18531f6a78fb926b465284d113530b4..27e798be79194d56295c19e6cc3ffeabcd7b0357 100644 (file)
  */
 
 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;
 }
 
 implementation {
   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;
     return call ToHPLC.getReg(regAddr);
@@ -52,6 +87,16 @@ implementation {
     currentId = id;
     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);
   }
@@ -61,7 +106,16 @@ implementation {
   async event void ToHPLC.alertThreshold() {
     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) { }
   default async event void HplLIS3L02DQ.setRegDone[uint8_t id](error_t error, uint8_t regAddr, uint8_t val) { }
+  default async event void HplLIS3L02DQ.alertThreshold[uint8_t id]() { }
 }