Aleksey Makarov 4086f2a06a octeontx2-af: Add support for Marvell PTP coprocessor
Precision Timestamping block found on Octeontx2
platform is an independent coprocessor and has
internal PTP hardware clock. Once configured PTP
runs independently and when a packet arrives
CGX hardware block gets the current timestamp
from PTP block and forwards the packet to NIX
by prepending timestamp to the packet.
This patch adds the pci driver for PTP block.
The driver gets registered by AF driver and does
initial configuration and exposes a mailbox function to
read and adjust PTP hardware clock. The mailbox function
is called by AF consumers like netdev drivers or
userspace drivers. Since PTP being a single block
in platform this driver helps in accessing PTP
block by any AF consumer.

Co-developed-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Aleksey Makarov <amakarov@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-08-24 18:15:45 -07:00

26 lines
419 B
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Marvell PTP driver
*
* Copyright (C) 2020 Marvell International Ltd.
*/
#ifndef PTP_H
#define PTP_H
#include <linux/timecounter.h>
#include <linux/time64.h>
#include <linux/spinlock.h>
struct ptp {
struct pci_dev *pdev;
void __iomem *reg_base;
u32 clock_rate;
};
struct ptp *ptp_get(void);
void ptp_put(struct ptp *ptp);
extern struct pci_driver ptp_driver;
#endif