Skip to content

Commit

Permalink
Support RGBLIGHT_SLEEP when ChibiOS boards suspend (#7280)
Browse files Browse the repository at this point in the history
Copypasta from the AVR suspend implementation with a Teensy-specific
hack removed
  • Loading branch information
bcat authored and zvecr committed Nov 8, 2019
1 parent 6fd88c1 commit 680d401
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions tmk_core/common/chibios/suspend.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@
# include "backlight.h"
#endif

#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
# include "rgblight.h"
extern rgblight_config_t rgblight_config;
static bool rgblight_enabled;
static bool is_suspended;
#endif

/** \brief suspend idle
*
* FIXME: needs doc
Expand Down Expand Up @@ -43,6 +50,16 @@ void suspend_power_down(void) {
// TODO: figure out what to power down and how
// shouldn't power down TPM/FTM if we want a breathing LED
// also shouldn't power down USB
#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
# ifdef RGBLIGHT_ANIMATIONS
rgblight_timer_disable();
# endif
if (!is_suspended) {
is_suspended = true;
rgblight_enabled = rgblight_config.enable;
rgblight_disable_noeeprom();
}
#endif

suspend_power_down_kb();
// on AVR, this enables the watchdog for 15ms (max), and goes to
Expand Down Expand Up @@ -104,5 +121,14 @@ void suspend_wakeup_init(void) {
#ifdef BACKLIGHT_ENABLE
backlight_init();
#endif /* BACKLIGHT_ENABLE */
#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
is_suspended = false;
if (rgblight_enabled) {
rgblight_enable_noeeprom();
}
# ifdef RGBLIGHT_ANIMATIONS
rgblight_timer_enable();
# endif
#endif
suspend_wakeup_init_kb();
}

0 comments on commit 680d401

Please sign in to comment.