diff options
author | Sue Chen <sue.chen@quanta.corp-partner.google.com> | 2022-09-14 09:21:43 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-15 23:59:38 +0000 |
commit | 61e3b7c4aac458513c916bfec8ce8b14af01f723 (patch) | |
tree | 2835b3ed55ad59b26a1c0f7c9912ccb20f40d1d1 | |
parent | 2e59bb2a42f9d83bc8cfcbf00d68af16d3023104 (diff) | |
download | chrome-ec-61e3b7c4aac458513c916bfec8ce8b14af01f723.tar.gz |
Craask: Volup/dn button exchanged on ver3 USB sku
Set correct GPIO definition of VOLUP/DN_BTN_ODL
to meet Craask hardware design.
VOLUP_BTN_ODL -> EC GPIOA2
VOLDN_BTN_ODL -> EC GPIO93
Volup/dn button exchanged on ver3 USB sub board.
BUG=none
BRANCH=none
TEST=Volume up/down button works correct on ver3 DUTs.
Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com>
Change-Id: Ic44161ed47778a36dc473789f350250ec3be47ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3893308
Code-Coverage: Andrew McRae <amcrae@google.com>
Reviewed-by: Andrew McRae <amcrae@google.com>
Commit-Queue: Andrew McRae <amcrae@google.com>
-rw-r--r-- | zephyr/projects/nissa/craask/generated.dts | 6 | ||||
-rw-r--r-- | zephyr/projects/nissa/craask/prj.conf | 3 | ||||
-rw-r--r-- | zephyr/projects/nissa/craask/src/form_factor.c | 26 |
3 files changed, 29 insertions, 6 deletions
diff --git a/zephyr/projects/nissa/craask/generated.dts b/zephyr/projects/nissa/craask/generated.dts index af65b98d02..4303bbd4c5 100644 --- a/zephyr/projects/nissa/craask/generated.dts +++ b/zephyr/projects/nissa/craask/generated.dts @@ -1,8 +1,6 @@ /* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. - * - * This file is auto-generated - do not edit! */ / { @@ -194,11 +192,11 @@ gpios = <&gpioe 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>; }; gpio_voldn_btn_odl: voldn_btn_odl { - gpios = <&gpioa 2 GPIO_INPUT_PULL_UP>; + gpios = <&gpio9 3 GPIO_INPUT_PULL_UP>; enum-name = "GPIO_VOLUME_DOWN_L"; }; gpio_volup_btn_odl: volup_btn_odl { - gpios = <&gpio9 3 GPIO_INPUT_PULL_UP>; + gpios = <&gpioa 2 GPIO_INPUT_PULL_UP>; enum-name = "GPIO_VOLUME_UP_L"; }; }; diff --git a/zephyr/projects/nissa/craask/prj.conf b/zephyr/projects/nissa/craask/prj.conf index d7af32bda5..aba367ab8d 100644 --- a/zephyr/projects/nissa/craask/prj.conf +++ b/zephyr/projects/nissa/craask/prj.conf @@ -26,6 +26,9 @@ CONFIG_PLATFORM_EC_KBLIGHT_ENABLE_PIN=y CONFIG_PLATFORM_EC_KEYBOARD_PWRBTN_ASSERTS_KSI3=y CONFIG_PLATFORM_EC_KEYBOARD_REFRESH_ROW3=y +# Buttons +CONFIG_PLATFORM_EC_BUTTONS_RUNTIME_CONFIG=y + # TCPC+PPC: both C0 and C1 (if present) are RAA489000 CONFIG_PLATFORM_EC_USB_PD_TCPM_RAA489000=y CONFIG_PLATFORM_EC_USB_PD_DISCHARGE_TCPC=y diff --git a/zephyr/projects/nissa/craask/src/form_factor.c b/zephyr/projects/nissa/craask/src/form_factor.c index ccf0e66a4f..1303711de3 100644 --- a/zephyr/projects/nissa/craask/src/form_factor.c +++ b/zephyr/projects/nissa/craask/src/form_factor.c @@ -7,6 +7,7 @@ #include <zephyr/logging/log.h> #include "accelgyro.h" +#include "button.h" #include "cros_board_info.h" #include "cros_cbi.h" #include "driver/accelgyro_bmi323.h" @@ -44,12 +45,33 @@ static void form_factor_init(void) { int ret; uint32_t val; + enum nissa_sub_board_type sb = nissa_get_sb_type(); + + ret = cbi_get_board_version(&val); + if (ret != EC_SUCCESS) { + LOG_ERR("Error retrieving CBI BOARD_VER."); + return; + } + /* + * The volume up/down button are exchanged on ver3 USB + * sub board. + * + * LTE: + * volup -> gpioa2, voldn -> gpio93 + * USB: + * volup -> gpio93, voldn -> gpioa2 + */ + if (val == 3 && sb == NISSA_SB_C_A) { + LOG_INF("Volume up/down btn exchanged on ver3 USB sku"); + buttons[BUTTON_VOLUME_UP].gpio = GPIO_VOLUME_DOWN_L; + buttons[BUTTON_VOLUME_DOWN].gpio = GPIO_VOLUME_UP_L; + } + /* * If the board version is 1 * use ver1 rotation matrix. */ - ret = cbi_get_board_version(&val); - if (ret == EC_SUCCESS && val == 1) { + if (val == 1) { LOG_INF("Switching to ver1 base"); motion_sensors[BASE_SENSOR].rot_standard_ref = &ALT_MAT; motion_sensors[BASE_GYRO].rot_standard_ref = &ALT_MAT; |