summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSue Chen <sue.chen@quanta.corp-partner.google.com>2022-09-14 09:21:43 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-15 23:59:38 +0000
commit61e3b7c4aac458513c916bfec8ce8b14af01f723 (patch)
tree2835b3ed55ad59b26a1c0f7c9912ccb20f40d1d1
parent2e59bb2a42f9d83bc8cfcbf00d68af16d3023104 (diff)
downloadchrome-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.dts6
-rw-r--r--zephyr/projects/nissa/craask/prj.conf3
-rw-r--r--zephyr/projects/nissa/craask/src/form_factor.c26
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;