hc
2024-11-01 7e970c18f85f99acc678d90128b6e01dce1bf273
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/* SPDX-License-Identifier: GPL-2.0-only */
/******************************************************************************
  PTP Header file
 
  Copyright (C) 2013  Vayavya Labs Pvt Ltd
 
 
  Author: Rayagond Kokatanur <rayagond@vayavyalabs.com>
******************************************************************************/
 
#ifndef    __STMMAC_PTP_H__
#define    __STMMAC_PTP_H__
 
#define PTP_XGMAC_OFFSET    0xd00
#define    PTP_GMAC4_OFFSET    0xb00
#define    PTP_GMAC3_X_OFFSET    0x700
 
/* IEEE 1588 PTP register offsets */
#define    PTP_TCR        0x00    /* Timestamp Control Reg */
#define    PTP_SSIR    0x04    /* Sub-Second Increment Reg */
#define    PTP_STSR    0x08    /* System Time – Seconds Regr */
#define    PTP_STNSR    0x0c    /* System Time – Nanoseconds Reg */
#define    PTP_STSUR    0x10    /* System Time – Seconds Update Reg */
#define    PTP_STNSUR    0x14    /* System Time – Nanoseconds Update Reg */
#define    PTP_TAR        0x18    /* Timestamp Addend Reg */
 
#define    PTP_STNSUR_ADDSUB_SHIFT    31
#define    PTP_DIGITAL_ROLLOVER_MODE    0x3B9ACA00    /* 10e9-1 ns */
#define    PTP_BINARY_ROLLOVER_MODE    0x80000000    /* ~0.466 ns */
 
/* PTP Timestamp control register defines */
#define    PTP_TCR_TSENA        BIT(0)    /* Timestamp Enable */
#define    PTP_TCR_TSCFUPDT    BIT(1)    /* Timestamp Fine/Coarse Update */
#define    PTP_TCR_TSINIT        BIT(2)    /* Timestamp Initialize */
#define    PTP_TCR_TSUPDT        BIT(3)    /* Timestamp Update */
#define    PTP_TCR_TSTRIG        BIT(4)    /* Timestamp Interrupt Trigger Enable */
#define    PTP_TCR_TSADDREG    BIT(5)    /* Addend Reg Update */
#define    PTP_TCR_TSENALL        BIT(8)    /* Enable Timestamp for All Frames */
#define    PTP_TCR_TSCTRLSSR    BIT(9)    /* Digital or Binary Rollover Control */
/* Enable PTP packet Processing for Version 2 Format */
#define    PTP_TCR_TSVER2ENA    BIT(10)
/* Enable Processing of PTP over Ethernet Frames */
#define    PTP_TCR_TSIPENA        BIT(11)
/* Enable Processing of PTP Frames Sent over IPv6-UDP */
#define    PTP_TCR_TSIPV6ENA    BIT(12)
/* Enable Processing of PTP Frames Sent over IPv4-UDP */
#define    PTP_TCR_TSIPV4ENA    BIT(13)
/* Enable Timestamp Snapshot for Event Messages */
#define    PTP_TCR_TSEVNTENA    BIT(14)
/* Enable Snapshot for Messages Relevant to Master */
#define    PTP_TCR_TSMSTRENA    BIT(15)
/* Select PTP packets for Taking Snapshots
 * On gmac4 specifically:
 * Enable SYNC, Pdelay_Req, Pdelay_Resp when TSEVNTENA is enabled.
 * or
 * Enable  SYNC, Follow_Up, Delay_Req, Delay_Resp, Pdelay_Req, Pdelay_Resp,
 * Pdelay_Resp_Follow_Up if TSEVNTENA is disabled
 */
#define    PTP_TCR_SNAPTYPSEL_1    BIT(16)
/* Enable MAC address for PTP Frame Filtering */
#define    PTP_TCR_TSENMACADDR    BIT(18)
 
/* SSIR defines */
#define    PTP_SSIR_SSINC_MASK        0xff
#define    GMAC4_PTP_SSIR_SSINC_SHIFT    16
 
#endif    /* __STMMAC_PTP_H__ */