From 5713f5cd0c01155603bc6e9cbc15855303e2a6c4 Mon Sep 17 00:00:00 2001 From: Wealian Liao Date: Thu, 12 Aug 2021 10:30:55 +0800 Subject: zephyr: npcx_evb: Enable Keyboard This CL enables keyboard function for npcx7/9_evb. The keyboard sets to the following config: * kso0-12 are selected for keyboard scan * enable CONFIG_CROS_KB_RAW_NPCX_KSO_HIGH_DRIVE * set keyscan_config to meet the config in npcx_evb board.c BRANCH=none BUG=none TEST='ksstate on' & check actual key setting Signed-off-by: Wealian Liao Change-Id: I059e1f8d07558a0f465769ecffd4246dcda1a608 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3077764 Reviewed-by: Keith Short Commit-Queue: Keith Short --- zephyr/boards/arm/npcx_evb/npcx_evb.dtsi | 26 +++++++++++++++++++ zephyr/projects/npcx_evb/npcx7/include/gpio_map.h | 2 ++ zephyr/projects/npcx_evb/npcx7/keyboard.dts | 31 +++++++++++++++++++++++ zephyr/projects/npcx_evb/npcx7/prj.conf | 6 ++--- zephyr/projects/npcx_evb/npcx7/zmake.yaml | 1 + zephyr/projects/npcx_evb/npcx9/include/gpio_map.h | 2 ++ zephyr/projects/npcx_evb/npcx9/keyboard.dts | 31 +++++++++++++++++++++++ zephyr/projects/npcx_evb/npcx9/prj.conf | 6 ++--- zephyr/projects/npcx_evb/npcx9/zmake.yaml | 1 + 9 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 zephyr/projects/npcx_evb/npcx7/keyboard.dts create mode 100644 zephyr/projects/npcx_evb/npcx9/keyboard.dts diff --git a/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi b/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi index ae0d36bf51..8760b554b3 100644 --- a/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi +++ b/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi @@ -104,3 +104,29 @@ &adc0 { status = "okay"; }; + +&cros_kb_raw { + status = "okay"; + pinctrl-0 = <&alt7_no_ksi0_sl + &alt7_no_ksi1_sl + &alt7_no_ksi2_sl + &alt7_no_ksi3_sl + &alt7_no_ksi4_sl + &alt7_no_ksi5_sl + &alt7_no_ksi6_sl + &alt7_no_ksi7_sl + &alt8_no_kso00_sl + &alt8_no_kso01_sl + &alt8_no_kso02_sl + &alt8_no_kso03_sl + &alt8_no_kso04_sl + &alt8_no_kso05_sl + &alt8_no_kso06_sl + &alt8_no_kso07_sl + &alt9_no_kso08_sl + &alt9_no_kso09_sl + &alt9_no_kso10_sl + &alt9_no_kso11_sl + &alt9_no_kso12_sl + >; +}; diff --git a/zephyr/projects/npcx_evb/npcx7/include/gpio_map.h b/zephyr/projects/npcx_evb/npcx7/include/gpio_map.h index 8073daad90..741cbd89a2 100644 --- a/zephyr/projects/npcx_evb/npcx7/include/gpio_map.h +++ b/zephyr/projects/npcx_evb/npcx7/include/gpio_map.h @@ -9,6 +9,8 @@ #include #include +#define GPIO_KBD_KSO2 GPIO_UNIMPLEMENTED + /* * Set EC_CROS_GPIO_INTERRUPTS to a space-separated list of GPIO_INT items. * diff --git a/zephyr/projects/npcx_evb/npcx7/keyboard.dts b/zephyr/projects/npcx_evb/npcx7/keyboard.dts new file mode 100644 index 0000000000..fdeee3c02c --- /dev/null +++ b/zephyr/projects/npcx_evb/npcx7/keyboard.dts @@ -0,0 +1,31 @@ +/* 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. + */ + +/ { + cros-keyscan { + compatible = "cros-keyscan"; + + output-settle = <40>; + debounce-down = <6000>; + scan-period = <1500>; + poll-timeout = <1000000>; + + actual-key-mask = < + 0x14 /* C0 */ + 0xff /* C1 */ + 0xff /* C2 */ + 0xff /* C3 */ + 0xff /* C4 */ + 0xf5 /* C5 */ + 0xff /* C6 */ + 0xa4 /* C7 */ + 0xff /* C8 */ + 0xf6 /* C9 */ + 0x55 /* C10 */ + 0xfa /* C11 */ + 0xc8 /* C12 */ + >; + }; +}; diff --git a/zephyr/projects/npcx_evb/npcx7/prj.conf b/zephyr/projects/npcx_evb/npcx7/prj.conf index 30f3152c42..b3baa1004c 100644 --- a/zephyr/projects/npcx_evb/npcx7/prj.conf +++ b/zephyr/projects/npcx_evb/npcx7/prj.conf @@ -10,10 +10,7 @@ CONFIG_PLATFORM_EC_LID_SWITCH=y CONFIG_PLATFORM_EC_POWER_BUTTON=y CONFIG_SHIMMED_TASKS=y -CONFIG_CROS_KB_RAW_NPCX=n - CONFIG_PLATFORM_EC_BACKLIGHT_LID=n -CONFIG_PLATFORM_EC_KEYBOARD=n CONFIG_PLATFORM_EC_SWITCH=n CONFIG_PLATFORM_EC_VBOOT_EFS2=n CONFIG_PLATFORM_EC_VSTORE=n @@ -37,6 +34,9 @@ CONFIG_ESPI=y CONFIG_PLATFORM_EC_ESPI_VW_SLP_S3=y CONFIG_PLATFORM_EC_ESPI_VW_SLP_S4=y +# Keyboard +CONFIG_CROS_KB_RAW_NPCX_KSO_HIGH_DRIVE=y + # Zephyr feature CONFIG_ASSERT=y CONFIG_SHELL_MINIMAL=n diff --git a/zephyr/projects/npcx_evb/npcx7/zmake.yaml b/zephyr/projects/npcx_evb/npcx7/zmake.yaml index 5c74307019..79faa50656 100644 --- a/zephyr/projects/npcx_evb/npcx7/zmake.yaml +++ b/zephyr/projects/npcx_evb/npcx7/zmake.yaml @@ -7,6 +7,7 @@ dts-overlays: - gpio.dts - pwm.dts - fan.dts + - keyboard.dts supported-zephyr-versions: - v2.6 toolchain: coreboot-sdk diff --git a/zephyr/projects/npcx_evb/npcx9/include/gpio_map.h b/zephyr/projects/npcx_evb/npcx9/include/gpio_map.h index 8073daad90..741cbd89a2 100644 --- a/zephyr/projects/npcx_evb/npcx9/include/gpio_map.h +++ b/zephyr/projects/npcx_evb/npcx9/include/gpio_map.h @@ -9,6 +9,8 @@ #include #include +#define GPIO_KBD_KSO2 GPIO_UNIMPLEMENTED + /* * Set EC_CROS_GPIO_INTERRUPTS to a space-separated list of GPIO_INT items. * diff --git a/zephyr/projects/npcx_evb/npcx9/keyboard.dts b/zephyr/projects/npcx_evb/npcx9/keyboard.dts new file mode 100644 index 0000000000..fdeee3c02c --- /dev/null +++ b/zephyr/projects/npcx_evb/npcx9/keyboard.dts @@ -0,0 +1,31 @@ +/* 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. + */ + +/ { + cros-keyscan { + compatible = "cros-keyscan"; + + output-settle = <40>; + debounce-down = <6000>; + scan-period = <1500>; + poll-timeout = <1000000>; + + actual-key-mask = < + 0x14 /* C0 */ + 0xff /* C1 */ + 0xff /* C2 */ + 0xff /* C3 */ + 0xff /* C4 */ + 0xf5 /* C5 */ + 0xff /* C6 */ + 0xa4 /* C7 */ + 0xff /* C8 */ + 0xf6 /* C9 */ + 0x55 /* C10 */ + 0xfa /* C11 */ + 0xc8 /* C12 */ + >; + }; +}; diff --git a/zephyr/projects/npcx_evb/npcx9/prj.conf b/zephyr/projects/npcx_evb/npcx9/prj.conf index e497c82edf..c0b2eaaa86 100644 --- a/zephyr/projects/npcx_evb/npcx9/prj.conf +++ b/zephyr/projects/npcx_evb/npcx9/prj.conf @@ -10,10 +10,7 @@ CONFIG_PLATFORM_EC_LID_SWITCH=y CONFIG_PLATFORM_EC_POWER_BUTTON=y CONFIG_SHIMMED_TASKS=y -CONFIG_CROS_KB_RAW_NPCX=n - CONFIG_PLATFORM_EC_BACKLIGHT_LID=n -CONFIG_PLATFORM_EC_KEYBOARD=n CONFIG_PLATFORM_EC_SWITCH=n CONFIG_PLATFORM_EC_VBOOT_EFS2=n CONFIG_PLATFORM_EC_VSTORE=n @@ -41,6 +38,9 @@ CONFIG_ESPI=y CONFIG_PLATFORM_EC_ESPI_VW_SLP_S3=y CONFIG_PLATFORM_EC_ESPI_VW_SLP_S4=y +# Keyboard +CONFIG_CROS_KB_RAW_NPCX_KSO_HIGH_DRIVE=y + # Zephyr feature CONFIG_ASSERT=y CONFIG_SHELL_MINIMAL=n diff --git a/zephyr/projects/npcx_evb/npcx9/zmake.yaml b/zephyr/projects/npcx_evb/npcx9/zmake.yaml index 98fb09c5a0..95a2d3adf7 100644 --- a/zephyr/projects/npcx_evb/npcx9/zmake.yaml +++ b/zephyr/projects/npcx_evb/npcx9/zmake.yaml @@ -7,6 +7,7 @@ dts-overlays: - gpio.dts - pwm.dts - fan.dts + - keyboard.dts supported-zephyr-versions: - v2.6 toolchain: coreboot-sdk -- cgit v1.2.1