This patches introduce PTP feature support in Aquantia AQC atlantic driver.
This implementation is a joined effort from a number of aquantia developers: Egor and Sergey are included as co-developers, Dmitry has implemented PIN control functionality and helped me in the overall patchset preparation. Feature was verified on AQC hardware with testptp tool, linuxptp, gptp and with Motu hardware unit. Dmitry Bezrukov (11): net: aquantia: PTP skeleton declarations and callbacks net: aquantia: unify styling of bit enums net: aquantia: add basic ptp_clock callbacks net: aquantia: add PTP rings infrastructure net: aquantia: styling fixes on ptp related functions net: aquantia: implement data PTP datapath net: aquantia: rx filters for ptp net: aquantia: add support for ptp ioctls net: aquantia: implement get_ts_info ethtool net: aquantia: add support for Phy access net: aquantia: add support for PIN funcs .../net/ethernet/aquantia/atlantic/Makefile | 2 + .../net/ethernet/aquantia/atlantic/aq_cfg.h | 4 +- .../ethernet/aquantia/atlantic/aq_ethtool.c | 35 +- .../ethernet/aquantia/atlantic/aq_filters.c | 17 +- .../net/ethernet/aquantia/atlantic/aq_hw.h | 45 +- .../net/ethernet/aquantia/atlantic/aq_main.c | 103 +- .../net/ethernet/aquantia/atlantic/aq_nic.c | 96 +- .../net/ethernet/aquantia/atlantic/aq_nic.h | 16 +- .../ethernet/aquantia/atlantic/aq_pci_func.c | 5 +- .../net/ethernet/aquantia/atlantic/aq_phy.c | 147 ++ .../net/ethernet/aquantia/atlantic/aq_phy.h | 32 + .../net/ethernet/aquantia/atlantic/aq_ptp.c | 1396 +++++++++++++++++ .../net/ethernet/aquantia/atlantic/aq_ptp.h | 57 + .../net/ethernet/aquantia/atlantic/aq_ring.c | 63 +- .../net/ethernet/aquantia/atlantic/aq_ring.h | 7 +- .../aquantia/atlantic/hw_atl/hw_atl_b0.c | 318 +++- .../atlantic/hw_atl/hw_atl_b0_internal.h | 9 +- .../aquantia/atlantic/hw_atl/hw_atl_llh.c | 96 +- .../aquantia/atlantic/hw_atl/hw_atl_llh.h | 58 +- .../atlantic/hw_atl/hw_atl_llh_internal.h | 223 ++- .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 7 +- .../aquantia/atlantic/hw_atl/hw_atl_utils.h | 172 +- .../atlantic/hw_atl/hw_atl_utils_fw2x.c | 97 +- 23 files changed, 2871 insertions(+), 134 deletions(-) create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_phy.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_phy.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_ptp.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_ptp.h -- 2.17.1