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