diff options
author | Fabio Baltieri <fabiobaltieri@google.com> | 2022-11-16 11:33:01 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-11-16 18:22:23 +0000 |
commit | 86853653efb5acf2bb84ca220d9e309a4745d3a0 (patch) | |
tree | 480561d0138f18d80a9ec0c3905a7666249ec9d0 | |
parent | 4115c899e6705fb589c4b2e1c78e18eb9b50c11e (diff) | |
download | chrome-ec-86853653efb5acf2bb84ca220d9e309a4745d3a0.tar.gz |
zephyr: keyboard: split dt based keymap to its own config
Add a separate config for instantiating keyscan_config based on the
devicetree, decoupling it from the main PLATFORM_EC_KEYBOARD option. The
new one is selected automatically based on devicetree and the driver
does not need a #if guard anymore.
BRANCH=none
BUG=none
TEST=cq dry run
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Change-Id: I8e6654c7ebca8553b1f930b87c320af50895048f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4030886
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r-- | zephyr/Kconfig.keyboard | 9 | ||||
-rw-r--r-- | zephyr/shim/src/CMakeLists.txt | 2 | ||||
-rw-r--r-- | zephyr/shim/src/keyscan.c | 4 |
3 files changed, 12 insertions, 3 deletions
diff --git a/zephyr/Kconfig.keyboard b/zephyr/Kconfig.keyboard index 15ca7d20e7..400f295418 100644 --- a/zephyr/Kconfig.keyboard +++ b/zephyr/Kconfig.keyboard @@ -19,6 +19,15 @@ menuconfig PLATFORM_EC_KEYBOARD if PLATFORM_EC_KEYBOARD +config CROS_EC_KEYSCAN + bool "Devicetree based keyscan map" + default y + depends on DT_HAS_CROS_EC_KEYSCAN_ENABLED + help + Define a keyscan_config data structure based on a the keyscan + configuration found in devicetree. Requires a cros-ec,keyscan node to + be defined. + choice PLATFORM_EC_KEYBOARD_PROTOCOL_MODE prompt "Select the keyboard protocol to use" help diff --git a/zephyr/shim/src/CMakeLists.txt b/zephyr/shim/src/CMakeLists.txt index 5aa94b31ce..74da11da2c 100644 --- a/zephyr/shim/src/CMakeLists.txt +++ b/zephyr/shim/src/CMakeLists.txt @@ -42,7 +42,7 @@ if (NOT DEFINED CONFIG_PLATFORM_EC_KEYBOARD_DISCRETE) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_KEYBOARD keyboard_raw.c) endif() -zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_KEYBOARD keyscan.c) +zephyr_library_sources_ifdef(CONFIG_CROS_EC_KEYSCAN keyscan.c) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_LOG_BACKEND_CONSOLE_BUFFER log_backend_console_buffer.c) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_MKBP_EVENT mkbp_event.c) diff --git a/zephyr/shim/src/keyscan.c b/zephyr/shim/src/keyscan.c index 9bf2a5ec1f..46bb5fcc7f 100644 --- a/zephyr/shim/src/keyscan.c +++ b/zephyr/shim/src/keyscan.c @@ -13,7 +13,8 @@ #include <soc.h> -#if DT_NODE_EXISTS(DT_INST(0, cros_ec_keyscan)) +BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) == 1, + "Exactly one instance of cros-ec,keyscan should be defined."); /* The keyboard matrix should have at least enough columns for the * standard keyboard with no keypad. @@ -33,4 +34,3 @@ __override struct keyboard_scan_config keyscan_config = { .poll_timeout_us = DT_INST_PROP(0, poll_timeout), .actual_key_mask = DT_INST_PROP(0, actual_key_mask), }; -#endif |