1 | /* |
2 | * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting |
3 | * Copyright (c) 2002-2008 Atheros Communications, Inc. |
4 | * |
5 | * Permission to use, copy, modify, and/or distribute this software for any |
6 | * purpose with or without fee is hereby granted, provided that the above |
7 | * copyright notice and this permission notice appear in all copies. |
8 | * |
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | * |
17 | * $Id: ar9160.ini,v 1.2 2011/02/20 11:21:04 jmcneill Exp $ |
18 | */ |
19 | /* Auto Generated PCI Register Writes. Created: 05/22/08 */ |
20 | |
21 | static const uint32_t ar9160Modes[][6] = { |
22 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, |
23 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, |
24 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, |
25 | { 0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008 }, |
26 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, |
27 | { 0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf }, |
28 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, |
29 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, |
30 | { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, |
31 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, |
32 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, |
33 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, |
34 | { 0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0 }, |
35 | { 0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, |
36 | { 0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, |
37 | { 0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, |
38 | { 0x00009850, 0x6d48b4e2, 0x6d48b4e2, 0x6d48b0e2, 0x6d48b0e2, 0x6d48b0e2 }, |
39 | { 0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e }, |
40 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e }, |
41 | { 0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18 }, |
42 | { 0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, |
43 | { 0x00009868, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0 }, |
44 | { 0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 }, |
45 | { 0x00009914, 0x000007d0, 0x000007d0, 0x00000898, 0x00000898, 0x000007d0 }, |
46 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, |
47 | { 0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, |
48 | { 0x00009944, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020 }, |
49 | { 0x00009960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40 }, |
50 | { 0x0000a960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40 }, |
51 | { 0x0000b960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40 }, |
52 | { 0x00009964, 0x00001120, 0x00001120, 0x00001120, 0x00001120, 0x00001120 }, |
53 | { 0x0000c968, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce, 0x000003ce }, |
54 | { 0x0000c9bc, 0x001a0600, 0x001a0600, 0x001a0c00, 0x001a0c00, 0x001a0c00 }, |
55 | { 0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be }, |
56 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, |
57 | { 0x000099c8, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329 }, |
58 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, |
59 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, |
60 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
61 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
62 | { 0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880 }, |
63 | { 0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788 }, |
64 | { 0x0000a20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, |
65 | { 0x0000b20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, |
66 | { 0x0000c20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, |
67 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, |
68 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, |
69 | { 0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa }, |
70 | { 0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000 }, |
71 | { 0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402 }, |
72 | { 0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06 }, |
73 | { 0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b }, |
74 | { 0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b }, |
75 | { 0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a }, |
76 | { 0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf }, |
77 | { 0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f }, |
78 | { 0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f }, |
79 | { 0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f }, |
80 | { 0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 }, |
81 | { 0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
82 | { 0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
83 | { 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
84 | }; |
85 | |
86 | static const uint32_t ar9160Common[][2] = { |
87 | { 0x0000000c, 0x00000000 }, |
88 | { 0x00000030, 0x00020015 }, |
89 | { 0x00000034, 0x00000005 }, |
90 | { 0x00000040, 0x00000000 }, |
91 | { 0x00000044, 0x00000008 }, |
92 | { 0x00000048, 0x00000008 }, |
93 | { 0x0000004c, 0x00000010 }, |
94 | { 0x00000050, 0x00000000 }, |
95 | { 0x00000054, 0x0000001f }, |
96 | { 0x00000800, 0x00000000 }, |
97 | { 0x00000804, 0x00000000 }, |
98 | { 0x00000808, 0x00000000 }, |
99 | { 0x0000080c, 0x00000000 }, |
100 | { 0x00000810, 0x00000000 }, |
101 | { 0x00000814, 0x00000000 }, |
102 | { 0x00000818, 0x00000000 }, |
103 | { 0x0000081c, 0x00000000 }, |
104 | { 0x00000820, 0x00000000 }, |
105 | { 0x00000824, 0x00000000 }, |
106 | { 0x00001040, 0x002ffc0f }, |
107 | { 0x00001044, 0x002ffc0f }, |
108 | { 0x00001048, 0x002ffc0f }, |
109 | { 0x0000104c, 0x002ffc0f }, |
110 | { 0x00001050, 0x002ffc0f }, |
111 | { 0x00001054, 0x002ffc0f }, |
112 | { 0x00001058, 0x002ffc0f }, |
113 | { 0x0000105c, 0x002ffc0f }, |
114 | { 0x00001060, 0x002ffc0f }, |
115 | { 0x00001064, 0x002ffc0f }, |
116 | { 0x00001230, 0x00000000 }, |
117 | { 0x00001270, 0x00000000 }, |
118 | { 0x00001038, 0x00000000 }, |
119 | { 0x00001078, 0x00000000 }, |
120 | { 0x000010b8, 0x00000000 }, |
121 | { 0x000010f8, 0x00000000 }, |
122 | { 0x00001138, 0x00000000 }, |
123 | { 0x00001178, 0x00000000 }, |
124 | { 0x000011b8, 0x00000000 }, |
125 | { 0x000011f8, 0x00000000 }, |
126 | { 0x00001238, 0x00000000 }, |
127 | { 0x00001278, 0x00000000 }, |
128 | { 0x000012b8, 0x00000000 }, |
129 | { 0x000012f8, 0x00000000 }, |
130 | { 0x00001338, 0x00000000 }, |
131 | { 0x00001378, 0x00000000 }, |
132 | { 0x000013b8, 0x00000000 }, |
133 | { 0x000013f8, 0x00000000 }, |
134 | { 0x00001438, 0x00000000 }, |
135 | { 0x00001478, 0x00000000 }, |
136 | { 0x000014b8, 0x00000000 }, |
137 | { 0x000014f8, 0x00000000 }, |
138 | { 0x00001538, 0x00000000 }, |
139 | { 0x00001578, 0x00000000 }, |
140 | { 0x000015b8, 0x00000000 }, |
141 | { 0x000015f8, 0x00000000 }, |
142 | { 0x00001638, 0x00000000 }, |
143 | { 0x00001678, 0x00000000 }, |
144 | { 0x000016b8, 0x00000000 }, |
145 | { 0x000016f8, 0x00000000 }, |
146 | { 0x00001738, 0x00000000 }, |
147 | { 0x00001778, 0x00000000 }, |
148 | { 0x000017b8, 0x00000000 }, |
149 | { 0x000017f8, 0x00000000 }, |
150 | { 0x0000103c, 0x00000000 }, |
151 | { 0x0000107c, 0x00000000 }, |
152 | { 0x000010bc, 0x00000000 }, |
153 | { 0x000010fc, 0x00000000 }, |
154 | { 0x0000113c, 0x00000000 }, |
155 | { 0x0000117c, 0x00000000 }, |
156 | { 0x000011bc, 0x00000000 }, |
157 | { 0x000011fc, 0x00000000 }, |
158 | { 0x0000123c, 0x00000000 }, |
159 | { 0x0000127c, 0x00000000 }, |
160 | { 0x000012bc, 0x00000000 }, |
161 | { 0x000012fc, 0x00000000 }, |
162 | { 0x0000133c, 0x00000000 }, |
163 | { 0x0000137c, 0x00000000 }, |
164 | { 0x000013bc, 0x00000000 }, |
165 | { 0x000013fc, 0x00000000 }, |
166 | { 0x0000143c, 0x00000000 }, |
167 | { 0x0000147c, 0x00000000 }, |
168 | { 0x00004030, 0x00000002 }, |
169 | { 0x0000403c, 0x00000002 }, |
170 | { 0x00007010, 0x00000020 }, |
171 | { 0x00007038, 0x000004c2 }, |
172 | { 0x00008004, 0x00000000 }, |
173 | { 0x00008008, 0x00000000 }, |
174 | { 0x0000800c, 0x00000000 }, |
175 | { 0x00008018, 0x00000700 }, |
176 | { 0x00008020, 0x00000000 }, |
177 | { 0x00008038, 0x00000000 }, |
178 | { 0x0000803c, 0x00000000 }, |
179 | { 0x00008048, 0x40000000 }, |
180 | { 0x00008054, 0x00000000 }, |
181 | { 0x00008058, 0x00000000 }, |
182 | { 0x0000805c, 0x000fc78f }, |
183 | { 0x00008060, 0x0000000f }, |
184 | { 0x00008064, 0x00000000 }, |
185 | { 0x000080c0, 0x2a82301a }, |
186 | { 0x000080c4, 0x05dc01e0 }, |
187 | { 0x000080c8, 0x1f402710 }, |
188 | { 0x000080cc, 0x01f40000 }, |
189 | { 0x000080d0, 0x00001e00 }, |
190 | { 0x000080d4, 0x00000000 }, |
191 | { 0x000080d8, 0x00400000 }, |
192 | { 0x000080e0, 0xffffffff }, |
193 | { 0x000080e4, 0x0000ffff }, |
194 | { 0x000080e8, 0x003f3f3f }, |
195 | { 0x000080ec, 0x00000000 }, |
196 | { 0x000080f0, 0x00000000 }, |
197 | { 0x000080f4, 0x00000000 }, |
198 | { 0x000080f8, 0x00000000 }, |
199 | { 0x000080fc, 0x00020000 }, |
200 | { 0x00008100, 0x00020000 }, |
201 | { 0x00008104, 0x00000001 }, |
202 | { 0x00008108, 0x00000052 }, |
203 | { 0x0000810c, 0x00000000 }, |
204 | { 0x00008110, 0x00000168 }, |
205 | { 0x00008118, 0x000100aa }, |
206 | { 0x0000811c, 0x00003210 }, |
207 | { 0x00008120, 0x08f04800 }, |
208 | { 0x00008124, 0x00000000 }, |
209 | { 0x00008128, 0x00000000 }, |
210 | { 0x0000812c, 0x00000000 }, |
211 | { 0x00008130, 0x00000000 }, |
212 | { 0x00008134, 0x00000000 }, |
213 | { 0x00008138, 0x00000000 }, |
214 | { 0x0000813c, 0x00000000 }, |
215 | { 0x00008144, 0x00000000 }, |
216 | { 0x00008168, 0x00000000 }, |
217 | { 0x0000816c, 0x00000000 }, |
218 | { 0x00008170, 0x32143320 }, |
219 | { 0x00008174, 0xfaa4fa50 }, |
220 | { 0x00008178, 0x00000100 }, |
221 | { 0x0000817c, 0x00000000 }, |
222 | { 0x000081c4, 0x00000000 }, |
223 | { 0x000081d0, 0x00003210 }, |
224 | { 0x000081ec, 0x00000000 }, |
225 | { 0x000081f0, 0x00000000 }, |
226 | { 0x000081f4, 0x00000000 }, |
227 | { 0x000081f8, 0x00000000 }, |
228 | { 0x000081fc, 0x00000000 }, |
229 | { 0x00008200, 0x00000000 }, |
230 | { 0x00008204, 0x00000000 }, |
231 | { 0x00008208, 0x00000000 }, |
232 | { 0x0000820c, 0x00000000 }, |
233 | { 0x00008210, 0x00000000 }, |
234 | { 0x00008214, 0x00000000 }, |
235 | { 0x00008218, 0x00000000 }, |
236 | { 0x0000821c, 0x00000000 }, |
237 | { 0x00008220, 0x00000000 }, |
238 | { 0x00008224, 0x00000000 }, |
239 | { 0x00008228, 0x00000000 }, |
240 | { 0x0000822c, 0x00000000 }, |
241 | { 0x00008230, 0x00000000 }, |
242 | { 0x00008234, 0x00000000 }, |
243 | { 0x00008238, 0x00000000 }, |
244 | { 0x0000823c, 0x00000000 }, |
245 | { 0x00008240, 0x00100000 }, |
246 | { 0x00008244, 0x0010f400 }, |
247 | { 0x00008248, 0x00000100 }, |
248 | { 0x0000824c, 0x0001e800 }, |
249 | { 0x00008250, 0x00000000 }, |
250 | { 0x00008254, 0x00000000 }, |
251 | { 0x00008258, 0x00000000 }, |
252 | { 0x0000825c, 0x400000ff }, |
253 | { 0x00008260, 0x00080922 }, |
254 | { 0x00008270, 0x00000000 }, |
255 | { 0x00008274, 0x40000000 }, |
256 | { 0x00008278, 0x003e4180 }, |
257 | { 0x0000827c, 0x00000000 }, |
258 | { 0x00008284, 0x0000002c }, |
259 | { 0x00008288, 0x0000002c }, |
260 | { 0x0000828c, 0x00000000 }, |
261 | { 0x00008294, 0x00000000 }, |
262 | { 0x00008298, 0x00000000 }, |
263 | { 0x00008300, 0x00000000 }, |
264 | { 0x00008304, 0x00000000 }, |
265 | { 0x00008308, 0x00000000 }, |
266 | { 0x0000830c, 0x00000000 }, |
267 | { 0x00008310, 0x00000000 }, |
268 | { 0x00008314, 0x00000000 }, |
269 | { 0x00008318, 0x00000000 }, |
270 | { 0x00008328, 0x00000000 }, |
271 | { 0x0000832c, 0x00000007 }, |
272 | { 0x00008330, 0x00000302 }, |
273 | { 0x00008334, 0x00000e00 }, |
274 | { 0x00008338, 0x00000000 }, |
275 | { 0x0000833c, 0x00000000 }, |
276 | { 0x00008340, 0x000107ff }, |
277 | { 0x00009808, 0x00000000 }, |
278 | { 0x0000980c, 0xad848e19 }, |
279 | { 0x00009810, 0x7d14e000 }, |
280 | { 0x00009814, 0x9c0a9f6b }, |
281 | { 0x0000981c, 0x00000000 }, |
282 | { 0x0000982c, 0x0000a000 }, |
283 | { 0x00009830, 0x00000000 }, |
284 | { 0x0000983c, 0x00200400 }, |
285 | { 0x00009840, 0x206a01ae }, |
286 | { 0x0000984c, 0x1284233c }, |
287 | { 0x00009854, 0x00000859 }, |
288 | { 0x00009900, 0x00000000 }, |
289 | { 0x00009904, 0x00000000 }, |
290 | { 0x00009908, 0x00000000 }, |
291 | { 0x0000990c, 0x00000000 }, |
292 | { 0x0000991c, 0x10000fff }, |
293 | { 0x00009920, 0x05100000 }, |
294 | { 0x0000a920, 0x05100000 }, |
295 | { 0x0000b920, 0x05100000 }, |
296 | { 0x00009928, 0x00000001 }, |
297 | { 0x0000992c, 0x00000004 }, |
298 | { 0x00009934, 0x1e1f2022 }, |
299 | { 0x00009938, 0x0a0b0c0d }, |
300 | { 0x0000993c, 0x00000000 }, |
301 | { 0x00009948, 0x9280b212 }, |
302 | { 0x0000994c, 0x00020028 }, |
303 | { 0x00009954, 0x5f3ca3de }, |
304 | { 0x00009958, 0x2108ecff }, |
305 | { 0x00009940, 0x00750604 }, |
306 | { 0x0000c95c, 0x004b6a8e }, |
307 | { 0x00009970, 0x190fb515 }, |
308 | { 0x00009974, 0x00000000 }, |
309 | { 0x00009978, 0x00000001 }, |
310 | { 0x0000997c, 0x00000000 }, |
311 | { 0x00009980, 0x00000000 }, |
312 | { 0x00009984, 0x00000000 }, |
313 | { 0x00009988, 0x00000000 }, |
314 | { 0x0000998c, 0x00000000 }, |
315 | { 0x00009990, 0x00000000 }, |
316 | { 0x00009994, 0x00000000 }, |
317 | { 0x00009998, 0x00000000 }, |
318 | { 0x0000999c, 0x00000000 }, |
319 | { 0x000099a0, 0x00000000 }, |
320 | { 0x000099a4, 0x00000001 }, |
321 | { 0x000099a8, 0x201fff00 }, |
322 | { 0x000099ac, 0x006f0000 }, |
323 | { 0x000099b0, 0x03051000 }, |
324 | { 0x000099dc, 0x00000000 }, |
325 | { 0x000099e0, 0x00000200 }, |
326 | { 0x000099e4, 0xaaaaaaaa }, |
327 | { 0x000099e8, 0x3c466478 }, |
328 | { 0x000099ec, 0x0cc80caa }, |
329 | { 0x000099fc, 0x00001042 }, |
330 | { 0x00009b00, 0x00000000 }, |
331 | { 0x00009b04, 0x00000001 }, |
332 | { 0x00009b08, 0x00000002 }, |
333 | { 0x00009b0c, 0x00000003 }, |
334 | { 0x00009b10, 0x00000004 }, |
335 | { 0x00009b14, 0x00000005 }, |
336 | { 0x00009b18, 0x00000008 }, |
337 | { 0x00009b1c, 0x00000009 }, |
338 | { 0x00009b20, 0x0000000a }, |
339 | { 0x00009b24, 0x0000000b }, |
340 | { 0x00009b28, 0x0000000c }, |
341 | { 0x00009b2c, 0x0000000d }, |
342 | { 0x00009b30, 0x00000010 }, |
343 | { 0x00009b34, 0x00000011 }, |
344 | { 0x00009b38, 0x00000012 }, |
345 | { 0x00009b3c, 0x00000013 }, |
346 | { 0x00009b40, 0x00000014 }, |
347 | { 0x00009b44, 0x00000015 }, |
348 | { 0x00009b48, 0x00000018 }, |
349 | { 0x00009b4c, 0x00000019 }, |
350 | { 0x00009b50, 0x0000001a }, |
351 | { 0x00009b54, 0x0000001b }, |
352 | { 0x00009b58, 0x0000001c }, |
353 | { 0x00009b5c, 0x0000001d }, |
354 | { 0x00009b60, 0x00000020 }, |
355 | { 0x00009b64, 0x00000021 }, |
356 | { 0x00009b68, 0x00000022 }, |
357 | { 0x00009b6c, 0x00000023 }, |
358 | { 0x00009b70, 0x00000024 }, |
359 | { 0x00009b74, 0x00000025 }, |
360 | { 0x00009b78, 0x00000028 }, |
361 | { 0x00009b7c, 0x00000029 }, |
362 | { 0x00009b80, 0x0000002a }, |
363 | { 0x00009b84, 0x0000002b }, |
364 | { 0x00009b88, 0x0000002c }, |
365 | { 0x00009b8c, 0x0000002d }, |
366 | { 0x00009b90, 0x00000030 }, |
367 | { 0x00009b94, 0x00000031 }, |
368 | { 0x00009b98, 0x00000032 }, |
369 | { 0x00009b9c, 0x00000033 }, |
370 | { 0x00009ba0, 0x00000034 }, |
371 | { 0x00009ba4, 0x00000035 }, |
372 | { 0x00009ba8, 0x00000035 }, |
373 | { 0x00009bac, 0x00000035 }, |
374 | { 0x00009bb0, 0x00000035 }, |
375 | { 0x00009bb4, 0x00000035 }, |
376 | { 0x00009bb8, 0x00000035 }, |
377 | { 0x00009bbc, 0x00000035 }, |
378 | { 0x00009bc0, 0x00000035 }, |
379 | { 0x00009bc4, 0x00000035 }, |
380 | { 0x00009bc8, 0x00000035 }, |
381 | { 0x00009bcc, 0x00000035 }, |
382 | { 0x00009bd0, 0x00000035 }, |
383 | { 0x00009bd4, 0x00000035 }, |
384 | { 0x00009bd8, 0x00000035 }, |
385 | { 0x00009bdc, 0x00000035 }, |
386 | { 0x00009be0, 0x00000035 }, |
387 | { 0x00009be4, 0x00000035 }, |
388 | { 0x00009be8, 0x00000035 }, |
389 | { 0x00009bec, 0x00000035 }, |
390 | { 0x00009bf0, 0x00000035 }, |
391 | { 0x00009bf4, 0x00000035 }, |
392 | { 0x00009bf8, 0x00000010 }, |
393 | { 0x00009bfc, 0x0000001a }, |
394 | { 0x0000a210, 0x40806333 }, |
395 | { 0x0000a214, 0x00106c10 }, |
396 | { 0x0000a218, 0x009c4060 }, |
397 | { 0x0000a220, 0x018830c6 }, |
398 | { 0x0000a224, 0x00000400 }, |
399 | { 0x0000a228, 0x001a0bb5 }, |
400 | { 0x0000a22c, 0x00000000 }, |
401 | { 0x0000a234, 0x20202020 }, |
402 | { 0x0000a238, 0x20202020 }, |
403 | { 0x0000a23c, 0x13c889af }, |
404 | { 0x0000a240, 0x38490a20 }, |
405 | { 0x0000a244, 0x00007bb6 }, |
406 | { 0x0000a248, 0x0fff3ffc }, |
407 | { 0x0000a24c, 0x00000001 }, |
408 | { 0x0000a250, 0x0000a000 }, |
409 | { 0x0000a254, 0x00000000 }, |
410 | { 0x0000a258, 0x0cc75380 }, |
411 | { 0x0000a25c, 0x0f0f0f01 }, |
412 | { 0x0000a260, 0xdfa91f01 }, |
413 | { 0x0000a268, 0x00000001 }, |
414 | { 0x0000a26c, 0x0ebae9c6 }, |
415 | { 0x0000b26c, 0x0ebae9c6 }, |
416 | { 0x0000c26c, 0x0ebae9c6 }, |
417 | { 0x0000d270, 0x00820820 }, |
418 | { 0x0000a278, 0x1ce739ce }, |
419 | { 0x0000a27c, 0x050701ce }, |
420 | { 0x0000a338, 0x00000000 }, |
421 | { 0x0000a33c, 0x00000000 }, |
422 | { 0x0000a340, 0x00000000 }, |
423 | { 0x0000a344, 0x00000000 }, |
424 | { 0x0000a348, 0x3fffffff }, |
425 | { 0x0000a34c, 0x3fffffff }, |
426 | { 0x0000a350, 0x3fffffff }, |
427 | { 0x0000a354, 0x0003ffff }, |
428 | { 0x0000a358, 0x79a8aa33 }, |
429 | { 0x0000d35c, 0x07ffffef }, |
430 | { 0x0000d360, 0x0fffffe7 }, |
431 | { 0x0000d364, 0x17ffffe5 }, |
432 | { 0x0000d368, 0x1fffffe4 }, |
433 | { 0x0000d36c, 0x37ffffe3 }, |
434 | { 0x0000d370, 0x3fffffe3 }, |
435 | { 0x0000d374, 0x57ffffe3 }, |
436 | { 0x0000d378, 0x5fffffe2 }, |
437 | { 0x0000d37c, 0x7fffffe2 }, |
438 | { 0x0000d380, 0x7f3c7bba }, |
439 | { 0x0000d384, 0xf3307ff0 }, |
440 | { 0x0000a388, 0x0c000000 }, |
441 | { 0x0000a38c, 0x20202020 }, |
442 | { 0x0000a390, 0x20202020 }, |
443 | { 0x0000a394, 0x1ce739ce }, |
444 | { 0x0000a398, 0x000001ce }, |
445 | { 0x0000a39c, 0x00000001 }, |
446 | { 0x0000a3a0, 0x00000000 }, |
447 | { 0x0000a3a4, 0x00000000 }, |
448 | { 0x0000a3a8, 0x00000000 }, |
449 | { 0x0000a3ac, 0x00000000 }, |
450 | { 0x0000a3b0, 0x00000000 }, |
451 | { 0x0000a3b4, 0x00000000 }, |
452 | { 0x0000a3b8, 0x00000000 }, |
453 | { 0x0000a3bc, 0x00000000 }, |
454 | { 0x0000a3c0, 0x00000000 }, |
455 | { 0x0000a3c4, 0x00000000 }, |
456 | { 0x0000a3c8, 0x00000246 }, |
457 | { 0x0000a3cc, 0x20202020 }, |
458 | { 0x0000a3d0, 0x20202020 }, |
459 | { 0x0000a3d4, 0x20202020 }, |
460 | { 0x0000a3dc, 0x1ce739ce }, |
461 | { 0x0000a3e0, 0x000001ce }, |
462 | }; |
463 | |
464 | static const uint32_t ar9160Bank0[][2] = { |
465 | { 0x000098b0, 0x1e5795e5 }, |
466 | { 0x000098e0, 0x02008020 }, |
467 | }; |
468 | |
469 | static const uint32_t ar9160BB_RfGain[][3] = { |
470 | { 0x00009a00, 0x00000000, 0x00000000 }, |
471 | { 0x00009a04, 0x00000040, 0x00000040 }, |
472 | { 0x00009a08, 0x00000080, 0x00000080 }, |
473 | { 0x00009a0c, 0x000001a1, 0x00000141 }, |
474 | { 0x00009a10, 0x000001e1, 0x00000181 }, |
475 | { 0x00009a14, 0x00000021, 0x000001c1 }, |
476 | { 0x00009a18, 0x00000061, 0x00000001 }, |
477 | { 0x00009a1c, 0x00000168, 0x00000041 }, |
478 | { 0x00009a20, 0x000001a8, 0x000001a8 }, |
479 | { 0x00009a24, 0x000001e8, 0x000001e8 }, |
480 | { 0x00009a28, 0x00000028, 0x00000028 }, |
481 | { 0x00009a2c, 0x00000068, 0x00000068 }, |
482 | { 0x00009a30, 0x00000189, 0x000000a8 }, |
483 | { 0x00009a34, 0x000001c9, 0x00000169 }, |
484 | { 0x00009a38, 0x00000009, 0x000001a9 }, |
485 | { 0x00009a3c, 0x00000049, 0x000001e9 }, |
486 | { 0x00009a40, 0x00000089, 0x00000029 }, |
487 | { 0x00009a44, 0x00000170, 0x00000069 }, |
488 | { 0x00009a48, 0x000001b0, 0x00000190 }, |
489 | { 0x00009a4c, 0x000001f0, 0x000001d0 }, |
490 | { 0x00009a50, 0x00000030, 0x00000010 }, |
491 | { 0x00009a54, 0x00000070, 0x00000050 }, |
492 | { 0x00009a58, 0x00000191, 0x00000090 }, |
493 | { 0x00009a5c, 0x000001d1, 0x00000151 }, |
494 | { 0x00009a60, 0x00000011, 0x00000191 }, |
495 | { 0x00009a64, 0x00000051, 0x000001d1 }, |
496 | { 0x00009a68, 0x00000091, 0x00000011 }, |
497 | { 0x00009a6c, 0x000001b8, 0x00000051 }, |
498 | { 0x00009a70, 0x000001f8, 0x00000198 }, |
499 | { 0x00009a74, 0x00000038, 0x000001d8 }, |
500 | { 0x00009a78, 0x00000078, 0x00000018 }, |
501 | { 0x00009a7c, 0x00000199, 0x00000058 }, |
502 | { 0x00009a80, 0x000001d9, 0x00000098 }, |
503 | { 0x00009a84, 0x00000019, 0x00000159 }, |
504 | { 0x00009a88, 0x00000059, 0x00000199 }, |
505 | { 0x00009a8c, 0x00000099, 0x000001d9 }, |
506 | { 0x00009a90, 0x000000d9, 0x00000019 }, |
507 | { 0x00009a94, 0x000000f9, 0x00000059 }, |
508 | { 0x00009a98, 0x000000f9, 0x00000099 }, |
509 | { 0x00009a9c, 0x000000f9, 0x000000d9 }, |
510 | { 0x00009aa0, 0x000000f9, 0x000000f9 }, |
511 | { 0x00009aa4, 0x000000f9, 0x000000f9 }, |
512 | { 0x00009aa8, 0x000000f9, 0x000000f9 }, |
513 | { 0x00009aac, 0x000000f9, 0x000000f9 }, |
514 | { 0x00009ab0, 0x000000f9, 0x000000f9 }, |
515 | { 0x00009ab4, 0x000000f9, 0x000000f9 }, |
516 | { 0x00009ab8, 0x000000f9, 0x000000f9 }, |
517 | { 0x00009abc, 0x000000f9, 0x000000f9 }, |
518 | { 0x00009ac0, 0x000000f9, 0x000000f9 }, |
519 | { 0x00009ac4, 0x000000f9, 0x000000f9 }, |
520 | { 0x00009ac8, 0x000000f9, 0x000000f9 }, |
521 | { 0x00009acc, 0x000000f9, 0x000000f9 }, |
522 | { 0x00009ad0, 0x000000f9, 0x000000f9 }, |
523 | { 0x00009ad4, 0x000000f9, 0x000000f9 }, |
524 | { 0x00009ad8, 0x000000f9, 0x000000f9 }, |
525 | { 0x00009adc, 0x000000f9, 0x000000f9 }, |
526 | { 0x00009ae0, 0x000000f9, 0x000000f9 }, |
527 | { 0x00009ae4, 0x000000f9, 0x000000f9 }, |
528 | { 0x00009ae8, 0x000000f9, 0x000000f9 }, |
529 | { 0x00009aec, 0x000000f9, 0x000000f9 }, |
530 | { 0x00009af0, 0x000000f9, 0x000000f9 }, |
531 | { 0x00009af4, 0x000000f9, 0x000000f9 }, |
532 | { 0x00009af8, 0x000000f9, 0x000000f9 }, |
533 | { 0x00009afc, 0x000000f9, 0x000000f9 }, |
534 | }; |
535 | |
536 | static const uint32_t ar9160Bank1[][2] = { |
537 | { 0x000098b0, 0x02108421 }, |
538 | { 0x000098ec, 0x00000008 }, |
539 | }; |
540 | |
541 | static const uint32_t ar9160Bank2[][2] = { |
542 | { 0x000098b0, 0x0e73ff17 }, |
543 | { 0x000098e0, 0x00000420 }, |
544 | }; |
545 | |
546 | static const uint32_t ar9160Bank3[][3] = { |
547 | { 0x000098f0, 0x01400018, 0x01c00018 }, |
548 | }; |
549 | |
550 | static const uint32_t ar9160Bank6[][3] = { |
551 | /* Reg A G */ |
552 | { 0x0000989c, 0x00000000, 0x00000000 }, |
553 | { 0x0000989c, 0x00000000, 0x00000000 }, |
554 | { 0x0000989c, 0x00000000, 0x00000000 }, |
555 | { 0x0000989c, 0x00e00000, 0x00e00000 }, |
556 | { 0x0000989c, 0x005e0000, 0x005e0000 }, |
557 | { 0x0000989c, 0x00120000, 0x00120000 }, |
558 | { 0x0000989c, 0x00620000, 0x00620000 }, |
559 | { 0x0000989c, 0x00020000, 0x00020000 }, |
560 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
561 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
562 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
563 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, |
564 | { 0x0000989c, 0x005f0000, 0x005f0000 }, |
565 | { 0x0000989c, 0x00870000, 0x00870000 }, |
566 | { 0x0000989c, 0x00f90000, 0x00f90000 }, |
567 | { 0x0000989c, 0x007b0000, 0x007b0000 }, |
568 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
569 | { 0x0000989c, 0x00f50000, 0x00f50000 }, |
570 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, |
571 | { 0x0000989c, 0x00110000, 0x00110000 }, |
572 | { 0x0000989c, 0x006100a8, 0x006100a8 }, |
573 | { 0x0000989c, 0x004210a2, 0x004210a2 }, |
574 | { 0x0000989c, 0x0014008f, 0x0014008f }, |
575 | { 0x0000989c, 0x00c40003, 0x00c40003 }, |
576 | { 0x0000989c, 0x003000f2, 0x003000f2 }, |
577 | { 0x0000989c, 0x00440016, 0x00440016 }, |
578 | { 0x0000989c, 0x00410040, 0x00410040 }, |
579 | { 0x0000989c, 0x0001805e, 0x0001805e }, |
580 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, |
581 | { 0x0000989c, 0x000000f1, 0x000000f1 }, |
582 | { 0x0000989c, 0x00002081, 0x00002081 }, |
583 | { 0x0000989c, 0x000000d4, 0x000000d4 }, |
584 | { 0x000098d0, 0x0000000f, 0x0010000f }, |
585 | }; |
586 | |
587 | static const uint32_t ar9160Bank6TPC[][3] = { |
588 | { 0x0000989c, 0x00000000, 0x00000000 }, |
589 | { 0x0000989c, 0x00000000, 0x00000000 }, |
590 | { 0x0000989c, 0x00000000, 0x00000000 }, |
591 | { 0x0000989c, 0x00e00000, 0x00e00000 }, |
592 | { 0x0000989c, 0x005e0000, 0x005e0000 }, |
593 | { 0x0000989c, 0x00120000, 0x00120000 }, |
594 | { 0x0000989c, 0x00620000, 0x00620000 }, |
595 | { 0x0000989c, 0x00020000, 0x00020000 }, |
596 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
597 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
598 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
599 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, |
600 | { 0x0000989c, 0x005f0000, 0x005f0000 }, |
601 | { 0x0000989c, 0x00870000, 0x00870000 }, |
602 | { 0x0000989c, 0x00f90000, 0x00f90000 }, |
603 | { 0x0000989c, 0x007b0000, 0x007b0000 }, |
604 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, |
605 | { 0x0000989c, 0x00f50000, 0x00f50000 }, |
606 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, |
607 | { 0x0000989c, 0x00110000, 0x00110000 }, |
608 | { 0x0000989c, 0x006100a8, 0x006100a8 }, |
609 | { 0x0000989c, 0x00423022, 0x00423022 }, |
610 | { 0x0000989c, 0x2014008f, 0x2014008f }, |
611 | { 0x0000989c, 0x00c40002, 0x00c40002 }, |
612 | { 0x0000989c, 0x003000f2, 0x003000f2 }, |
613 | { 0x0000989c, 0x00440016, 0x00440016 }, |
614 | { 0x0000989c, 0x00410040, 0x00410040 }, |
615 | { 0x0000989c, 0x0001805e, 0x0001805e }, |
616 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, |
617 | { 0x0000989c, 0x000000e1, 0x000000e1 }, |
618 | { 0x0000989c, 0x00007080, 0x00007080 }, |
619 | { 0x0000989c, 0x000000d4, 0x000000d4 }, |
620 | { 0x000098d0, 0x0000000f, 0x0010000f }, |
621 | }; |
622 | |
623 | static const uint32_t ar9160Bank7[][2] = { |
624 | { 0x0000989c, 0x00000500 }, |
625 | { 0x0000989c, 0x00000800 }, |
626 | { 0x000098cc, 0x0000000e }, |
627 | }; |
628 | |
629 | /* Auto generated PCI Register Writes for SOWL1.0 ADDAC Shift Chain */ |
630 | static const uint32_t ar9160Addac[][2] = { |
631 | {0x0000989c, 0x00000000 }, |
632 | {0x0000989c, 0x00000000 }, |
633 | {0x0000989c, 0x00000000 }, |
634 | {0x0000989c, 0x00000000 }, |
635 | {0x0000989c, 0x00000000 }, |
636 | {0x0000989c, 0x00000000 }, |
637 | {0x0000989c, 0x000000c0 }, |
638 | {0x0000989c, 0x00000018 }, |
639 | {0x0000989c, 0x00000004 }, |
640 | {0x0000989c, 0x00000000 }, |
641 | {0x0000989c, 0x00000000 }, |
642 | {0x0000989c, 0x00000000 }, |
643 | {0x0000989c, 0x00000000 }, |
644 | {0x0000989c, 0x00000000 }, |
645 | {0x0000989c, 0x00000000 }, |
646 | {0x0000989c, 0x00000000 }, |
647 | {0x0000989c, 0x00000000 }, |
648 | {0x0000989c, 0x00000000 }, |
649 | {0x0000989c, 0x00000000 }, |
650 | {0x0000989c, 0x00000000 }, |
651 | {0x0000989c, 0x00000000 }, |
652 | {0x0000989c, 0x000000c0 }, |
653 | {0x0000989c, 0x00000019 }, |
654 | {0x0000989c, 0x00000004 }, |
655 | {0x0000989c, 0x00000000 }, |
656 | {0x0000989c, 0x00000000 }, |
657 | {0x0000989c, 0x00000000 }, |
658 | {0x0000989c, 0x00000004 }, |
659 | {0x0000989c, 0x00000003 }, |
660 | {0x0000989c, 0x00000008 }, |
661 | {0x0000989c, 0x00000000 }, |
662 | {0x000098cc, 0x00000000 }, |
663 | }; |
664 | |
665 | /* Auto generated PCI Register Writes for SOWL1.1 ADDAC Shift Chain */ |
666 | static const uint32_t ar9160Addac_1_1[][2] = { |
667 | {0x0000989c, 0x00000000 }, |
668 | {0x0000989c, 0x00000000 }, |
669 | {0x0000989c, 0x00000000 }, |
670 | {0x0000989c, 0x00000000 }, |
671 | {0x0000989c, 0x00000000 }, |
672 | {0x0000989c, 0x00000000 }, |
673 | {0x0000989c, 0x000000c0 }, |
674 | {0x0000989c, 0x00000018 }, |
675 | {0x0000989c, 0x00000004 }, |
676 | {0x0000989c, 0x00000000 }, |
677 | {0x0000989c, 0x00000000 }, |
678 | {0x0000989c, 0x00000000 }, |
679 | {0x0000989c, 0x00000000 }, |
680 | {0x0000989c, 0x00000000 }, |
681 | {0x0000989c, 0x00000000 }, |
682 | {0x0000989c, 0x00000000 }, |
683 | {0x0000989c, 0x00000000 }, |
684 | {0x0000989c, 0x00000000 }, |
685 | {0x0000989c, 0x00000000 }, |
686 | {0x0000989c, 0x00000000 }, |
687 | {0x0000989c, 0x00000000 }, |
688 | {0x0000989c, 0x000000c0 }, |
689 | {0x0000989c, 0x00000019 }, |
690 | {0x0000989c, 0x00000004 }, |
691 | {0x0000989c, 0x00000000 }, |
692 | {0x0000989c, 0x00000000 }, |
693 | {0x0000989c, 0x00000000 }, |
694 | {0x0000989c, 0x00000000 }, |
695 | {0x0000989c, 0x00000000 }, |
696 | {0x0000989c, 0x00000000 }, |
697 | {0x0000989c, 0x00000000 }, |
698 | {0x000098cc, 0x00000000 }, |
699 | }; |
700 | |
701 | /* hand-crafted from code that does explicit register writes */ |
702 | static const uint32_t ar9160PciePhy[][2] = { |
703 | { AR_PCIE_SERDES, 0x9248fc00 }, |
704 | { AR_PCIE_SERDES, 0x24924924 }, |
705 | { AR_PCIE_SERDES, 0x28000039 }, |
706 | { AR_PCIE_SERDES, 0x53160824 }, |
707 | { AR_PCIE_SERDES, 0xe5980579 }, |
708 | { AR_PCIE_SERDES, 0x001defff }, |
709 | { AR_PCIE_SERDES, 0x1aaabe40 }, |
710 | { AR_PCIE_SERDES, 0xbe105554 }, |
711 | { AR_PCIE_SERDES, 0x000e3007 }, |
712 | { AR_PCIE_SERDES2, 0x00000000 }, |
713 | }; |
714 | |