summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Huang <david.huang@quanta.corp-partner.google.com>2021-01-26 15:15:54 +0800
committerCommit Bot <commit-bot@chromium.org>2021-01-27 17:49:29 +0000
commit8081ae39a37d4996423390f117b7dcd545aa807e (patch)
tree089c11f849d82d9815245bb8a577d37b8dffd9af
parent2ba0d4d708f2cada397288005c473476bb583ee8 (diff)
downloadchrome-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.h8
-rw-r--r--board/voema/gpio.inc7
-rw-r--r--board/voema/sensors.c49
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);