net: ethernet: ti: introduce am654 common platform time sync driver
authorGrygorii Strashko <grygorii.strashko@ti.com>
Fri, 1 May 2020 20:50:06 +0000 (23:50 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 May 2020 19:02:02 +0000 (12:02 -0700)
commitf6bd59526ca527e203e3c6c2e62cda5a0fd5c1a2
tree27b41a2cadfcf80b293cbf485b54614c3895a983
parent6e87ac748e94f4d7c9eaed4550789882ec8792d6
net: ethernet: ti: introduce am654 common platform time sync driver

The CPTS module is used to facilitate host control of time sync operations.
Main features of CPTS module are:
- selection of multiple external clock sources
- control of time sync events via interrupt or polling
- 64-bit timestamp mode in ns with HW PPM and nudge adjustment.
- hardware timestamp ext. inputs (HWx_TS_PUSH)
- timestamp Generator function outputs (TS_GENFx)
Depending on integration it enables compliance with the IEEE 1588-2008
standard for a precision clock synchronization protocol, Ethernet Enhanced
Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
Measurement (PTM).

Introduced driver provides Linux PTP hardware clock for each CPTS device
and network packets timestamping where applicable. CPTS PTP hardware clock
supports following operations:
    - Set time
    - Get time
    - Shift the clock by a given offset atomically
    - Adjust clock frequency
    - Time stamp external events
    - Periodic output signals

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/Kconfig
drivers/net/ethernet/ti/Makefile
drivers/net/ethernet/ti/am65-cpts.c [new file with mode: 0644]
drivers/net/ethernet/ti/am65-cpts.h [new file with mode: 0644]