From d02d76a858931e31427b02eb6f264a93227226e3 Mon Sep 17 00:00:00 2001 From: Tommy Chung Date: Wed, 27 Apr 2022 15:07:39 +0800 Subject: dojo: Update vol_up key based on board_version and fw_config For board_version >= 2, vol_up key should be on T13 for KB_BL_TOGGLE_KEY_PRESENT while on T12 for KB_BL_TOGGLE_KEY_ABSENT. BUG=b:217975844, b:214738575 BRANCH=cherry TEST=make sure that "alt + vol_up + r" and "alt + vol_up + h" work. Signed-off-by: Tommy Chung Change-Id: I36636a0bf8bd5a0609fdb25425bd1b2ecdb10b4d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3607313 Reviewed-by: Ting Shen Reviewed-by: Devin Lu --- board/dojo/board.c | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'board') diff --git a/board/dojo/board.c b/board/dojo/board.c index d8ce2cfbc5..4a345c908e 100644 --- a/board/dojo/board.c +++ b/board/dojo/board.c @@ -4,6 +4,7 @@ */ /* Dojo board configuration */ +#include "cbi_fw_config.h" #include "common.h" #include "console.h" #include "cros_board_info.h" @@ -42,11 +43,40 @@ __override struct keyboard_scan_config keyscan_config = { }; /* Vol-up key matrix at T13 */ -const struct vol_up_key vol_up_key_matrix = { +const struct vol_up_key vol_up_key_matrix_T13 = { .row = 3, .col = 5, }; +/* Vol-up key matrix at T12 */ +const struct vol_up_key vol_up_key_matrix_T12 = { + .row = 1, + .col = 5, +}; + +/* Vol-up key update */ +static void board_update_vol_up_key(void) +{ + if (board_version >= 2) { + if (get_cbi_fw_config_kblayout() == KB_BL_TOGGLE_KEY_PRESENT) { + /* + * Set vol up key to T13 for KB_BL_TOGGLE_KEY_PRESENT + * and board_version >= 2 + */ + set_vol_up_key(vol_up_key_matrix_T13.row, vol_up_key_matrix_T13.col); + } else { + /* + * Set vol up key to T12 for KB_BL_TOGGLE_KEY_ABSENT + * and board_version >= 2 + */ + set_vol_up_key(vol_up_key_matrix_T12.row, vol_up_key_matrix_T12.col); + } + } else { + /* Set vol up key to T13 for board_version < 2 */ + set_vol_up_key(vol_up_key_matrix_T13.row, vol_up_key_matrix_T13.col); + } +} + /* Temperature charging table */ const struct temp_chg_struct temp_chg_table[] = { [LEVEL_0] = { @@ -296,9 +326,7 @@ static void board_init(void) cbi_get_board_version(&board_version); board_update_motion_sensor_config(); - - /* Set vol up key to T13 */ - set_vol_up_key(vol_up_key_matrix.row, vol_up_key_matrix.col); + board_update_vol_up_key(); } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); -- cgit v1.2.1