diff options
-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); |