1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #ifndef __DEV_IC_MTD8XXREG_H__
32 #define __DEV_IC_MTD8XXREG_H__
33
34 #define MTD_PCI_LOIO 0x10
35 #define MTD_PCI_LOMEM 0x14
36
37 #define MTD_TIMEOUT 1000
38
39 #define MII_OPCODE_RD 0x6000
40 #define MII_OPCODE_WR 0x5002
41
42
43
44
45 #define MTD_PAR0 0x00
46 #define MTD_PAR4 0x04
47 #define MTD_MAR0 0x08
48 #define MTD_MAR4 0x0C
49 #define MTD_TCRRCR 0x18
50 #define MTD_BCR 0x1C
51 #define MTD_TXPDR 0x20
52 #define MTD_RXPDR 0x24
53 #define MTD_RXCWP 0x28
54 #define MTD_TXLBA 0x2C
55 #define MTD_RXLBA 0x30
56 #define MTD_ISR 0x34
57 #define MTD_IMR 0x38
58 #define MTD_TSR 0x48
59 #define MTD_MIIMGT 0x40
60 #define MTD_PHYCSR 0x4C
61
62
63
64
65
66 #define RCR_RXS 0x00008000U
67 #define RCR_EIEN 0x00004000U
68 #define RCR_RFCEN 0x00002000U
69 #define RCR_NDFA 0x00001000U
70 #define RCR_RBLEN 0x00000800U
71 #define RCR_RPBL1 0x00000000U
72 #define RCR_RPBL4 0x00000100U
73 #define RCR_RPBL8 0x00000200U
74 #define RCR_RPBL16 0x00000300U
75 #define RCR_RPBL32 0x00000400U
76 #define RCR_RPBL64 0x00000500U
77 #define RCR_RPBL128 0x00000600U
78 #define RCR_RPBL512 0x00000700U
79 #define RCR_PROM 0x00000080U
80 #define RCR_AB 0x00000040U
81 #define RCR_AM 0x00000020U
82 #define RCR_ARP 0x00000008U
83 #define RCR_ALP 0x00000004U
84 #define RCR_SEP 0x00000002U
85 #define RCR_RE 0x00000001U
86
87
88
89
90
91 #define TCR_TXS 0x80000000U
92 #define TCR_BACKOPT 0x10000000U
93 #define TCR_FBACK 0x08000000U
94 #define TCR_ENHANCED 0x02000000U
95 #define TCR_TFCEN 0x01000000U
96 #define TCR_TFT64 0x00000000U
97 #define TCR_TFT32 0x00200000U
98 #define TCR_TFT128 0x00400000U
99 #define TCR_TFT256 0x00600000U
100 #define TCR_TFT512 0x00800000U
101 #define TCR_TFT768 0x00A00000U
102 #define TCR_TFT1024 0x00C00000U
103 #define TCR_TFTSF 0x00E00000U
104 #define TCR_FD 0x00100000U
105 #define TCR_PS 0x00080000U
106 #define TCR_TE 0x00040000U
107 #define TCR_LB 0x00020000U
108
109
110
111
112
113 #define BCR_PROG 0x00000200U
114 #define BCR_RLE 0x00000100U
115 #define BCR_RME 0x00000080U
116 #define BCR_WIE 0x00000040U
117
118 #define BCR_PBL1 0x00000000U
119 #define BCR_PBL4 0x00000008U
120 #define BCR_PBL8 0x00000010U
121 #define BCR_PBL16 0x00000018U
122 #define BCR_PBL32 0x00000020U
123 #define BCR_PBL64 0x00000028U
124 #define BCR_PBL128 0x00000030U
125 #define BCR_PBL512 0x00000038U
126 #define BCR_SWR 0x00000001U
127
128
129
130
131
132 #define ISR_PDF 0x00040000U
133 #define ISR_RFCON 0x00020000U
134 #define ISR_RFCOFF 0x00010000U
135 #define ISR_LSC 0x00008000U
136 #define ISR_ANC 0x00004000U
137 #define ISR_FBE 0x00002000U
138 #define ISR_ETMASK 0x00001800U
139 #define ISR_ET(x) ((x) & ISR_ETMASK)
140 #define ISR_ETPARITY 0x00000000U
141 #define ISR_ETMASTER 0x00000800U
142 #define ISR_ETTARGET 0x00001000U
143 #define ISR_TUNF 0x00000400U
144 #define ISR_ROVF 0x00000200U
145 #define ISR_ETI 0x00000100U
146 #define ISR_ERI 0x00000080U
147 #define ISR_CNTOVF 0x00000040U
148 #define ISR_RBU 0x00000020U
149 #define ISR_TBU 0x00000010U
150 #define ISR_TI 0x00000008U
151 #define ISR_RI 0x00000004U
152 #define ISR_RXERI 0x00000002U
153
154 #define ISR_INTRS (ISR_RBU | ISR_TBU | ISR_TI | ISR_RI | ISR_ETI)
155
156
157
158
159
160 #define IMR_MPDF 0x00040000U
161 #define IMR_MRFCON 0x00020000U
162 #define IMR_MRFCOFF 0x00010000U
163 #define IMR_MLSC 0x00008000U
164 #define IMR_MANC 0x00004000U
165 #define IMR_MFBE 0x00002000U
166 #define IMR_MTUNF 0x00000400U
167 #define IMR_MROVF 0x00000200U
168 #define IMR_METI 0x00000100U
169 #define IMR_MERI 0x00000080U
170 #define IMR_MCNTOVF 0x00000040U
171 #define IMR_MRBU 0x00000020U
172 #define IMR_MTBU 0x00000010U
173 #define IMR_MTI 0x00000008U
174 #define IMR_MRI 0x00000004U
175 #define IMR_MRXERI 0x00000002U
176
177 #define IMR_INTRS (IMR_MRBU | IMR_MTBU | IMR_MTI | IMR_MRI | IMR_METI)
178
179
180
181
182 #define TSR_NCR_MASK 0x0000FFFFU
183 #define TSR_NCR_SHIFT 0
184 #define TSR_NCR_GET(x) (((x) & TSR_NCR_MASK) >> TSR_NCR_SHIFT)
185
186
187
188
189
190 #define MIIMGT_READ 0x00000000U
191 #define MIIMGT_WRITE 0x00000008U
192 #define MIIMGT_MDO 0x00000004U
193 #define MIIMGT_MDI 0x00000002U
194 #define MIIMGT_MDC 0x00000001U
195 #define MIIMGT_MASK 0x0000000FU
196
197
198
199
200 #define CSR_READ_1(reg) bus_space_read_1(sc->sc_bust, sc->sc_bush, reg)
201 #define CSR_WRITE_1(reg, val) \
202 bus_space_write_1(sc->sc_bust, sc->sc_bush, reg, val)
203
204 #define CSR_READ_2(reg) bus_space_read_2(sc->sc_bust, sc->sc_bush, reg)
205 #define CSR_WRITE_2(reg, vat) \
206 bus_space_write_2(sc->sc_bust, sc->sc_bush, reg, val)
207
208 #define CSR_READ_4(reg) bus_space_read_4(sc->sc_bust, sc->sc_bush, reg)
209 #define CSR_WRITE_4(reg, val) \
210 bus_space_write_4(sc->sc_bust, sc->sc_bush, reg, val)
211
212 #define CSR_SETBIT(reg, val) CSR_WRITE_4(reg, CSR_READ_4(reg) | (val))
213 #define CSR_CLRBIT(reg, val) CSR_WRITE_4(reg, CSR_READ_4(reg) & ~(val))
214
215 #endif