2 #include "i2c_master.h"
3 #include "led_matrix.h"
6 /** \brief Suspend idle
10 void suspend_idle(uint8_t time) {
11 /* Note: Not used anywhere currently */
14 /** \brief Run user level Power down
18 __attribute__ ((weak))
19 void suspend_power_down_user (void) {
23 /** \brief Run keyboard level Power down
27 __attribute__ ((weak))
28 void suspend_power_down_kb(void) {
29 suspend_power_down_user();
32 /** \brief Suspend power down
36 void suspend_power_down(void)
38 I2C3733_Control_Set(0); //Disable LED driver
40 suspend_power_down_kb();
43 __attribute__ ((weak)) void matrix_power_up(void) {}
44 __attribute__ ((weak)) void matrix_power_down(void) {}
45 bool suspend_wakeup_condition(void) {
49 for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
50 if (matrix_get_row(r)) return true;
55 /** \brief run user level code immediately after wakeup
59 __attribute__ ((weak))
60 void suspend_wakeup_init_user(void) {
64 /** \brief run keyboard level code immediately after wakeup
68 __attribute__ ((weak))
69 void suspend_wakeup_init_kb(void) {
70 suspend_wakeup_init_user();
73 /** \brief run immediately after wakeup
77 void suspend_wakeup_init(void) {
78 /* If LEDs are set to enabled, enable the hardware */
80 I2C3733_Control_Set(1);
83 suspend_wakeup_init_kb();