diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2018-03-29 07:43:43 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-04-05 18:41:13 -0700 |
commit | 54884c45c59c07a4c16fd131dc4641a27559c871 (patch) | |
tree | 6bc30809f2887e8354b74f7d51321462f0ec16f3 | |
parent | 87e769a87e43c17eea69cbe6d04c3dc072f79a91 (diff) | |
download | chrome-ec-54884c45c59c07a4c16fd131dc4641a27559c871.tar.gz |
meowth: Add Gyro/FIFO support
Enable Gyro and collect data with FIFO.
BUG=b:73546254
BRANCH=master
TEST=Check gyro data is correct when enabled.
Run CTS test: cheets_CTS_N.7.1_r15.x86.CtsHardwareTestCases
Change-Id: I41321cfc8e7b4f8a006ee45c3a9d11305761315d
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/986918
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | board/zoombini/board.c | 10 | ||||
-rw-r--r-- | board/zoombini/board.h | 25 | ||||
-rw-r--r-- | board/zoombini/gpio.inc | 10 |
3 files changed, 36 insertions, 9 deletions
diff --git a/board/zoombini/board.c b/board/zoombini/board.c index a3ac8f611f..d71bfceb96 100644 --- a/board/zoombini/board.c +++ b/board/zoombini/board.c @@ -217,7 +217,7 @@ static struct mutex g_base_mutex; * Motion Sense */ -struct stprivate_data lsm6dsm_a_data; +struct lsm6dsm_data lsm6dsm_a_data; struct stprivate_data lsm6dsm_g_data; struct stprivate_data lsm6dsm_m_data; @@ -234,7 +234,7 @@ struct motion_sensor_t motion_sensors[] = { .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .rot_standard_ref = NULL, - .default_range = 2, /* g, enough for laptop. */ + .default_range = 4, /* g, enough for laptop. */ .min_frequency = LSM6DSM_ODR_MIN_VAL, .max_frequency = LSM6DSM_ODR_MAX_VAL, .config = { @@ -256,8 +256,10 @@ struct motion_sensor_t motion_sensors[] = { .drv_data = &lsm6dsm_g_data, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, - .default_range = 245, /* dps */ .rot_standard_ref = NULL, + .default_range = 1000, /* dps */ + .min_frequency = LSM6DSM_ODR_MIN_VAL, + .max_frequency = LSM6DSM_ODR_MAX_VAL, }, [LID_ALS] = { .name = "Light", @@ -464,6 +466,8 @@ static void board_init(void) gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_L); gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_L); gpio_enable_interrupt(GPIO_USB_C2_PPC_INT_L); +#else + gpio_enable_interrupt(GPIO_SIXAXIS_INT_L); #endif /* defined(BOARD_ZOOMBINI) */ /* Enable TCPC interrupts. */ diff --git a/board/zoombini/board.h b/board/zoombini/board.h index f5cd988afd..ec1d3d1d57 100644 --- a/board/zoombini/board.h +++ b/board/zoombini/board.h @@ -8,6 +8,14 @@ #ifndef __CROS_EC_BOARD_H #define __CROS_EC_BOARD_H +/* + * By default, enable all console messages excepted HC, ACPI and event: + * The sensor stack is generating a lot of activity. + */ +#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC))) +#undef CONFIG_HOSTCMD_DEBUG_MODE +#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF + /* Optional features */ #define CONFIG_HIBERNATE_PSL #define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands. */ @@ -41,11 +49,24 @@ #endif /* defined(BOARD_ZOOMBINI) */ #define CONFIG_ACCELGYRO_LSM6DSM +#define CONFIG_SPI_FLASH_W25Q80 #define CONFIG_ALS #define CONFIG_ALS_OPT3001 #define OPT3001_I2C_ADDR OPT3001_I2C_ADDR1 #define ALS_COUNT 1 +/* FIFO size is in power of 2. */ +#define CONFIG_ACCEL_FIFO 1024 + +/* Depends on how fast the AP boots and typical ODRs */ +#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO / 3) + +/* Interrupt management. */ +#define CONFIG_ACCEL_INTERRUPTS + +/* Custom sensor option. */ +#define CONFIG_ACCEL_LSM6DSM_INT_EVENT TASK_EVENT_CUSTOM(4) + #define CONFIG_BACKLIGHT_LID #define CONFIG_BATTERY_CUT_OFF @@ -265,9 +286,7 @@ enum sensor_id { LID_ALS, }; -/* TODO(gwendal): Currently LSM6DSM does not use interrupt. */ -#define CONFIG_ACCEL_FORCE_MODE_MASK \ - ((1 << LID_ACCEL) || (1 << LID_GYRO) || (1 << LID_ALS)) +#define CONFIG_ACCEL_FORCE_MODE_MASK (1 << LID_ALS) #ifdef BOARD_MEOWTH int board_get_version(void); diff --git a/board/zoombini/gpio.inc b/board/zoombini/gpio.inc index dcd98490cd..2c299bd3c9 100644 --- a/board/zoombini/gpio.inc +++ b/board/zoombini/gpio.inc @@ -132,8 +132,7 @@ ALTERNATE(PIN_MASK(4, 0x30), 1, MODULE_ADC, 0) /* ADC0-1 */ ALTERNATE(PIN_MASK(0, 0x03), 1, MODULE_PMU, 0) /* GPIO00, GPIO01 */ ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* GPIOD2 */ -/* Meowth GPIOs */ -#else +#else /* defined(BOARD_ZOOMBINI) */ GPIO_INT(USB_C0_PD_INT_L, PIN(6, 1), GPIO_INT_FALLING, usb_c_interrupt) GPIO_INT(USB_C1_PD_INT_L, PIN(F, 5), GPIO_INT_FALLING, usb_c_interrupt) @@ -156,6 +155,11 @@ GPIO_INT(VOLUME_UP_L, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interr GPIO_INT(VOLUME_DOWN_L, PIN(6, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) GPIO_INT(BASE_PWR_FLT_L, PIN(2, 4), GPIO_INT_FALLING, base_pwr_fault_interrupt) +/* MEMS Sensors. */ +GPIO_INT(SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING, lsm6dsm_interrupt) +GPIO(ALS_INT_L, PIN(5, 0), GPIO_INPUT) + + /* Power Enables. */ GPIO(EN_PP3300_DSW, PIN(8, 2), GPIO_OUT_LOW) GPIO(EN_PP5000, PIN(7, 3), GPIO_OUT_LOW) @@ -232,4 +236,4 @@ ALTERNATE(PIN_MASK(F, 0x03), 1, MODULE_ADC, 0) /* ADC8-9 */ ALTERNATE(PIN_MASK(0, 0x03), 1, MODULE_PMU, 0) /* GPIO00, GPIO01 */ ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* GPIOD2 */ -#endif /* defined(BOARD_ZOOMBINI) */ +#endif /* defined(BOARD_ZOOMBINI) */ |