diff options
author | johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com> | 2021-05-06 16:09:16 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-05-10 19:27:59 +0000 |
commit | af229f1ccb54b9c10954673771d9fd80e4538c82 (patch) | |
tree | c5c008a62a29ecd5d4ef096321f9f4104cfa87c6 /board/cret/board.c | |
parent | 0e605f4c165fb77737b2294ca2c234d98c90b189 (diff) | |
download | chrome-ec-af229f1ccb54b9c10954673771d9fd80e4538c82.tar.gz |
cret: Disable Tablet mode detection for Clamshell sku
It should disable tablet mode detection for Clamshell sku,
plan to use fw_config to disable tablet mode.
BUG=b:184504093
BRANCH=dedede
TEST=make BOARD=cret
Signed-off-by: johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com>
Change-Id: I1bfd6e12da3df4dd435c5518c65fd3f85cb221d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2875910
Reviewed-by: Elthan Huang <elthan_huang@compal.corp-partner.google.com>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'board/cret/board.c')
-rw-r--r-- | board/cret/board.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/board/cret/board.c b/board/cret/board.c index bb7fc16f93..82a5b7ee6e 100644 --- a/board/cret/board.c +++ b/board/cret/board.c @@ -47,6 +47,7 @@ #define INT_RECHECK_US 5000 +static void fw_config_tablet_mode(void); /* C0 interrupt line shared by BC 1.2 and charger */ static void check_c0_line(void); DECLARE_DEFERRED(check_c0_line); @@ -138,8 +139,7 @@ void board_init(void) /* Enable interrupt for passing through HPD */ gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL); - /* Enable gpio interrupt for base accelgyro sensor */ - gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L); + fw_config_tablet_mode(); /* Turn on 5V if the system is on, otherwise turn it off. */ on = chipset_in_state(CHIPSET_STATE_ON | CHIPSET_STATE_ANY_SUSPEND | @@ -413,7 +413,7 @@ struct motion_sensor_t motion_sensors[] = { }, }; -const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); +unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); __override void ocpc_get_pid_constants(int *kp, int *kp_div, int *ki, int *ki_div, @@ -567,3 +567,18 @@ __override const struct ec_response_keybd_config { return &cret_keybd; } + +static void fw_config_tablet_mode(void) +{ + if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_PRESENT) { + motion_sensor_count = ARRAY_SIZE(motion_sensors); + /* Enable Base Accel interrupt */ + gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L); + } else { + motion_sensor_count = 0; + gmr_tablet_switch_disable(); + /* Base accel is not stuffed, don't allow line to float */ + gpio_set_flags(GPIO_BASE_SIXAXIS_INT_L, + GPIO_INPUT | GPIO_PULL_DOWN); + } +} |