|
|
@ -47,6 +47,7 @@ void suspend_idle(uint8_t time)
|
|
|
|
sleep_disable();
|
|
|
|
sleep_disable();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef NO_SUSPEND_POWER_DOWN
|
|
|
|
/* Power down MCU with watchdog timer
|
|
|
|
/* Power down MCU with watchdog timer
|
|
|
|
* wdto: watchdog timer timeout defined in <avr/wdt.h>
|
|
|
|
* wdto: watchdog timer timeout defined in <avr/wdt.h>
|
|
|
|
* WDTO_15MS
|
|
|
|
* WDTO_15MS
|
|
|
@ -61,6 +62,7 @@ void suspend_idle(uint8_t time)
|
|
|
|
* WDTO_8S
|
|
|
|
* WDTO_8S
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
static uint8_t wdt_timeout = 0;
|
|
|
|
static uint8_t wdt_timeout = 0;
|
|
|
|
|
|
|
|
|
|
|
|
static void power_down(uint8_t wdto)
|
|
|
|
static void power_down(uint8_t wdto)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#ifdef PROTOCOL_LUFA
|
|
|
|
#ifdef PROTOCOL_LUFA
|
|
|
@ -98,10 +100,13 @@ static void power_down(uint8_t wdto)
|
|
|
|
// Disable watchdog after sleep
|
|
|
|
// Disable watchdog after sleep
|
|
|
|
wdt_disable();
|
|
|
|
wdt_disable();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
void suspend_power_down(void)
|
|
|
|
void suspend_power_down(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
#ifndef NO_SUSPEND_POWER_DOWN
|
|
|
|
power_down(WDTO_15MS);
|
|
|
|
power_down(WDTO_15MS);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
__attribute__ ((weak)) void matrix_power_up(void) {}
|
|
|
|
__attribute__ ((weak)) void matrix_power_up(void) {}
|
|
|
@ -109,7 +114,9 @@ __attribute__ ((weak)) void matrix_power_down(void) {}
|
|
|
|
bool suspend_wakeup_condition(void)
|
|
|
|
bool suspend_wakeup_condition(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#ifdef BACKLIGHT_ENABLE
|
|
|
|
#ifdef BACKLIGHT_ENABLE
|
|
|
|
|
|
|
|
#ifndef NO_SUSPEND_POWER_DOWN
|
|
|
|
backlight_set(0);
|
|
|
|
backlight_set(0);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
matrix_power_up();
|
|
|
|
matrix_power_up();
|
|
|
|
matrix_scan();
|
|
|
|
matrix_scan();
|
|
|
@ -126,7 +133,6 @@ void suspend_wakeup_init(void)
|
|
|
|
// clear keyboard state
|
|
|
|
// clear keyboard state
|
|
|
|
clear_keyboard();
|
|
|
|
clear_keyboard();
|
|
|
|
#ifdef BACKLIGHT_ENABLE
|
|
|
|
#ifdef BACKLIGHT_ENABLE
|
|
|
|
backlight_set(0);
|
|
|
|
|
|
|
|
backlight_init();
|
|
|
|
backlight_init();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
led_set(host_keyboard_leds());
|
|
|
|
led_set(host_keyboard_leds());
|
|
|
|