#ifndef PRUETH_PTP_H
#define PRUETH_PTP_H
#define RX_SYNC_TIMESTAMP_OFFSET_P1 0x8
#define RX_PDELAY_REQ_TIMESTAMP_OFFSET_P1 0x14
#define DISABLE_PTP_FRAME_FORWARDING_CTRL_OFFSET 0x14
#define RX_PDELAY_RESP_TIMESTAMP_OFFSET_P1 0x20
#define RX_SYNC_TIMESTAMP_OFFSET_P2 0x2c
#define RX_PDELAY_REQ_TIMESTAMP_OFFSET_P2 0x38
#define RX_PDELAY_RESP_TIMESTAMP_OFFSET_P2 0x44
#define TIMESYNC_DOMAIN_NUMBER_LIST 0x50
#define P1_SMA_LINE_DELAY_OFFSET 0x52
#define P2_SMA_LINE_DELAY_OFFSET 0x56
#define TIMESYNC_SECONDS_COUNT_OFFSET 0x5a
#define TIMESYNC_TC_RCF_OFFSET 0x60
#define DUT_IS_MASTER_OFFSET 0x64
#define MASTER_PORT_NUM_OFFSET 0x65
#define SYNC_MASTER_MAC_OFFSET 0x66
#define TX_TS_NOTIFICATION_OFFSET_SYNC_P1 0x6c
#define TX_TS_NOTIFICATION_OFFSET_PDEL_REQ_P1 0x6d
#define TX_TS_NOTIFICATION_OFFSET_PDEL_RES_P1 0x6e
#define TX_TS_NOTIFICATION_OFFSET_SYNC_P2 0x6f
#define TX_TS_NOTIFICATION_OFFSET_PDEL_REQ_P2 0x70
#define TX_TS_NOTIFICATION_OFFSET_PDEL_RES_P2 0x71
#define TX_SYNC_TIMESTAMP_OFFSET_P1 0x72
#define TX_PDELAY_REQ_TIMESTAMP_OFFSET_P1 0x7e
#define TX_PDELAY_RESP_TIMESTAMP_OFFSET_P1 0x8a
#define TX_SYNC_TIMESTAMP_OFFSET_P2 0x96
#define TX_PDELAY_REQ_TIMESTAMP_OFFSET_P2 0xa2
#define TX_PDELAY_RESP_TIMESTAMP_OFFSET_P2 0xae
#define TIMESYNC_CTRL_VAR_OFFSET 0xba
#define DISABLE_SWITCH_SYNC_RELAY_OFFSET 0xbb
#define MII_RX_CORRECTION_OFFSET 0xbc
#define MII_TX_CORRECTION_OFFSET 0xbe
#define TIMESYNC_CMP1_CMP_OFFSET 0xc0
#define TIMESYNC_SYNC0_CMP_OFFSET 0xc8
#define TIMESYNC_CMP1_PERIOD_OFFSET 0xd0
#define TIMESYNC_SYNC0_WIDTH_OFFSET 0xd4
#define SINGLE_STEP_IEP_OFFSET_P1 0xd8
#define SINGLE_STEP_SECONDS_OFFSET_P1 0xe0
#define SINGLE_STEP_IEP_OFFSET_P2 0xe8
#define SINGLE_STEP_SECONDS_OFFSET_P2 0xf0
#define LINK_LOCAL_FRAME_HAS_HSR_TAG 0xf8
#define PTP_PREV_TX_TIMESTAMP_P1 0xf9
#define PTP_PREV_TX_TIMESTAMP_P2 0x101
#define PTP_CLK_IDENTITY_OFFSET 0x109
#define PTP_SCRATCH_MEM 0x111
#define PTP_IPV4_UDP_E2E_ENABLE 0x121
enum {
PRUETH_PTP_SYNC,
PRUETH_PTP_DLY_REQ,
PRUETH_PTP_DLY_RESP,
PRUETH_PTP_TS_EVENTS,
};
#define PRUETH_PTP_TS_SIZE 12
#define PRUETH_PTP_TS_NOTIFY_SIZE 1
#define PRUETH_PTP_TS_NOTIFY_MASK 0xff
#define TIMESYNC_CTRL_BG_ENABLE BIT(0)
#define TIMESYNC_CTRL_FORCED_2STEP BIT(1)
static inline u32 icssm_prueth_tx_ts_offs_get(u8 port, u8 event)
{
return TX_SYNC_TIMESTAMP_OFFSET_P1 + port *
PRUETH_PTP_TS_EVENTS * PRUETH_PTP_TS_SIZE +
event * PRUETH_PTP_TS_SIZE;
}
static inline u32 icssm_prueth_tx_ts_notify_offs_get(u8 port, u8 event)
{
return TX_TS_NOTIFICATION_OFFSET_SYNC_P1 +
PRUETH_PTP_TS_EVENTS * PRUETH_PTP_TS_NOTIFY_SIZE * port +
event * PRUETH_PTP_TS_NOTIFY_SIZE;
}
#endif