summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan_Liao <Logan_Liao@compal.corp-partner.google.com>2023-04-28 12:24:19 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-10 07:28:12 +0000
commit0fff3a0bd4e3e82165eebac88c809cac1417e600 (patch)
tree5df89b33da7760e9b335940cc2fdbee2a3023237
parent8d162bcda7ba68ebc0092773fcee675ed57e4ff9 (diff)
downloadchrome-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.c5
-rw-r--r--board/omnigul/fw_config.h2
-rw-r--r--board/omnigul/sensors.c19
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);