diff --git a/board/yorp/board.c b/board/yorp/board.c index 1a282c8b4c..7e4111116e 100644 --- a/board/yorp/board.c +++ b/board/yorp/board.c @@ -294,6 +294,14 @@ struct motion_sensor_t motion_sensors[] = { const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); +/* Initialize board. */ +static void board_init(void) +{ + /* Enable Base Accel interrupt */ + gpio_enable_interrupt(GPIO_BASE_SIXAXIS_INT_L); +} +DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); + #ifndef TEST_BUILD /* This callback disables keyboard when convertibles are fully open */ void lid_angle_peripheral_enable(int enable) diff --git a/board/yorp/board.h b/board/yorp/board.h index aef8b4a111..4ef2cd8aa0 100644 --- a/board/yorp/board.h +++ b/board/yorp/board.h @@ -30,8 +30,7 @@ #define CONFIG_ACCEL_KX022 /* Lid accel */ #define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */ /* Sensors without hardware FIFO are in forced mode */ -#define CONFIG_ACCEL_FORCE_MODE_MASK ((1 << LID_ACCEL) | \ - (1 << BASE_ACCEL) | (1 << BASE_GYRO)) +#define CONFIG_ACCEL_FORCE_MODE_MASK (1 << LID_ACCEL) #define CONFIG_LID_ANGLE #define CONFIG_LID_ANGLE_UPDATE @@ -45,7 +44,16 @@ #define CONFIG_TEMP_SENSOR #define CONFIG_THERMISTOR_NCP15WB +#define CONFIG_ACCEL_INTERRUPTS +/* 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) +#define CONFIG_MKBP_EVENT +#define CONFIG_MKBP_USE_HOST_EVENT + +#define CONFIG_ACCEL_LSM6DSM_INT_EVENT TASK_EVENT_CUSTOM(4) #ifndef __ASSEMBLER__ #include "gpio_signal.h" diff --git a/board/yorp/gpio.inc b/board/yorp/gpio.inc index cc4a387bd9..9f3e3dd35f 100644 --- a/board/yorp/gpio.inc +++ b/board/yorp/gpio.inc @@ -39,8 +39,7 @@ GPIO_INT(ALL_SYS_PGOOD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) /* PM /* Other interrupts */ GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */ -/* TODO(b/74932344): Make it as an interrupt after driver supports this */ -GPIO(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INPUT | GPIO_SEL_1P8V) +GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt) GPIO(LID_ACCEL_INT_L, PIN(5, 0), GPIO_INPUT | GPIO_SEL_1P8V) /* Define PCH_SLP_S0_L after all interrupts if CONFIG_POWER_S0IX not defined. */