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 #ifdef RGB_MATRIX_ENABLE
39 I2C3733_Control_Set(0); //Disable LED driver
42 suspend_power_down_kb();
45 __attribute__ ((weak)) void matrix_power_up(void) {}
46 __attribute__ ((weak)) void matrix_power_down(void) {}
47 bool suspend_wakeup_condition(void) {
51 for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
52 if (matrix_get_row(r)) return true;
57 /** \brief run user level code immediately after wakeup
61 __attribute__ ((weak))
62 void suspend_wakeup_init_user(void) {
66 /** \brief run keyboard level code immediately after wakeup
70 __attribute__ ((weak))
71 void suspend_wakeup_init_kb(void) {
72 suspend_wakeup_init_user();
75 /** \brief run immediately after wakeup
79 void suspend_wakeup_init(void) {
80 #ifdef RGB_MATRIX_ENABLE
81 I2C3733_Control_Set(1);
84 suspend_wakeup_init_kb();