From 61e3b7c4aac458513c916bfec8ce8b14af01f723 Mon Sep 17 00:00:00 2001 From: Sue Chen Date: Wed, 14 Sep 2022 09:21:43 +0800 Subject: 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 Change-Id: Ic44161ed47778a36dc473789f350250ec3be47ef Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3893308 Code-Coverage: Andrew McRae Reviewed-by: Andrew McRae Commit-Queue: Andrew McRae --- zephyr/projects/nissa/craask/generated.dts | 6 ++---- zephyr/projects/nissa/craask/prj.conf | 3 +++ 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 #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; -- cgit v1.2.1