diff options
Diffstat (limited to 'platforms/avr/suspend.c')
| -rw-r--r-- | platforms/avr/suspend.c | 55 | 
1 files changed, 13 insertions, 42 deletions
| diff --git a/platforms/avr/suspend.c b/platforms/avr/suspend.c index b614746e6c..b615979439 100644 --- a/platforms/avr/suspend.c +++ b/platforms/avr/suspend.c @@ -2,12 +2,9 @@  #include <avr/sleep.h>  #include <avr/wdt.h>  #include <avr/interrupt.h> -#include "matrix.h" -#include "action.h"  #include "suspend.h" +#include "action.h"  #include "timer.h" -#include "led.h" -#include "host.h"  #ifdef PROTOCOL_LUFA  #    include "lufa.h" @@ -16,19 +13,6 @@  #    include "vusb.h"  #endif -/** \brief Suspend idle - * - * FIXME: needs doc - */ -void suspend_idle(uint8_t time) { -    cli(); -    set_sleep_mode(SLEEP_MODE_IDLE); -    sleep_enable(); -    sei(); -    sleep_cpu(); -    sleep_disable(); -} -  // TODO: This needs some cleanup  #if !defined(NO_SUSPEND_POWER_DOWN) && defined(WDT_vect) @@ -91,6 +75,18 @@ static void power_down(uint8_t wdto) {      // Disable watchdog after sleep      wdt_disable();  } + +/* watchdog timeout */ +ISR(WDT_vect) { +    // compensate timer for sleep +    switch (wdt_timeout) { +        case WDTO_15MS: +            timer_count += 15 + 2;  // WDTO_15MS + 2(from observation) +            break; +        default:; +    } +} +  #endif  /** \brief Suspend power down @@ -115,18 +111,6 @@ void suspend_power_down(void) {  #endif  } -__attribute__((weak)) void matrix_power_up(void) {} -__attribute__((weak)) void matrix_power_down(void) {} -bool                       suspend_wakeup_condition(void) { -    matrix_power_up(); -    matrix_scan(); -    matrix_power_down(); -    for (uint8_t r = 0; r < MATRIX_ROWS; r++) { -        if (matrix_get_row(r)) return true; -    } -    return false; -} -  /** \brief run immediately after wakeup   *   * FIXME: needs doc @@ -137,16 +121,3 @@ void suspend_wakeup_init(void) {      suspend_wakeup_init_quantum();  } - -#if !defined(NO_SUSPEND_POWER_DOWN) && defined(WDT_vect) -/* watchdog timeout */ -ISR(WDT_vect) { -    // compensate timer for sleep -    switch (wdt_timeout) { -        case WDTO_15MS: -            timer_count += 15 + 2;  // WDTO_15MS + 2(from observation) -            break; -        default:; -    } -} -#endif | 
