Fix up scanning for Djinn, post-asyncUSB. (#23188)

This commit is contained in:
Nick Brassel 2024-03-02 08:45:11 +11:00 committed by GitHub
parent 7dd57f16c3
commit d5ac75385b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,7 +1,8 @@
// Copyright 2018-2022 Nick Brassel (@tzarc) // Copyright 2018-2022 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include <ch.h>
#include <hal.h>
#include "quantum.h" #include "quantum.h"
#include <hal_pal.h>
#include "djinn.h" #include "djinn.h"
#define GPIOB_BITMASK (1 << 13 | 1 << 14 | 1 << 15) // B13, B14, B15 #define GPIOB_BITMASK (1 << 13 | 1 << 14 | 1 << 15) // B13, B14, B15
@ -34,6 +35,8 @@ void matrix_wait_for_port(stm32_gpio_t *port, uint32_t target_bitmask) {
} }
} }
static void dummy_vt_callback(virtual_timer_t *vtp, void *p) {}
void matrix_init_custom(void) { void matrix_init_custom(void) {
for (int i = 0; i < MATRIX_ROWS; ++i) { for (int i = 0; i < MATRIX_ROWS; ++i) {
setPinInputHigh(row_pins[i]); setPinInputHigh(row_pins[i]);
@ -41,6 +44,11 @@ void matrix_init_custom(void) {
for (int i = 0; i < MATRIX_COLS; ++i) { for (int i = 0; i < MATRIX_COLS; ++i) {
setPinInputHigh(col_pins[i]); setPinInputHigh(col_pins[i]);
} }
// Start a virtual timer so we'll still get periodic wakeups, now that USB SOF doesn't wake up the main loop
static virtual_timer_t vt;
chVTObjectInit(&vt);
chVTSetContinuous(&vt, TIME_MS2I(10), dummy_vt_callback, NULL);
} }
bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool matrix_scan_custom(matrix_row_t current_matrix[]) {