summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael5 Chen1 <michael5_chen1@pegatron.corp-partner.google.com>2022-12-08 13:39:22 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-14 05:42:42 +0000
commitbe23e2974380aa2d82b84a7fc80a8f68f819c10f (patch)
tree880d505a5e580146374c3efd9f522d108e489a11
parent28052e2944fe30729d584cb2d900c39073399cd0 (diff)
downloadchrome-ec-be23e2974380aa2d82b84a7fc80a8f68f819c10f.tar.gz
marasov: Implement keyboard and keyboard backlight function
1. Depend on keyboard matrix, implement keyboard function. 2. Modify keyboard backlight config depend on fw_config. BUG=b:261915212 BRANCH=none TEST=manual 1. Check all key by evtest. 2. Check Function key behavior. 3. Check keyboard backlight function. (FW Config bit 0 set 0/1) 3.1. Alt + Bright up/down 3.2. Check EC GPIO EC_KB_BL_EN_L status Change-Id: I7fd561e0475c59ac5221be78a1f76b49cb2d974d Signed-off-by: Michael5 Chen1 <michael5_chen1@pegatron.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4085108 Reviewed-by: Kyle Lin <kylelinck@google.com> Commit-Queue: Kyle Lin <kylelinck@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
-rw-r--r--board/marasov/board.c15
-rw-r--r--board/marasov/board.h5
-rw-r--r--board/marasov/keyboard.c26
3 files changed, 38 insertions, 8 deletions
diff --git a/board/marasov/board.c b/board/marasov/board.c
index b7f9745fa8..94ef52a8c4 100644
--- a/board/marasov/board.c
+++ b/board/marasov/board.c
@@ -37,7 +37,7 @@ static void board_chipset_resume(void)
{
/* Allow keyboard backlight to be enabled */
- if (IS_ENABLED(CONFIG_PWM_KBLIGHT))
+ if (ec_cfg_kb_bl_type())
gpio_set_level(GPIO_EC_KB_BL_EN_L, 0);
}
DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
@@ -47,7 +47,18 @@ static void board_chipset_suspend(void)
{
/* Turn off the keyboard backlight if it's on. */
- if (IS_ENABLED(CONFIG_PWM_KBLIGHT))
+ if (ec_cfg_kb_bl_type())
gpio_set_level(GPIO_EC_KB_BL_EN_L, 1);
}
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
+
+__override uint32_t board_override_feature_flags0(uint32_t flags0)
+{
+ /*
+ * Remove keyboard backlight feature for devices that don't support it.
+ */
+ if (!ec_cfg_kb_bl_type())
+ return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
+ else
+ return flags0;
+}
diff --git a/board/marasov/board.h b/board/marasov/board.h
index 6cb0225edc..168bf795ca 100644
--- a/board/marasov/board.h
+++ b/board/marasov/board.h
@@ -10,11 +10,6 @@
#include "compile_time_macros.h"
-/*
- * Early brya boards are not set up for vivaldi
- */
-#undef CONFIG_KEYBOARD_VIVALDI
-
/* Baseboard features */
#include "baseboard.h"
diff --git a/board/marasov/keyboard.c b/board/marasov/keyboard.c
index 457a55718c..e75af0b516 100644
--- a/board/marasov/keyboard.c
+++ b/board/marasov/keyboard.c
@@ -4,6 +4,7 @@
*/
#include "common.h"
+#include "ec_commands.h"
#include "keyboard_scan.h"
#include "timer.h"
@@ -18,7 +19,30 @@ __override struct keyboard_scan_config keyscan_config = {
.min_post_scan_delay_us = 1000,
.poll_timeout_us = 100 * MSEC,
.actual_key_mask = {
- 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
+ 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
},
};
+
+static const struct ec_response_keybd_config marasov_kb = {
+ .num_top_row_keys = 10,
+ .action_keys = {
+ TK_BACK, /* T1 */
+ TK_REFRESH, /* T2 */
+ TK_FULLSCREEN, /* T3 */
+ TK_OVERVIEW, /* T4 */
+ TK_SNAPSHOT, /* T5 */
+ TK_BRIGHTNESS_DOWN, /* T6 */
+ TK_BRIGHTNESS_UP, /* T7 */
+ TK_VOL_MUTE, /* T8 */
+ TK_VOL_DOWN, /* T9 */
+ TK_VOL_UP, /* T10 */
+ },
+ .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
+};
+
+__override const struct ec_response_keybd_config *
+board_vivaldi_keybd_config(void)
+{
+ return &marasov_kb;
+}