net: lan743x: Add support for PTP-IO Event Output (Periodic Output)

Add support for PTP-IO Event Output (Periodic Output - perout) for
PCI11010/PCI11414 chips

Signed-off-by: Raju Lakkaraju <Raju.Lakkaraju@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Raju Lakkaraju
2022-03-17 16:13:10 +05:30
committed by David S. Miller
parent 60942c397a
commit e432dd3bee
3 changed files with 250 additions and 2 deletions

View File

@@ -336,6 +336,7 @@
#define INT_MOD_CFG9 (0x7E4)
#define PTP_CMD_CTL (0x0A00)
#define PTP_CMD_CTL_PTP_LTC_TARGET_READ_ BIT(13)
#define PTP_CMD_CTL_PTP_CLK_STP_NSEC_ BIT(6)
#define PTP_CMD_CTL_PTP_CLOCK_STEP_SEC_ BIT(5)
#define PTP_CMD_CTL_PTP_CLOCK_LOAD_ BIT(4)
@@ -357,6 +358,30 @@
(((value) & 0x7) << (1 + ((channel) << 2)))
#define PTP_GENERAL_CONFIG_RELOAD_ADD_X_(channel) (BIT((channel) << 2))
#define HS_PTP_GENERAL_CONFIG (0x0A04)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_X_MASK_(channel) \
(0xf << (4 + ((channel) << 2)))
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_100NS_ (0)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_500NS_ (1)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_1US_ (2)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_5US_ (3)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_10US_ (4)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_50US_ (5)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_100US_ (6)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_500US_ (7)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_1MS_ (8)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_5MS_ (9)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_10MS_ (10)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_50MS_ (11)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_100MS_ (12)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_200MS_ (13)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_TOGG_ (14)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_INT_ (15)
#define HS_PTP_GENERAL_CONFIG_CLOCK_EVENT_X_SET_(channel, value) \
(((value) & 0xf) << (4 + ((channel) << 2)))
#define HS_PTP_GENERAL_CONFIG_EVENT_POL_X_(channel) (BIT(1 + ((channel) * 2)))
#define HS_PTP_GENERAL_CONFIG_RELOAD_ADD_X_(channel) (BIT((channel) * 2))
#define PTP_INT_STS (0x0A08)
#define PTP_INT_IO_FE_MASK_ GENMASK(31, 24)
#define PTP_INT_IO_FE_SHIFT_ (24)
@@ -364,9 +389,17 @@
#define PTP_INT_IO_RE_MASK_ GENMASK(23, 16)
#define PTP_INT_IO_RE_SHIFT_ (16)
#define PTP_INT_IO_RE_SET_(channel) BIT(16 + (channel))
#define PTP_INT_TX_TS_OVRFL_INT_ BIT(14)
#define PTP_INT_TX_SWTS_ERR_INT_ BIT(13)
#define PTP_INT_TX_TS_INT_ BIT(12)
#define PTP_INT_RX_TS_OVRFL_INT_ BIT(9)
#define PTP_INT_RX_TS_INT_ BIT(8)
#define PTP_INT_TIMER_INT_B_ BIT(1)
#define PTP_INT_TIMER_INT_A_ BIT(0)
#define PTP_INT_EN_SET (0x0A0C)
#define PTP_INT_EN_FE_EN_SET_(channel) BIT(24 + (channel))
#define PTP_INT_EN_RE_EN_SET_(channel) BIT(16 + (channel))
#define PTP_INT_EN_TIMER_SET_(channel) BIT(channel)
#define PTP_INT_EN_CLR (0x0A10)
#define PTP_INT_EN_FE_EN_CLR_(channel) BIT(24 + (channel))
#define PTP_INT_EN_RE_EN_CLR_(channel) BIT(16 + (channel))