diff options
author | Simon Glass <sjg@chromium.org> | 2020-11-04 16:51:58 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-11-06 03:42:15 +0000 |
commit | 8f91458a1b888bb75f6f4d3ffe4d0de1a221a589 (patch) | |
tree | 894dccba23a7a475dd63d4f3770ea4a4714a8abe /common/keyboard_8042.c | |
parent | 29c78b9d50929ae3a2d78752a50314305ab515da (diff) | |
download | chrome-ec-8f91458a1b888bb75f6f4d3ffe4d0de1a221a589.tar.gz |
zephyr: Allow keyboard_8042 to build with zephyr
Make a few changes so that this file can build. It does not work yet.
BUG=b:167405015
BRANCH=none
TEST=make BOARD=volteer
zmake configure .../zephyr-chrome/projects/experimental/volteer \
-B /tmp/z/cos
zmake build /tmp/z/cos
See there are no errors
Change-Id: If68cc8e4541f513013481bde859fbe2f4681a0bc
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2521358
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'common/keyboard_8042.c')
-rw-r--r-- | common/keyboard_8042.c | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/common/keyboard_8042.c b/common/keyboard_8042.c index 4e3a5b4b98..12a7da2560 100644 --- a/common/keyboard_8042.c +++ b/common/keyboard_8042.c @@ -38,6 +38,26 @@ #define CPRINTS5(format, args...) #endif +/* + * This command needs malloc to work. Could we use this instead? + * + * #define CMD_KEYBOARD_LOG IS_ENABLED(CONFIG_MALLOC) + */ +#ifdef CONFIG_MALLOC +#define CMD_KEYBOARD_LOG 1 +#else +#define CMD_KEYBOARD_LOG 0 +#endif + +#ifdef CONFIG_ZEPHYR +/* b/171815541: Implement these when LPC is ready */ +void lpc_keyboard_clear_buffer(void) {} +void lpc_keyboard_resume_irq(void) {} +int lpc_keyboard_has_char(void) { return 0; } +void lpc_keyboard_put_char(uint8_t chr, int send_irq) {} +int lpc_keyboard_input_pending(void) { return 0; } +#endif + static enum { STATE_NORMAL = 0, STATE_SCANCODE, @@ -68,7 +88,7 @@ enum scancode_set_list { * Mutex to control write access to the to-host buffer head. Don't need to * mutex the tail because reads are only done in one place. */ -static struct mutex to_host_mutex; +static mutex_t to_host_mutex; /* Queue command/data to the host */ enum { @@ -1141,10 +1161,11 @@ static int command_keyboard_log(int argc, char **argv) return EC_SUCCESS; } +#if CMD_KEYBOARD_LOG DECLARE_CONSOLE_COMMAND(kblog, command_keyboard_log, "[on | off]", "Print or toggle keyboard event log"); - +#endif static int command_keyboard(int argc, char **argv) { @@ -1220,7 +1241,7 @@ static int command_8042(int argc, char **argv) return command_codeset(argc - 1, argv + 1); else if (!strcasecmp(argv[1], "ctrlram")) return command_controller_ram(argc - 1, argv + 1); - else if (!strcasecmp(argv[1], "kblog")) + else if (CMD_KEYBOARD_LOG && !strcasecmp(argv[1], "kblog")) return command_keyboard_log(argc - 1, argv + 1); else if (!strcasecmp(argv[1], "kbd")) return command_keyboard(argc - 1, argv + 1); @@ -1237,8 +1258,10 @@ static int command_8042(int argc, char **argv) command_controller_ram( sizeof(ctlram_argv) / sizeof(ctlram_argv[0]), ctlram_argv); - ccprintf("\n- Keyboard log:\n"); - command_keyboard_log(argc, argv); + if (CMD_KEYBOARD_LOG) { + ccprintf("\n- Keyboard log:\n"); + command_keyboard_log(argc, argv); + } ccprintf("\n- Keyboard:\n"); command_keyboard(argc, argv); ccprintf("\n- Internal:\n"); @@ -1300,6 +1323,7 @@ static void keyboard_restore_state(void) } DECLARE_HOOK(HOOK_INIT, keyboard_restore_state, HOOK_PRIO_DEFAULT); +#ifdef CONFIG_POWER_BUTTON /** * Handle power button changing state. */ @@ -1310,3 +1334,4 @@ static void keyboard_power_button(void) } DECLARE_HOOK(HOOK_POWER_BUTTON_CHANGE, keyboard_power_button, HOOK_PRIO_DEFAULT); +#endif |