diff options
author | Edward Hill <ecgh@chromium.org> | 2018-12-04 12:28:16 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-12-05 01:13:32 -0800 |
commit | 0034f8f365e647514e16c61031f661753089cf66 (patch) | |
tree | 3803572b3aa026d8e9d9f99487cc83c5f61228d2 /board/aleena/board.c | |
parent | 2b9ee186544863f29a84477aa46a80a57d8f09e0 (diff) | |
download | chrome-ec-0034f8f365e647514e16c61031f661753089cf66.tar.gz |
aleena/kasumi: Add support for motion sensors
Adjust Grunt baseboard to allow for per-sku support for motion sensors.
Use this to enable motion sensors for SKU 82 (Kasumi360).
Only enable the interrupt if the sensor is present.
BUG=b:119795894
BRANCH=grunt
TEST=Kasumi360 `ectool motionsense lid_angle` shows correct angles.
Change-Id: Icb34359d7ac4cd894776e134c2c1fb7032741f03
Signed-off-by: Edward Hill <ecgh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1361987
Tested-by: Ryan Zhang <ryan.zhang@quanta.corp-partner.google.com>
Reviewed-by: Ryan Zhang <ryan.zhang@quanta.corp-partner.google.com>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'board/aleena/board.c')
-rw-r--r-- | board/aleena/board.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/board/aleena/board.c b/board/aleena/board.c index c79b1c3b93..a7b1fa1301 100644 --- a/board/aleena/board.c +++ b/board/aleena/board.c @@ -14,6 +14,7 @@ #include "common.h" #include "compile_time_macros.h" #include "console.h" +#include "driver/accelgyro_bmi160.h" #include "driver/led/lm3630a.h" #include "driver/ppc/sn5s330.h" #include "driver/tcpm/anx74xx.h" @@ -102,10 +103,18 @@ const struct pwm_t pwm_channels[] = { }; BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); -static void board_init(void) +void board_update_sensor_config_from_sku(void) { + if (board_is_convertible()) { + /* Enable Gyro interrupts */ + gpio_enable_interrupt(GPIO_6AXIS_INT_L); + } else { + motion_sensor_count = 0; + /* Gyro is not present, don't allow line to float */ + gpio_set_flags(GPIO_6AXIS_INT_L, + GPIO_INPUT | GPIO_PULL_DOWN); + } } -DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); void board_overcurrent_event(int port) { |