+
+void matrix_power_up(void) {
+ if (matrix_power) return;
+ KEY_POWER_ON();
+ matrix_power = true;
+}
+void matrix_power_down(void) {
+ if (!matrix_power) return;
+ // doesn't power save while USB connection is active
+ if (USB_DeviceState == DEVICE_STATE_Configured) return;
+ if (timer_elapsed32(matrix_last_modified) <= MATRIX_POWER_SAVE) return;
+ KEY_POWER_OFF();
+ suspend_power_down(WDTO_15MS);
+ matrix_power = false;
+}