diff options
-rw-r--r-- | zephyr/shim/chip/npcx/keyboard_raw.c | 66 | ||||
-rw-r--r-- | zephyr/shim/src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | zephyr/shim/src/keyboard_raw.c | 77 |
3 files changed, 78 insertions, 66 deletions
diff --git a/zephyr/shim/chip/npcx/keyboard_raw.c b/zephyr/shim/chip/npcx/keyboard_raw.c index 14fb7fcb22..aa075d2d56 100644 --- a/zephyr/shim/chip/npcx/keyboard_raw.c +++ b/zephyr/shim/chip/npcx/keyboard_raw.c @@ -6,8 +6,6 @@ /* Functions needed by keyboard scanner module for Chrome EC */ #include <device.h> -#include <drivers/clock_control.h> -#include <dt-bindings/clock/npcx_clock.h> #include <logging/log.h> #include <soc.h> #include <soc_gpio.h> @@ -16,70 +14,6 @@ #include "drivers/cros_kb_raw.h" #include "keyboard_raw.h" -LOG_MODULE_REGISTER(shim_cros_kb_raw, LOG_LEVEL_ERR); - -#define CROS_KB_RAW_DEV DT_LABEL(DT_NODELABEL(cros_kb_raw)) -static const struct device *cros_kb_raw_dev; - -/** - * Initialize the raw keyboard interface. - */ -void keyboard_raw_init(void) -{ - cros_kb_raw_dev = device_get_binding(CROS_KB_RAW_DEV); - if (!cros_kb_raw_dev) { - LOG_ERR("Fail to find %s", CROS_KB_RAW_DEV); - return; - } - - LOG_INF("%s", __func__); - cros_kb_raw_init(cros_kb_raw_dev); -} - -/** - * Finish initialization after task scheduling has started. - */ -void keyboard_raw_task_start(void) -{ - keyboard_raw_enable_interrupt(1); -} - -/** - * Drive the specified column low. - */ -test_mockable void keyboard_raw_drive_column(int col) -{ - if (cros_kb_raw_dev) - cros_kb_raw_drive_column(cros_kb_raw_dev, col); - else - LOG_ERR("%s: no cros_kb_raw device!", __func__); -} - -/** - * Read raw row state. - * Bits are 1 if signal is present, 0 if not present. - */ -test_mockable int keyboard_raw_read_rows(void) -{ - if (cros_kb_raw_dev) { - return cros_kb_raw_read_rows(cros_kb_raw_dev); - } else { - LOG_ERR("%s: no cros_kb_raw device!", __func__); - return -EIO; - } -} - -/** - * Enable or disable keyboard interrupts. - */ -void keyboard_raw_enable_interrupt(int enable) -{ - if (cros_kb_raw_dev) - cros_kb_raw_enable_interrupt(cros_kb_raw_dev, enable); - else - LOG_ERR("%s: no cros_kb_raw device!", __func__); -} - /** * Return true if the current value of the given input GPIO port is zero */ diff --git a/zephyr/shim/src/CMakeLists.txt b/zephyr/shim/src/CMakeLists.txt index b29c9600b7..ceb92d436f 100644 --- a/zephyr/shim/src/CMakeLists.txt +++ b/zephyr/shim/src/CMakeLists.txt @@ -24,6 +24,7 @@ zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_HOOKS hooks.c) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_HOSTCMD host_command.c) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_HOSTCMD_CONSOLE console_buffer.c) +zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_KEYBOARD keyboard_raw.c) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_MKBP_EVENT mkbp_event.c) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_MOTIONSENSE motionsense_sensors.c) diff --git a/zephyr/shim/src/keyboard_raw.c b/zephyr/shim/src/keyboard_raw.c new file mode 100644 index 0000000000..a8017cc0cf --- /dev/null +++ b/zephyr/shim/src/keyboard_raw.c @@ -0,0 +1,77 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Functions needed by keyboard scanner module for Chrome EC */ + +#include <device.h> +#include <logging/log.h> +#include <soc.h> +#include <zephyr.h> + +#include "drivers/cros_kb_raw.h" +#include "keyboard_raw.h" + +LOG_MODULE_REGISTER(shim_cros_kb_raw, LOG_LEVEL_ERR); + +#define CROS_KB_RAW_DEV DT_LABEL(DT_NODELABEL(cros_kb_raw)) +static const struct device *cros_kb_raw_dev; + +/** + * Initialize the raw keyboard interface. + */ +void keyboard_raw_init(void) +{ + cros_kb_raw_dev = device_get_binding(CROS_KB_RAW_DEV); + if (!cros_kb_raw_dev) { + LOG_ERR("Fail to find %s", CROS_KB_RAW_DEV); + return; + } + + LOG_INF("%s", __func__); + cros_kb_raw_init(cros_kb_raw_dev); +} + +/** + * Finish initialization after task scheduling has started. + */ +void keyboard_raw_task_start(void) +{ + keyboard_raw_enable_interrupt(1); +} + +/** + * Drive the specified column low. + */ +test_mockable void keyboard_raw_drive_column(int col) +{ + if (cros_kb_raw_dev) + cros_kb_raw_drive_column(cros_kb_raw_dev, col); + else + LOG_ERR("%s: no cros_kb_raw device!", __func__); +} + +/** + * Read raw row state. + * Bits are 1 if signal is present, 0 if not present. + */ +test_mockable int keyboard_raw_read_rows(void) +{ + if (cros_kb_raw_dev) + return cros_kb_raw_read_rows(cros_kb_raw_dev); + + LOG_ERR("%s: no cros_kb_raw device!", __func__); + return -EIO; +} + +/** + * Enable or disable keyboard interrupts. + */ +void keyboard_raw_enable_interrupt(int enable) +{ + if (cros_kb_raw_dev) + cros_kb_raw_enable_interrupt(cros_kb_raw_dev, enable); + else + LOG_ERR("%s: no cros_kb_raw device!", __func__); +} |