summaryrefslogtreecommitdiff
path: root/board/pico
diff options
context:
space:
mode:
authorSue Chen <sue.chen@quanta.corp-partner.google.com>2021-08-02 16:47:19 +0800
committerCommit Bot <commit-bot@chromium.org>2021-08-03 08:37:51 +0000
commitb690911962e0c0b73243f388209fa1c2d22e7d9d (patch)
treed93aa11a218657eb65c87172aa125c03f9c40c4c /board/pico
parent2659633103ebd3d522d64bcc1a8d939cf9082f2b (diff)
downloadchrome-ec-b690911962e0c0b73243f388209fa1c2d22e7d9d.tar.gz
Pico: ap_sku_id 1 for convertible sku
Disable motion sense and tablet mode by ap_sku_id. ap_sku_id 1 is for convertible; 0 is for clamshell. BUG=none BRANCH=icarus TEST=Can get sku id 1 while running board_motion_init and motion function works on convertible DUT. Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Change-Id: I22401fa6f184ecf486d9337390d739237cf66f4c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3067143 Reviewed-by: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'board/pico')
-rw-r--r--board/pico/board.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/board/pico/board.c b/board/pico/board.c
index aba144b73c..1b6a2a3836 100644
--- a/board/pico/board.c
+++ b/board/pico/board.c
@@ -149,9 +149,19 @@ struct motion_sensor_t motion_sensors[] = {
};
unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
+static bool board_is_convertible(void)
+{
+ int sku = system_get_sku_id();
+
+ return sku == 1;
+}
+
int board_sensor_at_360(void)
{
- return !gpio_get_level(GMR_TABLET_MODE_GPIO_L);
+ if (board_is_convertible())
+ return !gpio_get_level(GMR_TABLET_MODE_GPIO_L);
+
+ return 0;
}
#endif /* !VARIANT_KUKUI_NO_SENSORS */
/*
@@ -357,6 +367,24 @@ static void board_init(void)
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
+#ifndef VARIANT_KUKUI_NO_SENSORS
+static void board_motion_init(void)
+{
+ if (!board_is_convertible()) {
+ /* Disable motion sense. */
+ motion_sensor_count = 0;
+ gpio_disable_interrupt(GPIO_ACCEL_INT_ODL);
+ gpio_set_flags(GPIO_ACCEL_INT_ODL, GPIO_INPUT);
+ /* Disable tablet mode. */
+ tablet_set_mode(0, TABLET_TRIGGER_LID);
+ gmr_tablet_switch_disable();
+ gpio_set_flags(GPIO_TABLET_MODE_L,
+ GPIO_INPUT | GPIO_PULL_UP);
+ }
+}
+DECLARE_HOOK(HOOK_INIT, board_motion_init, HOOK_PRIO_DEFAULT + 1);
+#endif /* VARIANT_KUKUI_NO_SENSORS */
+
/* Vconn control for integrated ITE TCPC */
void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
{