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

source code of linux/drivers/net/ethernet/stmicro/stmmac/stmmac_est.h