xref: /linux/drivers/net/ethernet/stmicro/stmmac/stmmac_est.h (revision 06d07429858317ded2db7986113a9e0129cd599b)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2023, Intel Corporation
4  * stmmac EST(802.3 Qbv) handling
5  */
6 
7 #define EST_GMAC4_OFFSET		0x00000c50
8 #define EST_XGMAC_OFFSET		0x00001050
9 
10 #define EST_CONTROL			0x00000000
11 #define EST_GMAC5_PTOV			GENMASK(31, 24)
12 #define EST_GMAC5_PTOV_SHIFT		24
13 #define EST_GMAC5_PTOV_MUL		6
14 #define EST_XGMAC_PTOV			GENMASK(31, 23)
15 #define EST_XGMAC_PTOV_SHIFT		23
16 #define EST_XGMAC_PTOV_MUL		9
17 #define EST_SSWL			BIT(1)
18 #define EST_EEST			BIT(0)
19 
20 #define EST_STATUS			0x00000008
21 #define EST_GMAC5_BTRL			GENMASK(11, 8)
22 #define EST_XGMAC_BTRL			GENMASK(15, 8)
23 #define EST_SWOL			BIT(7)
24 #define EST_SWOL_SHIFT			7
25 #define EST_CGCE			BIT(4)
26 #define EST_HLBS			BIT(3)
27 #define EST_HLBF			BIT(2)
28 #define EST_BTRE			BIT(1)
29 #define EST_SWLC			BIT(0)
30 
31 #define EST_SCH_ERR			0x00000010
32 
33 #define EST_FRM_SZ_ERR			0x00000014
34 
35 #define EST_FRM_SZ_CAP			0x00000018
36 #define EST_SZ_CAP_HBFS_MASK		GENMASK(14, 0)
37 #define EST_SZ_CAP_HBFQ_SHIFT		16
38 #define EST_SZ_CAP_HBFQ_MASK(val)		\
39 	({					\
40 		typeof(val) _val = (val);	\
41 		(_val > 4 ? GENMASK(18, 16) :	\
42 		 _val > 2 ? GENMASK(17, 16) :	\
43 		 BIT(16));			\
44 	})
45 
46 #define EST_INT_EN			0x00000020
47 #define EST_IECGCE			EST_CGCE
48 #define EST_IEHS			EST_HLBS
49 #define EST_IEHF			EST_HLBF
50 #define EST_IEBE			EST_BTRE
51 #define EST_IECC			EST_SWLC
52 
53 #define EST_GCL_CONTROL			0x00000030
54 #define EST_BTR_LOW			0x0
55 #define EST_BTR_HIGH			0x1
56 #define EST_CTR_LOW			0x2
57 #define EST_CTR_HIGH			0x3
58 #define EST_TER				0x4
59 #define EST_LLR				0x5
60 #define EST_ADDR_SHIFT			8
61 #define EST_GCRR			BIT(2)
62 #define EST_SRWO			BIT(0)
63 
64 #define EST_GCL_DATA			0x00000034
65