diff options
author | Alexandru M Stan <amstan@chromium.org> | 2018-07-11 13:09:51 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2018-07-16 20:37:24 +0000 |
commit | 7f5b9e97860db889186e5825a166da6ffd248075 (patch) | |
tree | 3906de2e2c5281c6c38baf56a9e2a040de9fae67 | |
parent | 7a41f59c2e0686a06a28e8ffcf4613535c1e39d6 (diff) | |
download | chrome-ec-7f5b9e97860db889186e5825a166da6ffd248075.tar.gz |
Revert "sensors: Add driver for SYNC"
This reverts commit 2778b192f39ea01fc870153d4c21b42fc2149590.
A few EC CLs made some bad assumption and caused CTS to fail (without
realizing it in time). This is a series to revert those bad CLs and other
CLs that depend on it.
They might reland back soon.
Conflicts:
include/config.h
BUG=b/111220617
TEST=With series, CTS passes once again
Change-Id: Ieeb6515c12a544a99efcfc254bbdea520b7e05ee
Signed-off-by: Alexandru M Stan <amstan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1134055
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
-rw-r--r-- | driver/build.mk | 1 | ||||
-rw-r--r-- | driver/sync.c | 120 | ||||
-rw-r--r-- | driver/sync.h | 18 | ||||
-rw-r--r-- | include/config.h | 10 |
4 files changed, 2 insertions, 147 deletions
diff --git a/driver/build.mk b/driver/build.mk index 541b8df235..524d7b2b69 100644 --- a/driver/build.mk +++ b/driver/build.mk @@ -15,7 +15,6 @@ driver-$(CONFIG_ACCELGYRO_BMI160)+=accelgyro_bmi160.o driver-$(CONFIG_MAG_BMI160_BMM150)+=mag_bmm150.o driver-$(CONFIG_ACCELGYRO_LSM6DSM)+=accelgyro_lsm6dsm.o stm_mems_common.o driver-$(CONFIG_ACCEL_LIS2DH)+=accel_lis2dh.o stm_mems_common.o -driver-$(CONFIG_SYNC)+=sync.o # BC1.2 Charger Detection Devices driver-$(CONFIG_BC12_DETECT_BQ24392)+=bc12/bq24392.o diff --git a/driver/sync.c b/driver/sync.c deleted file mode 100644 index bbf0b7f0d8..0000000000 --- a/driver/sync.c +++ /dev/null @@ -1,120 +0,0 @@ -/* Copyright 2017 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Sync event driver. - * Useful for recording the exact time a gpio interrupt happened in the - * context of sensors. Originally created for a camera vsync signal. - */ - -#include "accelgyro.h" -#include "config.h" -#include "console.h" -#include "driver/sync.h" -#include "hwtimer.h" -#include "task.h" - -#define CPRINTS(format, args...) cprints(CC_MOTION_SENSE, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_MOTION_SENSE, format, ## args) - -#ifndef CONFIG_ACCEL_FIFO -#error This driver needs CONFIG_ACCEL_FIFO -#endif - -#ifndef CONFIG_ACCEL_INTERRUPTS -#error This driver needs CONFIG_ACCEL_INTERRUPTS -#endif - -static uint32_t previous_interrupt_timestamp, last_interrupt_timestamp; -static int event_counter; -struct ec_response_motion_sensor_data vector = {.flags = 0, .data = {0, 0, 0} }; -int sync_enabled; - -static int sync_read(const struct motion_sensor_t *s, vector_3_t v) -{ - v[0] = event_counter; - return EC_SUCCESS; -} - -/* - * Since there's no such thing as data rate for this sensor, but the framework - * still depends on being able to set this to 0 to disable it, we'll just use - * non 0 rate values as an enable boolean. - */ -static int sync_set_data_rate(const struct motion_sensor_t *s, - int rate, int roundup) -{ - sync_enabled = !!rate; - CPRINTF("sync event driver enabling=%d\n", sync_enabled); - return EC_SUCCESS; -} - -static int sync_get_data_rate(const struct motion_sensor_t *s) -{ - return sync_enabled; -} - -/* Upper half of the irq handler */ -void sync_interrupt(enum gpio_signal signal) -{ - uint32_t timestamp = __hw_clock_source_read(); - - if (!sync_enabled) - return; - - last_interrupt_timestamp = timestamp; - event_counter++; - - task_set_event(TASK_ID_MOTIONSENSE, CONFIG_SYNC_INT_EVENT, 0); -} - -/* Bottom half of the irq handler */ -static int motion_irq_handler(struct motion_sensor_t *s, uint32_t *event) -{ - uint32_t timestamp; - - if (!(*event & CONFIG_SYNC_INT_EVENT)) - return EC_ERROR_NOT_HANDLED; - - /* this should be the atomic read */ - timestamp = last_interrupt_timestamp; - - if (previous_interrupt_timestamp == timestamp) - return EC_ERROR_NOT_HANDLED; /* nothing new yet */ - previous_interrupt_timestamp = timestamp; - - vector.flags = MOTIONSENSE_SENSOR_FLAG_WAKEUP; - vector.data[X] = event_counter; - motion_sense_fifo_add_data(&vector, s, 1, timestamp); - return EC_SUCCESS; -} - -static int sync_init(const struct motion_sensor_t *s) -{ - last_interrupt_timestamp = __hw_clock_source_read(); - previous_interrupt_timestamp = last_interrupt_timestamp; - event_counter = 0; - vector.sensor_num = s - motion_sensors; - sync_enabled = 0; - return 0; -} - -#ifdef CONFIG_SYNC_COMMAND -static int command_sync(int argc, char **argv) -{ - sync_interrupt(GPIO_SYNC_INT); - return EC_SUCCESS; -} -DECLARE_CONSOLE_COMMAND(sync, command_sync, - NULL, - "Simulates a sync event"); -#endif - -const struct accelgyro_drv sync_drv = { - .init = sync_init, - .read = sync_read, - .set_data_rate = sync_set_data_rate, - .get_data_rate = sync_get_data_rate, - .irq_handler = motion_irq_handler, -}; - diff --git a/driver/sync.h b/driver/sync.h deleted file mode 100644 index 1f6115a086..0000000000 --- a/driver/sync.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright 2017 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Sync event driver. - * Useful for recording the exact time a gpio interrupt happened in the - * context of sensors. Originally created for a camera vsync signal. - */ - -#ifndef __CROS_EC_VSYNC_H -#define __CROS_EC_VSYNC_H - -extern const struct accelgyro_drv sync_drv; - -void sync_interrupt(enum gpio_signal signal); - -#endif /* __CROS_EC_VSYNC_H */ - diff --git a/include/config.h b/include/config.h index c8980a9aaf..f8bbae47ae 100644 --- a/include/config.h +++ b/include/config.h @@ -109,17 +109,11 @@ /* Specify type of Gyrometers attached. */ #undef CONFIG_GYRO_L3GD20H -/* Sync event driver */ -#undef CONFIG_SYNC - -/* Simulate command for sync */ -#undef CONFIG_SYNC_COMMAND - /* - * Define the event to raise when the sync event happens. + * Define the event to raise when LIS2DH interrupt. * Must be within TASK_EVENT_MOTION_INTERRUPT_MASK. */ -#undef CONFIG_SYNC_INT_EVENT +#undef CONFIG_ACCEL_LIS2DH_INT_EVENT /* Compile chip support for analog-to-digital convertor */ #undef CONFIG_ADC |