diff options
author | Tommy Chung <tommy.chung@quanta.corp-partner.google.com> | 2022-04-27 15:07:39 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-04-30 16:50:35 +0000 |
commit | d02d76a858931e31427b02eb6f264a93227226e3 (patch) | |
tree | a879d56cd3287be81616b661a16620b18c1e8478 /board | |
parent | 3c6bb0284ee03d234c35d3480b4b23668114f973 (diff) | |
download | chrome-ec-d02d76a858931e31427b02eb6f264a93227226e3.tar.gz |
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 <tommy.chung@quanta.corp-partner.google.com>
Change-Id: I36636a0bf8bd5a0609fdb25425bd1b2ecdb10b4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3607313
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Devin Lu <Devin.Lu@quantatw.com>
Diffstat (limited to 'board')
-rw-r--r-- | board/dojo/board.c | 36 |
1 files changed, 32 insertions, 4 deletions
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); |