[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