xref: /linux/drivers/net/ethernet/broadcom/unimac.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef __UNIMAC_H
3 #define __UNIMAC_H
4 
5 #define UMAC_HD_BKP_CTRL		0x004
6 #define  HD_FC_EN			(1 << 0)
7 #define  HD_FC_BKOFF_OK			(1 << 1)
8 #define  IPG_CONFIG_RX_SHIFT		2
9 #define  IPG_CONFIG_RX_MASK		0x1F
10 #define UMAC_CMD			0x008
11 #define  CMD_TX_EN			(1 << 0)
12 #define  CMD_RX_EN			(1 << 1)
13 #define  CMD_SPEED_10			0
14 #define  CMD_SPEED_100			1
15 #define  CMD_SPEED_1000			2
16 #define  CMD_SPEED_2500			3
17 #define  CMD_SPEED_SHIFT		2
18 #define  CMD_SPEED_MASK			3
19 #define  CMD_PROMISC			(1 << 4)
20 #define  CMD_PAD_EN			(1 << 5)
21 #define  CMD_CRC_FWD			(1 << 6)
22 #define  CMD_PAUSE_FWD			(1 << 7)
23 #define  CMD_RX_PAUSE_IGNORE		(1 << 8)
24 #define  CMD_TX_ADDR_INS		(1 << 9)
25 #define  CMD_HD_EN			(1 << 10)
26 #define  CMD_SW_RESET_OLD		(1 << 11)
27 #define  CMD_SW_RESET			(1 << 13)
28 #define  CMD_LCL_LOOP_EN		(1 << 15)
29 #define  CMD_AUTO_CONFIG		(1 << 22)
30 #define  CMD_CNTL_FRM_EN		(1 << 23)
31 #define  CMD_NO_LEN_CHK			(1 << 24)
32 #define  CMD_RMT_LOOP_EN		(1 << 25)
33 #define  CMD_RX_ERR_DISC		(1 << 26)
34 #define  CMD_PRBL_EN			(1 << 27)
35 #define  CMD_TX_PAUSE_IGNORE		(1 << 28)
36 #define  CMD_TX_RX_EN			(1 << 29)
37 #define  CMD_RUNT_FILTER_DIS		(1 << 30)
38 #define UMAC_MAC0			0x00c
39 #define UMAC_MAC1			0x010
40 #define UMAC_MAX_FRAME_LEN		0x014
41 #define UMAC_PAUSE_QUANTA		0x018
42 #define UMAC_MODE			0x044
43 #define  MODE_LINK_STATUS		(1 << 5)
44 #define UMAC_FRM_TAG0			0x048		/* outer tag */
45 #define UMAC_FRM_TAG1			0x04c		/* inner tag */
46 #define UMAC_TX_IPG_LEN			0x05c
47 #define UMAC_EEE_CTRL			0x064
48 #define  EN_LPI_RX_PAUSE		(1 << 0)
49 #define  EN_LPI_TX_PFC			(1 << 1)
50 #define  EN_LPI_TX_PAUSE		(1 << 2)
51 #define  EEE_EN				(1 << 3)
52 #define  RX_FIFO_CHECK			(1 << 4)
53 #define  EEE_TX_CLK_DIS			(1 << 5)
54 #define  DIS_EEE_10M			(1 << 6)
55 #define  LP_IDLE_PREDICTION_MODE	(1 << 7)
56 #define UMAC_EEE_LPI_TIMER		0x068
57 #define UMAC_EEE_WAKE_TIMER		0x06C
58 #define UMAC_EEE_REF_COUNT		0x070
59 #define  EEE_REFERENCE_COUNT_MASK	0xffff
60 #define UMAC_RX_IPG_INV			0x078
61 #define UMAC_MACSEC_PROG_TX_CRC		0x310
62 #define UMAC_MACSEC_CTRL		0x314
63 #define UMAC_PAUSE_CTRL			0x330
64 #define UMAC_TX_FLUSH			0x334
65 #define UMAC_RX_FIFO_STATUS		0x338
66 #define UMAC_TX_FIFO_STATUS		0x33c
67 
68 #endif
69