summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommy Chung <tommy.chung@quanta.corp-partner.google.com>2022-04-27 15:07:39 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-04-30 16:50:35 +0000
commitd02d76a858931e31427b02eb6f264a93227226e3 (patch)
treea879d56cd3287be81616b661a16620b18c1e8478
parent3c6bb0284ee03d234c35d3480b4b23668114f973 (diff)
downloadchrome-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>
-rw-r--r--board/dojo/board.c36
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);