diff options
author | Grzegorz Bernacki <bernacki@google.com> | 2023-02-16 11:52:18 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-03-13 21:48:07 +0000 |
commit | fc95c65a4d0fb63d5ba5219e3243cd9d2817e925 (patch) | |
tree | 4a499bd69eb72fa4a7e664707b6e05cdd2fe19bf | |
parent | a47728e0c20f8c09df8894b803498f08d5efdc2b (diff) | |
download | chrome-ec-fc95c65a4d0fb63d5ba5219e3243cd9d2817e925.tar.gz |
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 <bernacki@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4274889
Reviewed-by: LeilaCY Lin <leilacy_lin@compal.corp-partner.google.com.test-google-a.com>
Reviewed-by: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r-- | zephyr/program/skyrim/skyrim/project.conf | 3 | ||||
-rw-r--r-- | zephyr/program/skyrim/skyrim/src/form_factor.c | 24 |
2 files changed, 27 insertions, 0 deletions
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 <zephyr/devicetree.h> #include <zephyr/logging/log.h> @@ -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); |