From de546fa761223a18e4e2e30564e13d862ccaa3f3 Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Mon, 17 Jul 2023 11:10:00 -0600 Subject: [PATCH] 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 --- src/board/system76/common/include/board/kbc.h | 1 + src/board/system76/common/kbc.c | 5 +++++ src/ec/ite/include/ec/kbc.h | 2 -- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/board/system76/common/include/board/kbc.h b/src/board/system76/common/include/board/kbc.h index d3bc4e644..14735e3bf 100644 --- a/src/board/system76/common/include/board/kbc.h +++ b/src/board/system76/common/include/board/kbc.h @@ -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); diff --git a/src/board/system76/common/kbc.c b/src/board/system76/common/kbc.c index 73b76aa94..7114ce7e2 100644 --- a/src/board/system76/common/kbc.c +++ b/src/board/system76/common/kbc.c @@ -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); } diff --git a/src/ec/ite/include/ec/kbc.h b/src/ec/ite/include/ec/kbc.h index 2fb2e4440..8025ef7a8 100644 --- a/src/ec/ite/include/ec/kbc.h +++ b/src/ec/ite/include/ec/kbc.h @@ -8,8 +8,6 @@ #include #include -void kbc_init(void); - struct Kbc { // Control register volatile uint8_t *control;