diff options
author | Logan_Liao <Logan_Liao@compal.corp-partner.google.com> | 2023-04-28 12:24:19 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-05-10 07:28:12 +0000 |
commit | 0fff3a0bd4e3e82165eebac88c809cac1417e600 (patch) | |
tree | 5df89b33da7760e9b335940cc2fdbee2a3023237 | |
parent | 8d162bcda7ba68ebc0092773fcee675ed57e4ff9 (diff) | |
download | chrome-ec-0fff3a0bd4e3e82165eebac88c809cac1417e600.tar.gz |
omnigul: Add condition use Accel and Gyro by FWCONFIG.
This patch add FW config to deceide enable Accel and Gyro or not.
BUG=b:280001153
TEST=ectool motionsense show
sensor 0: 0 0 0
sensor 1: 0 0 0
sensor 2: 0 0 0
Change-Id: Id040713b20e415f52f2feb1f9320a3affa94711b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4487062
Tested-by: Logan Liao <logan_liao@compal.corp-partner.google.com>
Reviewed-by: Logan Liao <logan_liao@compal.corp-partner.google.com>
Commit-Queue: Kyle Lin <kylelinck@google.com>
Code-Coverage: Kyle Lin <kylelinck@google.com>
Reviewed-by: Kyle Lin <kylelinck@google.com>
Reviewed-by: Josh Tsai <josh_tsai@compal.corp-partner.google.com>
-rw-r--r-- | board/omnigul/fw_config.c | 5 | ||||
-rw-r--r-- | board/omnigul/fw_config.h | 2 | ||||
-rw-r--r-- | board/omnigul/sensors.c | 19 |
3 files changed, 22 insertions, 4 deletions
diff --git a/board/omnigul/fw_config.c b/board/omnigul/fw_config.c index 5ac34a56b5..34b460dad1 100644 --- a/board/omnigul/fw_config.c +++ b/board/omnigul/fw_config.c @@ -41,3 +41,8 @@ union omnigul_cbi_fw_config get_fw_config(void) { return fw_config; } + +bool ec_cfg_has_tabletmode(void) +{ + return (fw_config.tab_mode == TABLETMODE_ENABLED); +} diff --git a/board/omnigul/fw_config.h b/board/omnigul/fw_config.h index d30c09cb24..d0facef0da 100644 --- a/board/omnigul/fw_config.h +++ b/board/omnigul/fw_config.h @@ -53,4 +53,6 @@ union omnigul_cbi_fw_config { */ union omnigul_cbi_fw_config get_fw_config(void); +bool ec_cfg_has_tabletmode(void); + #endif /* __BOARD_OMNIGUL_FW_CONFIG_H_ */ diff --git a/board/omnigul/sensors.c b/board/omnigul/sensors.c index e203a194c4..a2d08bd045 100644 --- a/board/omnigul/sensors.c +++ b/board/omnigul/sensors.c @@ -8,9 +8,11 @@ #include "common.h" #include "driver/accel_lis2dw12.h" #include "driver/accelgyro_lsm6dso.h" +#include "fw_config.h" #include "gpio.h" #include "hooks.h" #include "motion_sense.h" +#include "tablet_mode.h" #include "temp_sensor.h" #include "temp_sensor/thermistor.h" #include "thermal.h" @@ -134,10 +136,19 @@ const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); static void baseboard_sensors_init(void) { - /* Enable gpio interrupt for lid accel sensor */ - gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L); - /* Enable gpio interrupt for base accelgyro sensor */ - gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L); + if (ec_cfg_has_tabletmode()) { + /* Enable gpio interrupt for lid accel sensor */ + gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L); + /* Enable gpio interrupt for base accelgyro sensor */ + gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L); + } else { + gmr_tablet_switch_disable(); + /* Base accel is not stuffed, don't allow line to float */ + gpio_set_flags(GPIO_EC_ACCEL_INT_R_L, + GPIO_INPUT | GPIO_PULL_DOWN); + gpio_set_flags(GPIO_EC_IMU_INT_R_L, + GPIO_INPUT | GPIO_PULL_DOWN); + } } DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1); |