diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/motion_sense.h | 16 | ||||
-rw-r--r-- | include/timer.h | 29 |
2 files changed, 30 insertions, 15 deletions
diff --git a/include/motion_sense.h b/include/motion_sense.h index cebd7907a7..b5fc36dfe4 100644 --- a/include/motion_sense.h +++ b/include/motion_sense.h @@ -180,13 +180,17 @@ struct motion_sensor_t { uint16_t lost; /* - * Time since last collection: - * For sensor with hardware FIFO, time since last sample - * has move from the hardware FIFO to the FIFO (used if fifo rate != 0). - * For sensor without FIFO, time since the last event was collect - * from sensor registers. + * For sensors in forced mode the ideal time to collect the next + * measurement. + * + * This is unused with sensors that interrupt the ec like hw fifo chips. + */ + uint32_t next_collection; + + /* + * The time in us between collection measurements */ - uint32_t last_collection; + uint32_t collection_rate; /* Minimum supported sampling frequency in miliHertz for this sensor */ uint32_t min_frequency; diff --git a/include/timer.h b/include/timer.h index 02a50070c1..47fbe7a4bd 100644 --- a/include/timer.h +++ b/include/timer.h @@ -134,6 +134,23 @@ void force_time(timestamp_t ts); void timer_print_info(void); /** + * Returns a free running millisecond clock counter, which matches tpm2 + * library expectations. + */ +clock_t clock(void); + +/** + * Compute how far to_time is from from_time with rollover taken into account + * + * Return us until to_time given from_time, if negative then to_time has + * passeed from_time. + */ +static inline int time_until(uint32_t from_time, uint32_t to_time) +{ + return (int32_t)(to_time - from_time); +} + +/** * Returns the number of microseconds that have elapsed from a start time. * * This function is for timing short delays typically of a few milliseconds @@ -143,27 +160,21 @@ void timer_print_info(void); * hour. After that, the value returned will wrap. * * @param start Start time to compare against - * @return number of microseconds that have elspsed since that start time + * @return number of microseconds that have elapsed since that start time */ static inline unsigned time_since32(timestamp_t start) { - return get_time().le.lo - start.le.lo; + return time_until(start.le.lo, get_time().le.lo); } /** - * Returns a free running millisecond clock counter, which matches tpm2 - * library expectations. - */ -clock_t clock(void); - -/** * To compare time and deal with rollover * * Return true if a is after b. */ static inline int time_after(uint32_t a, uint32_t b) { - return (int32_t)(b - a) < 0; + return time_until(a, b) < 0; } #endif /* __CROS_EC_TIMER_H */ |