0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _SR9700_H
0009 #define _SR9700_H
0010
0011
0012
0013
0014 #define SR_NCR 0x00
0015 #define NCR_RST (1 << 0)
0016 #define NCR_LBK (3 << 1)
0017 #define NCR_FDX (1 << 3)
0018 #define NCR_WAKEEN (1 << 6)
0019
0020 #define SR_NSR 0x01
0021 #define NSR_RXRDY (1 << 0)
0022 #define NSR_RXOV (1 << 1)
0023 #define NSR_TX1END (1 << 2)
0024 #define NSR_TX2END (1 << 3)
0025 #define NSR_TXFULL (1 << 4)
0026 #define NSR_WAKEST (1 << 5)
0027 #define NSR_LINKST (1 << 6)
0028 #define NSR_SPEED (1 << 7)
0029
0030 #define SR_TCR 0x02
0031 #define TCR_CRC_DIS (1 << 1)
0032 #define TCR_PAD_DIS (1 << 2)
0033 #define TCR_LC_CARE (1 << 3)
0034 #define TCR_CRS_CARE (1 << 4)
0035 #define TCR_EXCECM (1 << 5)
0036 #define TCR_LF_EN (1 << 6)
0037
0038 #define SR_TSR1 0x03
0039 #define TSR1_EC (1 << 2)
0040 #define TSR1_COL (1 << 3)
0041 #define TSR1_LC (1 << 4)
0042 #define TSR1_NC (1 << 5)
0043 #define TSR1_LOC (1 << 6)
0044 #define TSR1_TLF (1 << 7)
0045
0046 #define SR_TSR2 0x04
0047 #define TSR2_EC (1 << 2)
0048 #define TSR2_COL (1 << 3)
0049 #define TSR2_LC (1 << 4)
0050 #define TSR2_NC (1 << 5)
0051 #define TSR2_LOC (1 << 6)
0052 #define TSR2_TLF (1 << 7)
0053
0054 #define SR_RCR 0x05
0055 #define RCR_RXEN (1 << 0)
0056 #define RCR_PRMSC (1 << 1)
0057 #define RCR_RUNT (1 << 2)
0058 #define RCR_ALL (1 << 3)
0059 #define RCR_DIS_CRC (1 << 4)
0060 #define RCR_DIS_LONG (1 << 5)
0061
0062 #define SR_RSR 0x06
0063 #define RSR_AE (1 << 2)
0064 #define RSR_MF (1 << 6)
0065 #define RSR_RF (1 << 7)
0066
0067 #define SR_ROCR 0x07
0068 #define ROCR_ROC (0x7F << 0)
0069 #define ROCR_RXFU (1 << 7)
0070
0071 #define SR_BPTR 0x08
0072 #define BPTR_JPT (0x0F << 0)
0073 #define BPTR_BPHW (0x0F << 4)
0074
0075 #define SR_FCTR 0x09
0076 #define FCTR_LWOT (0x0F << 0)
0077 #define FCTR_HWOT (0x0F << 4)
0078
0079 #define SR_FCR 0x0A
0080 #define FCR_FLCE (1 << 0)
0081 #define FCR_BKPA (1 << 4)
0082 #define FCR_TXPEN (1 << 5)
0083 #define FCR_TXPF (1 << 6)
0084 #define FCR_TXP0 (1 << 7)
0085
0086 #define SR_EPCR 0x0B
0087 #define EPCR_ERRE (1 << 0)
0088 #define EPCR_ERPRW (1 << 1)
0089 #define EPCR_ERPRR (1 << 2)
0090 #define EPCR_EPOS (1 << 3)
0091 #define EPCR_WEP (1 << 4)
0092
0093 #define SR_EPAR 0x0C
0094 #define EPAR_EROA (0x3F << 0)
0095 #define EPAR_PHY_ADR_MASK (0x03 << 6)
0096 #define EPAR_PHY_ADR (0x01 << 6)
0097
0098 #define SR_EPDR 0x0D
0099
0100 #define SR_WCR 0x0F
0101 #define WCR_MAGICST (1 << 0)
0102 #define WCR_LINKST (1 << 2)
0103 #define WCR_MAGICEN (1 << 3)
0104 #define WCR_LINKEN (1 << 5)
0105
0106 #define SR_PAR 0x10
0107
0108 #define SR_MAR 0x16
0109
0110
0111 #define SR_PRR 0x1F
0112 #define PRR_PHY_RST (1 << 0)
0113
0114 #define SR_TWPAL 0x20
0115
0116 #define SR_TWPAH 0x21
0117
0118 #define SR_TRPAL 0x22
0119
0120 #define SR_TRPAH 0x23
0121
0122 #define SR_RWPAL 0x24
0123
0124 #define SR_RWPAH 0x25
0125
0126 #define SR_RRPAL 0x26
0127
0128 #define SR_RRPAH 0x27
0129
0130 #define SR_VID 0x28
0131
0132 #define SR_PID 0x2A
0133
0134 #define SR_CHIPR 0x2C
0135
0136
0137 #define SR_USBDA 0xF0
0138 #define USBDA_USBFA (0x7F << 0)
0139
0140 #define SR_RXC 0xF1
0141
0142 #define SR_TXC_USBS 0xF2
0143 #define TXC_USBS_TXC0 (1 << 0)
0144 #define TXC_USBS_TXC1 (1 << 1)
0145 #define TXC_USBS_TXC2 (1 << 2)
0146 #define TXC_USBS_EP1RDY (1 << 5)
0147 #define TXC_USBS_SUSFLAG (1 << 6)
0148 #define TXC_USBS_RXFAULT (1 << 7)
0149
0150 #define SR_USBC 0xF4
0151 #define USBC_EP3NAK (1 << 4)
0152 #define USBC_EP3ACK (1 << 5)
0153
0154
0155 #define SR_RD_REGS 0x00
0156 #define SR_WR_REGS 0x01
0157 #define SR_WR_REG 0x03
0158 #define SR_REQ_RD_REG (USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE)
0159 #define SR_REQ_WR_REG (USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE)
0160
0161
0162 #define SR_SHARE_TIMEOUT 1000
0163 #define SR_EEPROM_LEN 256
0164 #define SR_MCAST_SIZE 8
0165 #define SR_MCAST_ADDR_FLAG 0x80
0166 #define SR_MCAST_MAX 64
0167 #define SR_TX_OVERHEAD 2
0168 #define SR_RX_OVERHEAD 7
0169
0170 #endif