summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeng-Ruey Hsu <henryhsu@google.com>2019-08-28 18:00:51 +0800
committerCommit Bot <commit-bot@chromium.org>2019-11-11 04:53:20 +0000
commita9629611a9f8d3d301363683bc3e7db2fbbf769c (patch)
treef8469a90f9495a55f94e4192dd460df5e6a7d376
parentd8abaaa35932d7b0e7a0aa99e52a9b81b7d74584 (diff)
downloadchrome-ec-a9629611a9f8d3d301363683bc3e7db2fbbf769c.tar.gz
Enable double tap host detection in kukui
BUG=b:135575671 BRANCH=none TEST=AP can receive mkbp event when double tap is triggered Change-Id: I35abf2a62d4980c9b9232c28a72c5ba624142270 Signed-off-by: Heng-Ruey Hsu <henryhsu@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1772867 Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r--board/kukui/board.c13
-rw-r--r--board/kukui/board.h15
2 files changed, 27 insertions, 1 deletions
diff --git a/board/kukui/board.c b/board/kukui/board.c
index bd7a2f9284..08463539cf 100644
--- a/board/kukui/board.c
+++ b/board/kukui/board.c
@@ -21,6 +21,7 @@
#include "driver/tcpm/mt6370.h"
#include "driver/usb_mux/it5205.h"
#include "extpower.h"
+#include "gesture.h"
#include "gpio.h"
#include "hooks.h"
#include "host_command.h"
@@ -329,6 +330,11 @@ static void board_rev_init(void)
}
DECLARE_HOOK(HOOK_INIT, board_rev_init, HOOK_PRIO_INIT_ADC + 1);
+void sensor_board_proc_double_tap(void)
+{
+ CPRINTS("Detect double tap");
+}
+
/* Motion sensors */
/* Mutexes */
#ifndef VARIANT_KUKUI_NO_SENSORS
@@ -437,7 +443,12 @@ struct motion_sensor_t motion_sensors[] = {
.config = {
/* Enable accel in S0 */
[SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
+ .odr = TAP_ODR,
+ .ec_rate = 100 * MSEC,
+ },
+ /* For double tap detection */
+ [SENSOR_CONFIG_EC_S3] = {
+ .odr = TAP_ODR,
.ec_rate = 100 * MSEC,
},
},
diff --git a/board/kukui/board.h b/board/kukui/board.h
index 31125cf9e5..41ea0092c2 100644
--- a/board/kukui/board.h
+++ b/board/kukui/board.h
@@ -90,6 +90,11 @@
(EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
+/* MKBP */
+#define CONFIG_MKBP_EVENT
+#define CONFIG_MKBP_EVENT_WAKEUP_MASK \
+ (BIT(EC_MKBP_EVENT_SENSOR_FIFO) | BIT(EC_MKBP_EVENT_HOST_EVENT))
+
#ifndef __ASSEMBLER__
enum adc_channel {
@@ -144,6 +149,16 @@ int board_is_sourcing_vbus(int port);
void pogo_adc_interrupt(enum gpio_signal signal);
int board_discharge_on_ac(int enable);
+/* Enable double tap detection */
+#define CONFIG_GESTURE_DETECTION
+#define CONFIG_GESTURE_HOST_DETECTION
+#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP 0
+#define CONFIG_GESTURE_SAMPLING_INTERVAL_MS 5
+#define CONFIG_GESTURE_TAP_THRES_MG 100
+#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
+#define CONFIG_GESTURE_DETECTION_MASK \
+ BIT(CONFIG_GESTURE_SENSOR_DOUBLE_TAP)
+
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */