Documentation/driver-api/hte/hte.rst
.. SPDX-License-Identifier: GPL-2.0+
:Author: Dipen Patel
Certain devices have built in hardware timestamping engines which can monitor sets of system signals, lines, buses etc... in realtime for state change; upon detecting the change they can automatically store the timestamp at the moment of occurrence. Such functionality may help achieve better accuracy in obtaining timestamps than using software counterparts i.e. ktime and friends.
This document describes the API that can be used by hardware timestamping
engine provider and consumer drivers that want to use the hardware timestamping
engine (HTE) framework. Both consumers and providers must include
#include <linux/hte.h>.
.. kernel-doc:: drivers/hte/hte.c :functions: devm_hte_register_chip hte_push_ts_ns
.. kernel-doc:: drivers/hte/hte.c :functions: hte_init_line_attr hte_ts_get hte_ts_put devm_hte_request_ts_ns hte_request_ts_ns hte_enable_ts hte_disable_ts of_hte_req_count hte_get_clk_src_info
.. kernel-doc:: include/linux/hte.h
The struct hte_ts_data is used to pass timestamp details between the
consumers and the providers. It expresses timestamp data in nanoseconds in
u64. An example of the typical timestamp data life cycle, for the GPIO line is
as follows::
HTE subsystem creates debugfs attributes at /sys/kernel/debug/hte/.
It also creates line/signal-related debugfs attributes at
/sys/kernel/debug/hte/<provider>/<label or line id>/. Note that these
attributes are read-only.
ts_requested
The total number of entities requested from the given provider,
where entity is specified by the provider and could represent
lines, GPIO, chip signals, buses etc...
The attribute will be available at
/sys/kernel/debug/hte/<provider>/.
total_ts
The total number of entities supported by the provider.
The attribute will be available at
/sys/kernel/debug/hte/<provider>/.
dropped_timestamps
The dropped timestamps for a given line.
The attribute will be available at
/sys/kernel/debug/hte/<provider>/<label or line id>/.