summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWealian Liao <whliao@nuvoton.corp-partner.google.com>2021-08-12 10:30:55 +0800
committerCommit Bot <commit-bot@chromium.org>2021-08-12 20:46:31 +0000
commit5713f5cd0c01155603bc6e9cbc15855303e2a6c4 (patch)
tree5f8b8ca7b4fdda91e6e1d5bc25eb00a351e04f43
parent938e1dd6d8e90c45dbc1d656e026440a50a5c4e9 (diff)
downloadchrome-ec-5713f5cd0c01155603bc6e9cbc15855303e2a6c4.tar.gz
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 <whliao@nuvoton.corp-partner.google.com> Change-Id: I059e1f8d07558a0f465769ecffd4246dcda1a608 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3077764 Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org>
-rw-r--r--zephyr/boards/arm/npcx_evb/npcx_evb.dtsi26
-rw-r--r--zephyr/projects/npcx_evb/npcx7/include/gpio_map.h2
-rw-r--r--zephyr/projects/npcx_evb/npcx7/keyboard.dts31
-rw-r--r--zephyr/projects/npcx_evb/npcx7/prj.conf6
-rw-r--r--zephyr/projects/npcx_evb/npcx7/zmake.yaml1
-rw-r--r--zephyr/projects/npcx_evb/npcx9/include/gpio_map.h2
-rw-r--r--zephyr/projects/npcx_evb/npcx9/keyboard.dts31
-rw-r--r--zephyr/projects/npcx_evb/npcx9/prj.conf6
-rw-r--r--zephyr/projects/npcx_evb/npcx9/zmake.yaml1
9 files changed, 100 insertions, 6 deletions
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 <devicetree.h>
#include <gpio_signal.h>
+#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 <devicetree.h>
#include <gpio_signal.h>
+#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