X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fpxa27x%2Ftimer%2FHalPXA27xSleepM.nc;h=fa07c0ea05e3137e86d5c43cd8971decc5996980;hb=337d0b13acf569c2640b3ed7b7f5c7cec35d7ddd;hp=f65e8d7901b9fcf647ccb8bbd99238e2bf1dbc1b;hpb=1a329382c4f4556fd52d85f4e3f4a67e54911682;p=tinyos-2.x.git diff --git a/tos/chips/pxa27x/timer/HalPXA27xSleepM.nc b/tos/chips/pxa27x/timer/HalPXA27xSleepM.nc index f65e8d79..fa07c0ea 100644 --- a/tos/chips/pxa27x/timer/HalPXA27xSleepM.nc +++ b/tos/chips/pxa27x/timer/HalPXA27xSleepM.nc @@ -43,7 +43,7 @@ module HalPXA27xSleepM { implementation { - void doSleep(uint32_t swRegVal) { + void doSleep(uint32_t swRegVal, bool useDeepSleep) { int i; call HplPXA27xPower.setPWER(PWER_WERTC); // let it wrap around itself if necessary @@ -54,8 +54,14 @@ implementation { call HplPXA27xRTC.setRTSR(RTSR_SWCE); for(i = 0; i < 5000; i++); // spin for a bit - call HplPXA27xPower.setPWRMode(PWRMODE_M_SLEEP); + if (useDeepSleep) { + call HplPXA27xPower.setPWRMode(PWRMODE_M_DEEPSLEEP); + // this call never returns + } + else { + call HplPXA27xPower.setPWRMode(PWRMODE_M_SLEEP); // this call never returns + } }