kbc: Add reset function

This function can be called after EC init to put the KBC into a known
working state.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
Tim Crawford
2023-07-17 11:10:00 -06:00
committed by Jeremy Soller
parent 0d83819a21
commit de546fa761
3 changed files with 6 additions and 2 deletions

View File

@@ -10,6 +10,7 @@
extern uint8_t kbc_leds;
void kbc_init(void);
void kbc_reset(void);
bool kbc_scancode(uint16_t key, bool pressed);
void kbc_event(struct Kbc *kbc);

View File

@@ -18,6 +18,11 @@ void kbc_init(void) {
// Set IRQ mode to level-triggered
*(KBC.irq) = 0;
#endif
kbc_reset();
}
void kbc_reset(void) {
// Set "key lock" to disabled
*(KBC.status) = BIT(4);
}

View File

@@ -8,8 +8,6 @@
#include <stdbool.h>
#include <stdint.h>
void kbc_init(void);
struct Kbc {
// Control register
volatile uint8_t *control;