diff options
author | David Huang <david.huang@quanta.corp-partner.google.com> | 2021-01-26 15:15:54 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-01-27 17:49:29 +0000 |
commit | 8081ae39a37d4996423390f117b7dcd545aa807e (patch) | |
tree | 089c11f849d82d9815245bb8a577d37b8dffd9af | |
parent | 2ba0d4d708f2cada397288005c473476bb583ee8 (diff) | |
download | chrome-ec-8081ae39a37d4996423390f117b7dcd545aa807e.tar.gz |
voema: Change base accel sensor to BMA253
Change base accel sensor to BMA253.
BUG=b:169356807
BRANCH=main
TEST=Check "ectool motionsense" get sensor data.
Signed-off-by: David Huang <david.huang@quanta.corp-partner.google.com>
Change-Id: I2edd83c316ab3aed1d6f89fed077d0bdc54d7b8c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2649289
Reviewed-by: Keith Short <keithshort@chromium.org>
Commit-Queue: Keith Short <keithshort@chromium.org>
-rw-r--r-- | board/voema/board.h | 8 | ||||
-rw-r--r-- | board/voema/gpio.inc | 7 | ||||
-rw-r--r-- | board/voema/sensors.c | 49 |
3 files changed, 17 insertions, 47 deletions
diff --git a/board/voema/board.h b/board/voema/board.h index 857852e5aa..ce42dd9f42 100644 --- a/board/voema/board.h +++ b/board/voema/board.h @@ -35,11 +35,6 @@ /* BMA253 accelerometer in base */ #define CONFIG_ACCEL_BMA255 -/* BMI260 accel/gyro in base */ -#define CONFIG_ACCELGYRO_BMI260 -#define CONFIG_ACCELGYRO_BMI260_INT_EVENT \ - TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL) - /* TCS3400 ALS */ #define CONFIG_ALS #define ALS_COUNT 1 @@ -49,7 +44,7 @@ /* Sensors without hardware FIFO are in forced mode */ #define CONFIG_ACCEL_FORCE_MODE_MASK \ - (BIT(LID_ACCEL) | BIT(CLEAR_ALS)) + (BIT(LID_ACCEL) | BIT(CLEAR_ALS) | BIT(BASE_ACCEL)) #define CONFIG_LID_ANGLE #define CONFIG_LID_ANGLE_UPDATE @@ -166,7 +161,6 @@ enum pwm_channel { enum sensor_id { LID_ACCEL = 0, BASE_ACCEL, - BASE_GYRO, CLEAR_ALS, RGB_ALS, SENSOR_COUNT, diff --git a/board/voema/gpio.inc b/board/voema/gpio.inc index 7577e81f28..a16ed3ec22 100644 --- a/board/voema/gpio.inc +++ b/board/voema/gpio.inc @@ -25,13 +25,14 @@ GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt) GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* Sensor Interrupts */ -GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi260_interrupt) GPIO_INT(EC_ALS_RGB_INT_L, PIN(D, 4), GPIO_INT_FALLING, tcs3400_interrupt) GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr) + /* - * Lid g-sensor interrupt unused on Volteer, configure as regular input for - * power saving. + * Base / Lid g-sensor interrupt unused on Voema, configure as regular input + * for power saving. */ +GPIO(EC_MB_ACCEL_INT_L, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP) GPIO(EC_ACCEL_INT, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP) /* USB-C interrupts */ diff --git a/board/voema/sensors.c b/board/voema/sensors.c index 9e34812131..e772a4178e 100644 --- a/board/voema/sensors.c +++ b/board/voema/sensors.c @@ -7,8 +7,6 @@ #include "common.h" #include "accelgyro.h" #include "driver/accel_bma2x2.h" -#include "driver/accelgyro_bmi_common.h" -#include "driver/accelgyro_bmi260.h" #include "driver/als_tcs3400.h" #include "driver/sync.h" #include "keyboard_scan.h" @@ -24,10 +22,8 @@ static struct mutex g_lid_accel_mutex; static struct mutex g_base_mutex; /* BMA253 private data */ -static struct accelgyro_saved_data_t g_bma253_data; - -/* BMI260 private data */ -static struct bmi_drv_data_t g_bmi260_data; +static struct accelgyro_saved_data_t g_bma253_base_data; +static struct accelgyro_saved_data_t g_bma253_lid_data; /* TCS3400 private data */ static struct als_drv_data_t g_tcs3400_data = { @@ -85,15 +81,15 @@ static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = { /* Rotation matrix for the lid accelerometer */ static const mat33_fp_t lid_standard_ref = { - { FLOAT_TO_FP(1), 0, 0}, + { FLOAT_TO_FP(-1), 0, 0}, { 0, FLOAT_TO_FP(-1), 0}, - { 0, 0, FLOAT_TO_FP(-1)} + { 0, 0, FLOAT_TO_FP(1)} }; const mat33_fp_t base_standard_ref = { { 0, FLOAT_TO_FP(1), 0}, { FLOAT_TO_FP(-1), 0, 0}, - { 0, 0, FLOAT_TO_FP(1)} + { 0, 0, FLOAT_TO_FP(-1)} }; struct motion_sensor_t motion_sensors[] = { @@ -105,7 +101,7 @@ struct motion_sensor_t motion_sensors[] = { .location = MOTIONSENSE_LOC_LID, .drv = &bma2x2_accel_drv, .mutex = &g_lid_accel_mutex, - .drv_data = &g_bma253_data, + .drv_data = &g_bma253_lid_data, .port = I2C_PORT_SENSOR, .i2c_spi_addr_flags = BMA2x2_I2C_ADDR1_FLAGS, .rot_standard_ref = &lid_standard_ref, @@ -126,48 +122,29 @@ struct motion_sensor_t motion_sensors[] = { [BASE_ACCEL] = { .name = "Base Accel", .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_BMI260, + .chip = MOTIONSENSE_CHIP_BMA255, .type = MOTIONSENSE_TYPE_ACCEL, .location = MOTIONSENSE_LOC_BASE, - .drv = &bmi260_drv, + .drv = &bma2x2_accel_drv, .mutex = &g_base_mutex, - .drv_data = &g_bmi260_data, + .drv_data = &g_bma253_base_data, .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS, + .i2c_spi_addr_flags = BMA2x2_I2C_ADDR2_FLAGS, .rot_standard_ref = &base_standard_ref, - .min_frequency = BMI_ACCEL_MIN_FREQ, - .max_frequency = BMI_ACCEL_MAX_FREQ, + .min_frequency = BMA255_ACCEL_MIN_FREQ, + .max_frequency = BMA255_ACCEL_MAX_FREQ, .default_range = 4, /* g */ .config = { /* EC use accel for angle detection */ [SENSOR_CONFIG_EC_S0] = { .odr = 10000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, }, /* Sensor on in S3 */ [SENSOR_CONFIG_EC_S3] = { .odr = 10000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, }, }, }, - - [BASE_GYRO] = { - .name = "Base Gyro", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_BMI260, - .type = MOTIONSENSE_TYPE_GYRO, - .location = MOTIONSENSE_LOC_BASE, - .drv = &bmi260_drv, - .mutex = &g_base_mutex, - .drv_data = &g_bmi260_data, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = BMI260_ADDR0_FLAGS, - .default_range = 1000, /* dps */ - .rot_standard_ref = &base_standard_ref, - .min_frequency = BMI_GYRO_MIN_FREQ, - .max_frequency = BMI_GYRO_MAX_FREQ, - }, [CLEAR_ALS] = { .name = "Clear Light", .active_mask = SENSOR_ACTIVE_S0_S3, @@ -220,8 +197,6 @@ static void baseboard_sensors_init(void) /* Enable interrupt for the TCS3400 color light sensor */ gpio_enable_interrupt(GPIO_EC_ALS_RGB_INT_L); - /* Enable interrupt for the BMI260 accel/gyro sensor */ - gpio_enable_interrupt(GPIO_EC_IMU_INT_L); } DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_DEFAULT); |