From: Ido Schimmel <ido...@mellanox.com> This is the first of about four patchsets that add PTP support in mlxsw for the Spectrum-1 ASIC.
This patchset exposes the physical hardware clock, while subsequent patchsets will add timestamping support and mlxsw tracepoints for debugging and testing. Shalom says: This patchset adds support for physical hardware clock for Spectrum-1 ASIC only. Patches #1, #2 and #3 add the ability to query the free running clock PCI address. Patches #4 and #5 add two new register, the Management UTC Register and the Management Pulse Per Second Register. Patch #6 publishes scaled_ppm_to_ppb() to allow drivers to use it. Patch #7 adds the physical hardware clock operations. Patch #8 initializes the physical hardware clock. Patch #9 adds a selftest for testing the PTP physical hardware clock. Shalom Toledo (9): mlxsw: cmd: Free running clock PCI BAR and offsets via query firmware mlxsw: core: Add a new interface for reading the hardware free running clock mlxsw: pci: Query free running clock PCI BAR and offsets mlxsw: reg: Add Management UTC Register mlxsw: reg: Add Management Pulse Per Second Register ptp: ptp_clock: Publish scaled_ppm_to_ppb mlxsw: spectrum_ptp: Add implementation for physical hardware clock operations mlxsw: spectrum: PTP physical hardware clock initialization selftests: ptp: Add Physical Hardware Clock test drivers/net/ethernet/mellanox/mlxsw/Makefile | 1 + drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 + drivers/net/ethernet/mellanox/mlxsw/core.c | 12 + drivers/net/ethernet/mellanox/mlxsw/core.h | 8 +- drivers/net/ethernet/mellanox/mlxsw/pci.c | 32 +++ drivers/net/ethernet/mellanox/mlxsw/pci_hw.h | 3 + drivers/net/ethernet/mellanox/mlxsw/reg.h | 103 +++++++ .../net/ethernet/mellanox/mlxsw/spectrum.c | 36 +++ .../net/ethernet/mellanox/mlxsw/spectrum.h | 3 + .../ethernet/mellanox/mlxsw/spectrum_ptp.c | 267 ++++++++++++++++++ .../ethernet/mellanox/mlxsw/spectrum_ptp.h | 44 +++ drivers/ptp/ptp_clock.c | 5 +- include/linux/ptp_clock_kernel.h | 8 + tools/testing/selftests/ptp/phc.sh | 166 +++++++++++ 14 files changed, 697 insertions(+), 3 deletions(-) create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h create mode 100755 tools/testing/selftests/ptp/phc.sh -- 2.20.1