From fc95c65a4d0fb63d5ba5219e3243cd9d2817e925 Mon Sep 17 00:00:00 2001 From: Grzegorz Bernacki Date: Thu, 16 Feb 2023 11:52:18 +0000 Subject: skyrim: Disable tablet mode on clamshell devices. This commits disables tablet mode if CBI data shows that this is clamshell device. It requires enable of dynamic sensor count, so motion_sensor_count can be set to zero. BRANCH=none BUG=b:269234224 TEST=Verify that skyrim15w does not go into tablet mode Change-Id: I54a4230824badec3afd17d5e969f0cfc960ac2e3 Signed-off-by: Grzegorz Bernacki Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4274889 Reviewed-by: LeilaCY Lin Reviewed-by: Jeremy Bettis Reviewed-by: Diana Z --- zephyr/program/skyrim/skyrim/project.conf | 3 +++ zephyr/program/skyrim/skyrim/src/form_factor.c | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'zephyr') diff --git a/zephyr/program/skyrim/skyrim/project.conf b/zephyr/program/skyrim/skyrim/project.conf index a342977018..231e83f919 100644 --- a/zephyr/program/skyrim/skyrim/project.conf +++ b/zephyr/program/skyrim/skyrim/project.conf @@ -22,3 +22,6 @@ CONFIG_PLATFORM_EC_BATTERY_PRESENT_GPIO=y # EC Host Commands CONFIG_PLATFORM_EC_HOSTCMD_AP_RESET=y + +# Sensors +CONFIG_PLATFORM_EC_DYNAMIC_MOTION_SENSOR_COUNT=y diff --git a/zephyr/program/skyrim/skyrim/src/form_factor.c b/zephyr/program/skyrim/skyrim/src/form_factor.c index b13d905364..afeacb4c1e 100644 --- a/zephyr/program/skyrim/skyrim/src/form_factor.c +++ b/zephyr/program/skyrim/skyrim/src/form_factor.c @@ -6,8 +6,11 @@ #include "accelgyro.h" #include "common.h" #include "cros_board_info.h" +#include "cros_cbi.h" +#include "gpio/gpio_int.h" #include "hooks.h" #include "motionsense_sensors.h" +#include "tablet_mode.h" #include #include @@ -36,3 +39,24 @@ static void form_factor_init(void) } } DECLARE_HOOK(HOOK_INIT, form_factor_init, HOOK_PRIO_POST_I2C); + +static void clamshell_init(void) +{ + int ret; + uint32_t val; + + /* Check the form factor from CBI */ + ret = cros_cbi_get_fw_config(FW_FORM_FACTOR, &val); + if (ret != 0) { + LOG_ERR("Cannot get FW_FORM_FACTOR"); + return; + } + + if (val == FW_FF_CLAMSHELL) { + motion_sensor_count = 0; + gpio_disable_dt_interrupt( + GPIO_INT_FROM_NODELABEL(int_accel_gyro)); + gmr_tablet_switch_disable(); + } +} +DECLARE_HOOK(HOOK_INIT, clamshell_init, HOOK_PRIO_POST_DEFAULT); -- cgit v1.2.1