summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/eve/board.h6
-rw-r--r--board/kakadu/board.h6
-rw-r--r--board/kukui/board.h8
-rw-r--r--board/samus/board.h3
-rw-r--r--common/gesture.c2
-rw-r--r--common/motion_sense.c4
-rw-r--r--include/config.h29
-rw-r--r--include/motion_sense.h6
8 files changed, 38 insertions, 26 deletions
diff --git a/board/eve/board.h b/board/eve/board.h
index ab1af7cb5c..ea09b9c8e3 100644
--- a/board/eve/board.h
+++ b/board/eve/board.h
@@ -159,12 +159,12 @@
/* Enable double tap detection */
#define CONFIG_GESTURE_DETECTION
#define CONFIG_GESTURE_HOST_DETECTION
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP 1
+#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
#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)
+#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
+#define CONFIG_GESTURE_TAP_SENSOR 1
/* USB */
#define CONFIG_USB_PID 0x504B
diff --git a/board/kakadu/board.h b/board/kakadu/board.h
index 415b0438bd..cc3b757433 100644
--- a/board/kakadu/board.h
+++ b/board/kakadu/board.h
@@ -129,13 +129,13 @@ 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_SENSOR_DOUBLE_TAP
+#define CONFIG_GESTURE_TAP_SENSOR 0
#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP_FOR_HOST
#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)
+#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
#endif /* !__ASSEMBLER__ */
diff --git a/board/kukui/board.h b/board/kukui/board.h
index 3320a53472..e78fdc6ac3 100644
--- a/board/kukui/board.h
+++ b/board/kukui/board.h
@@ -156,13 +156,13 @@ 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_SENSOR_DOUBLE_TAP_FOR_HOST
+#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
+#define CONFIG_GESTURE_TAP_FOR_HOST
#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)
+#define CONFIG_GESTURE_TAP_SENSOR 0
+#define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_GESTURE_TAP_SENSOR)
#endif /* !__ASSEMBLER__ */
diff --git a/board/samus/board.h b/board/samus/board.h
index c021275a0e..65542587f6 100644
--- a/board/samus/board.h
+++ b/board/samus/board.h
@@ -213,11 +213,12 @@ void jtag_interrupt(enum gpio_signal signal);
void set_pp5000_in_g3(int mask, int enable);
/* Define for sensor tasks */
-#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP 0
+#define CONFIG_GESTURE_SENSOR_DOUBLE_TAP
#define CONFIG_GESTURE_TAP_OUTER_WINDOW_T 200
#define CONFIG_GESTURE_TAP_INNER_WINDOW_T 30
#define CONFIG_GESTURE_TAP_MIN_INTERSTICE_T 120
#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
+#define CONFIG_GESTURE_TAP_SENSOR 0
#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
diff --git a/common/gesture.c b/common/gesture.c
index 86039e33bb..88d79448a5 100644
--- a/common/gesture.c
+++ b/common/gesture.c
@@ -67,7 +67,7 @@ enum tap_states {
/* Tap sensor to use */
static struct motion_sensor_t *sensor =
-&motion_sensors[CONFIG_GESTURE_SENSOR_DOUBLE_TAP];
+&motion_sensors[CONFIG_GESTURE_TAP_SENSOR];
/* Tap state information */
static int history_z[MAX_WINDOW]; /* Changes in Z */
diff --git a/common/motion_sense.c b/common/motion_sense.c
index e3b6e71943..d18128633a 100644
--- a/common/motion_sense.c
+++ b/common/motion_sense.c
@@ -717,7 +717,7 @@ static int motion_sense_process(struct motion_sensor_t *sensor,
if (has_data_read) {
#ifdef CONFIG_GESTURE_SW_DETECTION
/* Run gesture recognition engine */
- if (sensor_num == CONFIG_GESTURE_SENSOR_DOUBLE_TAP)
+ if (sensor_num == CONFIG_GESTURE_TAP_SENSOR)
gesture_calc(event);
#endif
#ifdef CONFIG_BODY_DETECTION
@@ -1088,7 +1088,7 @@ static enum ec_status host_cmd_motion_sense(struct host_cmd_handler_args *args)
if (args->version >= 3) {
out->info_3.min_frequency = sensor->min_frequency;
out->info_3.max_frequency = sensor->max_frequency;
- out->info_3.fifo_max_event_count = MAX_FIFO_EVENT_COUNT;
+ out->info_3.fifo_max_event_count = CONFIG_ACCEL_FIFO_SIZE;
args->response_size = sizeof(out->info_3);
}
if (args->version >= 4) {
diff --git a/include/config.h b/include/config.h
index b1e32d94fb..4310e5776b 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1980,12 +1980,9 @@
/* Sensor sampling interval for gesture recognition */
#undef CONFIG_GESTURE_SAMPLING_INTERVAL_MS
-/* Which sensor to look for double tap recognition */
+/* Enable double tap support. */
#undef CONFIG_GESTURE_SENSOR_DOUBLE_TAP
-/* Use for waking up host */
-#undef CONFIG_GESTURE_SENSOR_DOUBLE_TAP_FOR_HOST
-
/*
* Double tap detection parameters
* Double tap works by looking for two isolated Z-axis accelerometer impulses
@@ -1997,15 +1994,19 @@
* which to check for relatively calm periods. In between the two impulses
* there is a minimum and maximum interstice time allowed.
*
- * Define an acceleration threshold to dectect a tap, in mg.
+ * Define an acceleration threshold to detect a tap, in mg.
+ * Which sensor to look for double tap recognition.
+ * Use for waking up host.
*/
#undef CONFIG_GESTURE_TAP_OUTER_WINDOW_T
#undef CONFIG_GESTURE_TAP_INNER_WINDOW_T
#undef CONFIG_GESTURE_TAP_MIN_INTERSTICE_T
#undef CONFIG_GESTURE_TAP_MAX_INTERSTICE_T
#undef CONFIG_GESTURE_TAP_THRES_MG
+#undef CONFIG_GESTURE_TAP_SENSOR
+#undef CONFIG_GESTURE_TAP_FOR_HOST
-/* Which sensor to look for significant motion activity */
+/* Significant motion activity */
#undef CONFIG_GESTURE_SIGMO
/*
@@ -2014,6 +2015,7 @@
* and check for movement again with proof milli-seconds.
*/
#undef CONFIG_GESTURE_SIGMO_PROOF_MS
+#undef CONFIG_GESTURE_SIGMO_SENSOR
#undef CONFIG_GESTURE_SIGMO_SKIP_MS
#undef CONFIG_GESTURE_SIGMO_THRES_MG
@@ -5810,4 +5812,19 @@
#endif /* ifndef(CONFIG_BODY_DETECTION_CUSTOM) */
#endif /* CONFIG_BODY_DETECTION */
+/*
+ * Set parameters to dummy values to use IS_ENABLED().
+ * If a parameter is already set, it will trigger a compilatin error.
+ */
+
+/* To be able to use IS_ENABLED(CONFIG_GESTURE_SENSOR_DOUBLE_TAP) */
+#ifndef CONFIG_GESTURE_SENSOR_DOUBLE_TAP
+#define CONFIG_GESTURE_TAP_THRES_MG 0
+#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 0
+#endif /* CONFIG_GESTURE_SENSOR_DOUBLE_TAP */
+
+#ifndef CONFIG_ACCEL_FIFO
+#define CONFIG_ACCEL_FIFO_SIZE 0
+#endif
+
#endif /* __CROS_EC_CONFIG_H */
diff --git a/include/motion_sense.h b/include/motion_sense.h
index 89284cbc1a..c010abf36d 100644
--- a/include/motion_sense.h
+++ b/include/motion_sense.h
@@ -76,12 +76,6 @@ enum sensor_config {
#define BASE_ODR(_odr) ((_odr) & ~ROUND_UP_FLAG)
#define BASE_RANGE(_range) ((_range) & ~ROUND_UP_FLAG)
-#ifdef CONFIG_ACCEL_FIFO
-#define MAX_FIFO_EVENT_COUNT CONFIG_ACCEL_FIFO_SIZE
-#else
-#define MAX_FIFO_EVENT_COUNT 0
-#endif
-
/*
* I2C/SPI Slave Address encoding for motion sensors
* - The generic defines, I2C_ADDR_MASK and I2C_IS_BIG_ENDIAN_MASK