summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bernacki <bernacki@google.com>2023-02-16 11:52:18 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-13 21:48:07 +0000
commitfc95c65a4d0fb63d5ba5219e3243cd9d2817e925 (patch)
tree4a499bd69eb72fa4a7e664707b6e05cdd2fe19bf
parenta47728e0c20f8c09df8894b803498f08d5efdc2b (diff)
downloadchrome-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.conf3
-rw-r--r--zephyr/program/skyrim/skyrim/src/form_factor.c24
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);