Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2)  /***************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * Copyright (C) 2007-2010 SMSC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #ifndef _SMSC75XX_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #define _SMSC75XX_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) /* Tx command words */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #define TX_CMD_A_LSO			(0x08000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #define TX_CMD_A_IPE			(0x04000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #define TX_CMD_A_TPE			(0x02000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #define TX_CMD_A_IVTG			(0x01000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) #define TX_CMD_A_RVTG			(0x00800000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) #define TX_CMD_A_FCS			(0x00400000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) #define TX_CMD_A_LEN			(0x000FFFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #define TX_CMD_B_MSS			(0x3FFF0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) #define TX_CMD_B_MSS_SHIFT		(16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #define TX_MSS_MIN			((u16)8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) #define TX_CMD_B_VTAG			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) /* Rx command words */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #define RX_CMD_A_ICE			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) #define RX_CMD_A_TCE			(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) #define RX_CMD_A_IPV			(0x20000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #define RX_CMD_A_PID			(0x18000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) #define RX_CMD_A_PID_NIP		(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) #define RX_CMD_A_PID_TCP		(0x08000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) #define RX_CMD_A_PID_UDP		(0x10000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) #define RX_CMD_A_PID_PP			(0x18000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) #define RX_CMD_A_PFF			(0x04000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) #define RX_CMD_A_BAM			(0x02000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) #define RX_CMD_A_MAM			(0x01000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) #define RX_CMD_A_FVTG			(0x00800000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) #define RX_CMD_A_RED			(0x00400000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) #define RX_CMD_A_RWT			(0x00200000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) #define RX_CMD_A_RUNT			(0x00100000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) #define RX_CMD_A_LONG			(0x00080000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) #define RX_CMD_A_RXE			(0x00040000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) #define RX_CMD_A_DRB			(0x00020000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) #define RX_CMD_A_FCS			(0x00010000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) #define RX_CMD_A_UAM			(0x00008000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) #define RX_CMD_A_LCSM			(0x00004000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) #define RX_CMD_A_LEN			(0x00003FFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) #define RX_CMD_B_CSUM			(0xFFFF0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) #define RX_CMD_B_CSUM_SHIFT		(16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) #define RX_CMD_B_VTAG			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) /* SCSRs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) #define ID_REV				(0x0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) #define FPGA_REV			(0x0004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) #define BOND_CTL			(0x0008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) #define INT_STS				(0x000C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) #define INT_STS_RDFO_INT		(0x00400000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) #define INT_STS_TXE_INT			(0x00200000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) #define INT_STS_MACRTO_INT		(0x00100000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) #define INT_STS_TX_DIS_INT		(0x00080000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) #define INT_STS_RX_DIS_INT		(0x00040000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) #define INT_STS_PHY_INT_		(0x00020000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) #define INT_STS_MAC_ERR_INT		(0x00008000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) #define INT_STS_TDFU			(0x00004000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) #define INT_STS_TDFO			(0x00002000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) #define INT_STS_GPIOS			(0x00000FFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) #define INT_STS_CLEAR_ALL		(0xFFFFFFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) #define HW_CFG				(0x0010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) #define HW_CFG_SMDET_STS		(0x00008000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) #define HW_CFG_SMDET_EN			(0x00004000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) #define HW_CFG_EEM			(0x00002000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) #define HW_CFG_RST_PROTECT		(0x00001000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) #define HW_CFG_PORT_SWAP		(0x00000800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) #define HW_CFG_PHY_BOOST		(0x00000600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) #define HW_CFG_PHY_BOOST_NORMAL		(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) #define HW_CFG_PHY_BOOST_4		(0x00002000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) #define HW_CFG_PHY_BOOST_8		(0x00004000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) #define HW_CFG_PHY_BOOST_12		(0x00006000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) #define HW_CFG_LEDB			(0x00000100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) #define HW_CFG_BIR			(0x00000080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) #define HW_CFG_SBP			(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) #define HW_CFG_IME			(0x00000020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) #define HW_CFG_MEF			(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) #define HW_CFG_ETC			(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) #define HW_CFG_BCE			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) #define HW_CFG_LRST			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) #define HW_CFG_SRST			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) #define PMT_CTL				(0x0014)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) #define PMT_CTL_PHY_PWRUP		(0x00000400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) #define PMT_CTL_RES_CLR_WKP_EN		(0x00000100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) #define PMT_CTL_DEV_RDY			(0x00000080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) #define PMT_CTL_SUS_MODE		(0x00000060)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) #define PMT_CTL_SUS_MODE_0		(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) #define PMT_CTL_SUS_MODE_1		(0x00000020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) #define PMT_CTL_SUS_MODE_2		(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) #define PMT_CTL_SUS_MODE_3		(0x00000060)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) #define PMT_CTL_PHY_RST			(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) #define PMT_CTL_WOL_EN			(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) #define PMT_CTL_ED_EN			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) #define PMT_CTL_WUPS			(0x00000003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) #define PMT_CTL_WUPS_NO			(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #define PMT_CTL_WUPS_ED			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) #define PMT_CTL_WUPS_WOL		(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #define PMT_CTL_WUPS_MULTI		(0x00000003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #define LED_GPIO_CFG			(0x0018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #define LED_GPIO_CFG_LED2_FUN_SEL	(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) #define LED_GPIO_CFG_LED10_FUN_SEL	(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) #define LED_GPIO_CFG_LEDGPIO_EN		(0x0000F000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) #define LED_GPIO_CFG_LEDGPIO_EN_0	(0x00001000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) #define LED_GPIO_CFG_LEDGPIO_EN_1	(0x00002000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define LED_GPIO_CFG_LEDGPIO_EN_2	(0x00004000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) #define LED_GPIO_CFG_LEDGPIO_EN_3	(0x00008000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) #define LED_GPIO_CFG_GPBUF		(0x00000F00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) #define LED_GPIO_CFG_GPBUF_0		(0x00000100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) #define LED_GPIO_CFG_GPBUF_1		(0x00000200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) #define LED_GPIO_CFG_GPBUF_2		(0x00000400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) #define LED_GPIO_CFG_GPBUF_3		(0x00000800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #define LED_GPIO_CFG_GPDIR		(0x000000F0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) #define LED_GPIO_CFG_GPDIR_0		(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define LED_GPIO_CFG_GPDIR_1		(0x00000020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define LED_GPIO_CFG_GPDIR_2		(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #define LED_GPIO_CFG_GPDIR_3		(0x00000080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) #define LED_GPIO_CFG_GPDATA		(0x0000000F)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define LED_GPIO_CFG_GPDATA_0		(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #define LED_GPIO_CFG_GPDATA_1		(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) #define LED_GPIO_CFG_GPDATA_2		(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #define LED_GPIO_CFG_GPDATA_3		(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) #define GPIO_CFG			(0x001C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) #define GPIO_CFG_SHIFT			(24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) #define GPIO_CFG_GPEN			(0xFF000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #define GPIO_CFG_GPBUF			(0x00FF0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define GPIO_CFG_GPDIR			(0x0000FF00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #define GPIO_CFG_GPDATA			(0x000000FF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) #define GPIO_WAKE			(0x0020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) #define GPIO_WAKE_PHY_LINKUP_EN		(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) #define GPIO_WAKE_POL			(0x0FFF0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) #define GPIO_WAKE_POL_SHIFT		(16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #define GPIO_WAKE_WK			(0x00000FFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) #define DP_SEL				(0x0024)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) #define DP_SEL_DPRDY			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) #define DP_SEL_RSEL			(0x0000000F)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) #define DP_SEL_URX			(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) #define DP_SEL_VHF			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) #define DP_SEL_VHF_HASH_LEN		(16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) #define DP_SEL_VHF_VLAN_LEN		(128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) #define DP_SEL_LSO_HEAD			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) #define DP_SEL_FCT_RX			(0x00000003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) #define DP_SEL_FCT_TX			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) #define DP_SEL_DESCRIPTOR		(0x00000005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) #define DP_SEL_WOL			(0x00000006)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) #define DP_CMD				(0x0028)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) #define DP_CMD_WRITE			(0x01)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) #define DP_CMD_READ			(0x00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) #define DP_ADDR				(0x002C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) #define DP_DATA				(0x0030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) #define BURST_CAP			(0x0034)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) #define BURST_CAP_MASK			(0x0000000F)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) #define INT_EP_CTL			(0x0038)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) #define INT_EP_CTL_INTEP_ON		(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) #define INT_EP_CTL_RDFO_EN		(0x00400000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) #define INT_EP_CTL_TXE_EN		(0x00200000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) #define INT_EP_CTL_MACROTO_EN		(0x00100000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) #define INT_EP_CTL_TX_DIS_EN		(0x00080000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) #define INT_EP_CTL_RX_DIS_EN		(0x00040000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) #define INT_EP_CTL_PHY_EN_		(0x00020000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) #define INT_EP_CTL_MAC_ERR_EN		(0x00008000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) #define INT_EP_CTL_TDFU_EN		(0x00004000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) #define INT_EP_CTL_TDFO_EN		(0x00002000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) #define INT_EP_CTL_RX_FIFO_EN		(0x00001000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) #define INT_EP_CTL_GPIOX_EN		(0x00000FFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) #define BULK_IN_DLY			(0x003C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) #define BULK_IN_DLY_MASK		(0xFFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) #define E2P_CMD				(0x0040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) #define E2P_CMD_BUSY			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) #define E2P_CMD_MASK			(0x70000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) #define E2P_CMD_READ			(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) #define E2P_CMD_EWDS			(0x10000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) #define E2P_CMD_EWEN			(0x20000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) #define E2P_CMD_WRITE			(0x30000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) #define E2P_CMD_WRAL			(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) #define E2P_CMD_ERASE			(0x50000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) #define E2P_CMD_ERAL			(0x60000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) #define E2P_CMD_RELOAD			(0x70000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) #define E2P_CMD_TIMEOUT			(0x00000400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) #define E2P_CMD_LOADED			(0x00000200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) #define E2P_CMD_ADDR			(0x000001FF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) #define MAX_EEPROM_SIZE			(512)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) #define E2P_DATA			(0x0044)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) #define E2P_DATA_MASK_			(0x000000FF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) #define RFE_CTL				(0x0060)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) #define RFE_CTL_TCPUDP_CKM		(0x00001000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) #define RFE_CTL_IP_CKM			(0x00000800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) #define RFE_CTL_AB			(0x00000400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) #define RFE_CTL_AM			(0x00000200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) #define RFE_CTL_AU			(0x00000100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) #define RFE_CTL_VS			(0x00000080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) #define RFE_CTL_UF			(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) #define RFE_CTL_VF			(0x00000020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) #define RFE_CTL_SPF			(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) #define RFE_CTL_MHF			(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) #define RFE_CTL_DHF			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) #define RFE_CTL_DPF			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) #define RFE_CTL_RST_RF			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) #define VLAN_TYPE			(0x0064)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) #define VLAN_TYPE_MASK			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) #define FCT_RX_CTL			(0x0090)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) #define FCT_RX_CTL_EN			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) #define FCT_RX_CTL_RST			(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) #define FCT_RX_CTL_SBF			(0x02000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) #define FCT_RX_CTL_OVERFLOW		(0x01000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) #define FCT_RX_CTL_FRM_DROP		(0x00800000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) #define FCT_RX_CTL_RX_NOT_EMPTY		(0x00400000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) #define FCT_RX_CTL_RX_EMPTY		(0x00200000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) #define FCT_RX_CTL_RX_DISABLED		(0x00100000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) #define FCT_RX_CTL_RXUSED		(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) #define FCT_TX_CTL			(0x0094)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) #define FCT_TX_CTL_EN			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) #define FCT_TX_CTL_RST			(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) #define FCT_TX_CTL_TX_NOT_EMPTY		(0x00400000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) #define FCT_TX_CTL_TX_EMPTY		(0x00200000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) #define FCT_TX_CTL_TX_DISABLED		(0x00100000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) #define FCT_TX_CTL_TXUSED		(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) #define FCT_RX_FIFO_END			(0x0098)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) #define FCT_RX_FIFO_END_MASK		(0x0000007F)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) #define FCT_TX_FIFO_END			(0x009C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) #define FCT_TX_FIFO_END_MASK		(0x0000003F)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) #define FCT_FLOW			(0x00A0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) #define FCT_FLOW_THRESHOLD_OFF		(0x00007F00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) #define FCT_FLOW_THRESHOLD_OFF_SHIFT	(8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) #define FCT_FLOW_THRESHOLD_ON		(0x0000007F)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) /* MAC CSRs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) #define MAC_CR				(0x100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) #define MAC_CR_ADP			(0x00002000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) #define MAC_CR_ADD			(0x00001000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) #define MAC_CR_ASD			(0x00000800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) #define MAC_CR_INT_LOOP			(0x00000400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) #define MAC_CR_BOLMT			(0x000000C0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) #define MAC_CR_FDPX			(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) #define MAC_CR_CFG			(0x00000006)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) #define MAC_CR_CFG_10			(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) #define MAC_CR_CFG_100			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) #define MAC_CR_CFG_1000			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) #define MAC_CR_RST			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) #define MAC_RX				(0x104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) #define MAC_RX_MAX_SIZE			(0x3FFF0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) #define MAC_RX_MAX_SIZE_SHIFT		(16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) #define MAC_RX_FCS_STRIP		(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) #define MAC_RX_FSE			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) #define MAC_RX_RXD			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) #define MAC_RX_RXEN			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) #define MAC_TX				(0x108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) #define MAC_TX_BFCS			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) #define MAC_TX_TXD			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) #define MAC_TX_TXEN			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) #define FLOW				(0x10C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) #define FLOW_FORCE_FC			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) #define FLOW_TX_FCEN			(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) #define FLOW_RX_FCEN			(0x20000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) #define FLOW_FPF			(0x10000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) #define FLOW_PAUSE_TIME			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) #define RAND_SEED			(0x110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) #define RAND_SEED_MASK			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) #define ERR_STS				(0x114)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) #define ERR_STS_FCS_ERR			(0x00000100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) #define ERR_STS_LFRM_ERR		(0x00000080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) #define ERR_STS_RUNT_ERR		(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) #define ERR_STS_COLLISION_ERR		(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) #define ERR_STS_ALIGN_ERR		(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) #define ERR_STS_URUN_ERR		(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) #define RX_ADDRH			(0x118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) #define RX_ADDRH_MASK			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) #define RX_ADDRL			(0x11C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) #define MII_ACCESS			(0x120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) #define MII_ACCESS_PHY_ADDR		(0x0000F800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) #define MII_ACCESS_PHY_ADDR_SHIFT	(11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) #define MII_ACCESS_REG_ADDR		(0x000007C0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) #define MII_ACCESS_REG_ADDR_SHIFT	(6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) #define MII_ACCESS_READ			(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) #define MII_ACCESS_WRITE		(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) #define MII_ACCESS_BUSY			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) #define MII_DATA			(0x124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) #define MII_DATA_MASK			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) #define WUCSR				(0x140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) #define WUCSR_PFDA_FR			(0x00000080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) #define WUCSR_WUFR			(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) #define WUCSR_MPR			(0x00000020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) #define WUCSR_BCAST_FR			(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) #define WUCSR_PFDA_EN			(0x00000008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) #define WUCSR_WUEN			(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) #define WUCSR_MPEN			(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) #define WUCSR_BCST_EN			(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) #define WUF_CFGX			(0x144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) #define WUF_CFGX_EN			(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) #define WUF_CFGX_ATYPE			(0x03000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) #define WUF_CFGX_ATYPE_UNICAST		(0x00000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) #define WUF_CFGX_ATYPE_MULTICAST	(0x02000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) #define WUF_CFGX_ATYPE_ALL		(0x03000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) #define WUF_CFGX_PATTERN_OFFSET		(0x007F0000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) #define WUF_CFGX_PATTERN_OFFSET_SHIFT	(16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) #define WUF_CFGX_CRC16			(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) #define WUF_NUM				(8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) #define WUF_MASKX			(0x170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) #define WUF_MASKX_AVALID		(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) #define WUF_MASKX_ATYPE			(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) #define ADDR_FILTX			(0x300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) #define ADDR_FILTX_FB_VALID		(0x80000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) #define ADDR_FILTX_FB_TYPE		(0x40000000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) #define ADDR_FILTX_FB_ADDRHI		(0x0000FFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) #define ADDR_FILTX_SB_ADDRLO		(0xFFFFFFFF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) #define WUCSR2				(0x500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) #define WUCSR2_NS_RCD			(0x00000040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) #define WUCSR2_ARP_RCD			(0x00000020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) #define WUCSR2_TCPSYN_RCD		(0x00000010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) #define WUCSR2_NS_OFFLOAD		(0x00000004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) #define WUCSR2_ARP_OFFLOAD		(0x00000002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) #define WUCSR2_TCPSYN_OFFLOAD		(0x00000001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) #define WOL_FIFO_STS			(0x504)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) #define IPV6_ADDRX			(0x510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) #define IPV4_ADDRX			(0x590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) /* Vendor-specific PHY Definitions */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) /* Mode Control/Status Register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) #define PHY_MODE_CTRL_STS		(17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) #define MODE_CTRL_STS_EDPWRDOWN		((u16)0x2000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) #define MODE_CTRL_STS_ENERGYON		((u16)0x0002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) #define PHY_INT_SRC			(29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) #define PHY_INT_SRC_ENERGY_ON		((u16)0x0080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) #define PHY_INT_SRC_ANEG_COMP		((u16)0x0040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) #define PHY_INT_SRC_REMOTE_FAULT	((u16)0x0020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) #define PHY_INT_SRC_LINK_DOWN		((u16)0x0010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) #define PHY_INT_SRC_CLEAR_ALL		((u16)0xffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) #define PHY_INT_MASK			(30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) #define PHY_INT_MASK_ENERGY_ON		((u16)0x0080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) #define PHY_INT_MASK_ANEG_COMP		((u16)0x0040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) #define PHY_INT_MASK_REMOTE_FAULT	((u16)0x0020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) #define PHY_INT_MASK_LINK_DOWN		((u16)0x0010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) #define PHY_INT_MASK_DEFAULT		(PHY_INT_MASK_ANEG_COMP | \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 					 PHY_INT_MASK_LINK_DOWN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) #define PHY_SPECIAL			(31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) #define PHY_SPECIAL_SPD			((u16)0x001C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) #define PHY_SPECIAL_SPD_10HALF		((u16)0x0004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) #define PHY_SPECIAL_SPD_10FULL		((u16)0x0014)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) #define PHY_SPECIAL_SPD_100HALF		((u16)0x0008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) #define PHY_SPECIAL_SPD_100FULL		((u16)0x0018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) /* USB Vendor Requests */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) #define USB_VENDOR_REQUEST_WRITE_REGISTER	0xA0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) #define USB_VENDOR_REQUEST_READ_REGISTER	0xA1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) #define USB_VENDOR_REQUEST_GET_STATS		0xA2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) /* Interrupt Endpoint status word bitfields */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) #define INT_ENP_RDFO_INT		((u32)BIT(22))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) #define INT_ENP_TXE_INT			((u32)BIT(21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) #define INT_ENP_TX_DIS_INT		((u32)BIT(19))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) #define INT_ENP_RX_DIS_INT		((u32)BIT(18))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) #define INT_ENP_PHY_INT			((u32)BIT(17))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) #define INT_ENP_MAC_ERR_INT		((u32)BIT(15))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) #define INT_ENP_RX_FIFO_DATA_INT	((u32)BIT(12))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) #endif /* _SMSC75XX_H */