summaryrefslogtreecommitdiff
path: root/board/volet
diff options
context:
space:
mode:
authorBen Chen <ben.chen2@quanta.corp-partner.google.com>2021-05-27 15:33:00 +0800
committerCommit Bot <commit-bot@chromium.org>2021-06-04 16:47:45 +0000
commit523f69ecba77b6b27667c8bc7828b5e28d253f0f (patch)
treead8ff5d859e055f8d39764f700c1872445203004 /board/volet
parent01d5029f85ca8ede98c225c6b80c3c7ee560e25b (diff)
downloadchrome-ec-523f69ecba77b6b27667c8bc7828b5e28d253f0f.tar.gz
volet: add new keyboard
support num_pad keyboard with vivaldi keyboard define BUG=b:189194028 BRANCH=main TEST=manual 1. Scan all key. 2. Check action key function. 3. Check ALT + Volup + H. 4. Check ALT + Volup + R. 5. Check Refresh (F2) + powerbutton (EC reboot). 6. Check ESC + Refresh + powerbutton. Change-Id: I42f18b1ccf806fb5b8292e2671100468be47e6e7 Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2921701 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-by: YH Lin <yueherngl@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'board/volet')
-rw-r--r--board/volet/board.c59
1 files changed, 34 insertions, 25 deletions
diff --git a/board/volet/board.c b/board/volet/board.c
index 5faf6e802b..1b2055a70d 100644
--- a/board/volet/board.c
+++ b/board/volet/board.c
@@ -22,6 +22,7 @@
#include "fan_chip.h"
#include "gpio.h"
#include "hooks.h"
+#include "keyboard_raw.h"
#include "keyboard_scan.h"
#include "lid_switch.h"
#include "power.h"
@@ -45,47 +46,47 @@
#define CPRINTS(format, args...) cprints(CC_CHIPSET, format, ## args)
-static const struct ec_response_keybd_config zbu_new_kb = {
+static const struct ec_response_keybd_config volet_kb = {
.num_top_row_keys = 10,
.action_keys = {
- TK_BACK,
- TK_REFRESH,
- TK_FULLSCREEN,
- TK_OVERVIEW,
- TK_SNAPSHOT,
- TK_BRIGHTNESS_DOWN,
- TK_BRIGHTNESS_UP,
- TK_VOL_MUTE,
- TK_VOL_DOWN,
- TK_VOL_UP,
+ 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,
};
-static const struct ec_response_keybd_config zbu_old_kb = {
+static const struct ec_response_keybd_config volet_kb_num = {
.num_top_row_keys = 10,
.action_keys = {
TK_BACK, /* T1 */
- TK_FORWARD, /* T2 */
- TK_REFRESH, /* T3 */
- TK_FULLSCREEN, /* T4 */
- TK_OVERVIEW, /* T5 */
+ 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,
+ .capabilities = KEYBD_CAP_SCRNLOCK_KEY | KEYBD_CAP_NUMERIC_KEYPAD,
};
-__override
-const struct ec_response_keybd_config *board_vivaldi_keybd_config(void)
+__override const struct ec_response_keybd_config
+*board_vivaldi_keybd_config(void)
{
- if (get_board_id() > 2)
- return &zbu_new_kb;
+ if (!ec_cfg_has_numeric_pad())
+ return &volet_kb;
else
- return &zbu_old_kb;
+ return &volet_kb_num;
}
/* Keyboard scan setting */
@@ -99,8 +100,9 @@ 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,
- 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
+ 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff,
+ 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff,
+ 0xff, /* full set */
},
};
@@ -353,7 +355,14 @@ void ppc_interrupt(enum gpio_signal signal)
__override void board_cbi_init(void)
{
-
+ if ((!IS_ENABLED(TEST_BUILD) && !ec_cfg_has_numeric_pad())) {
+ keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD);
+ /* Search key is moved back to col=1,row=0 */
+ keyscan_config.actual_key_mask[0] = 0x14;
+ keyscan_config.actual_key_mask[1] = 0xff;
+ keyscan_config.actual_key_mask[11] = 0xfa;
+ keyscan_config.actual_key_mask[12] = 0xca;
+ }
}
/******************************************************************************/