xref: /openbsd/sys/dev/ic/ar9280reg.h (revision cca36db2)
1 /*	$OpenBSD: ar9280reg.h,v 1.4 2010/07/15 19:24:04 damien Exp $	*/
2 
3 /*-
4  * Copyright (c) 2009 Damien Bergamini <damien.bergamini@free.fr>
5  * Copyright (c) 2008-2009 Atheros Communications Inc.
6  *
7  * Permission to use, copy, modify, and/or distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #define AR9280_MAX_CHAINS	2
21 
22 #define AR9280_PD_GAIN_BOUNDARY_DEFAULT	56
23 #define AR9280_PHY_CCA_MAX_GOOD_VALUE	(-112)
24 
25 #define AR9280_PHY_SYNTH_CONTROL	0x9874
26 
27 /* Bits for AR9280_PHY_SYNTH_CONTROL. */
28 #define AR9280_BMODE		0x20000000
29 #define AR9280_FRACMODE		0x10000000
30 #define AR9280_AMODE_REFSEL_M	0x0c000000
31 #define AR9280_AMODE_REFSEL_S	26
32 
33 /*
34  * NB: The AR9280 uses the same ROM layout than the AR5416.
35  */
36 
37 /* Macro to "pack" registers to 16-bit to save some .rodata space. */
38 #define P(x)	(x)
39 
40 /*
41  * AR9280 2.0 initialization values.
42  */
43 static const uint16_t ar9280_2_0_regs[] = {
44 	P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014),
45 	P(0x0801c), P(0x08120), P(0x081d0), P(0x08318), P(0x09804),
46 	P(0x09820), P(0x09824), P(0x09828), P(0x09834), P(0x09838),
47 	P(0x09840), P(0x09844), P(0x09850), P(0x09858), P(0x0985c),
48 	P(0x09860), P(0x09864), P(0x09868), P(0x0986c), P(0x09914),
49 	P(0x09918), P(0x09924), P(0x09944), P(0x09960), P(0x0a960),
50 	P(0x09964), P(0x0c968), P(0x099b8), P(0x099bc), P(0x099c0),
51 	P(0x0a204), P(0x0a20c), P(0x0b20c), P(0x0a21c), P(0x0a230),
52 	P(0x0a23c), P(0x0a250), P(0x0a358), P(0x0a388), P(0x0a3d8),
53 	P(0x07894)
54 };
55 
56 static const uint32_t ar9280_2_0_vals_5g20[] = {
57 	0x00000230, 0x00000168, 0x00000e60, 0x00000000, 0x03e803e8,
58 	0x128d8027, 0x08f04800, 0x00003210, 0x00003e80, 0x00000300,
59 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
60 	0x206a022e, 0x0372161e, 0x6c4000e2, 0x7ec88d2e, 0x31395d5e,
61 	0x00048d18, 0x0001ce00, 0x5ac640d0, 0x06903081, 0x000007d0,
62 	0x0000000a, 0xd00a8a0b, 0xffbc1010, 0x00000010, 0x00000010,
63 	0x00000210, 0x000003b5, 0x0000001c, 0x00000a00, 0x05eea6d4,
64 	0x00000444, 0x00000014, 0x00000014, 0x1883800a, 0x00000000,
65 	0x13c88000, 0x001ff000, 0x7999aa02, 0x0c000000, 0x00000000,
66 	0x5a508000
67 };
68 
69 #ifndef IEEE80211_NO_HT
70 static const uint32_t ar9280_2_0_vals_5g40[] = {
71 	0x00000460, 0x000002d0, 0x00001cc0, 0x00000000, 0x07d007d0,
72 	0x128d804f, 0x08f04800, 0x00003210, 0x00007d00, 0x000003c4,
73 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
74 	0x206a022e, 0x0372161e, 0x6d4000e2, 0x7ec88d2e, 0x3139605e,
75 	0x00048d18, 0x0001ce00, 0x5ac640d0, 0x06903081, 0x00000fa0,
76 	0x00000014, 0xd00a8a0b, 0xffbc1010, 0x00000010, 0x00000010,
77 	0x00000210, 0x000003b5, 0x0000001c, 0x00000a00, 0x05eea6d4,
78 	0x00000444, 0x00000014, 0x00000014, 0x1883800a, 0x00000000,
79 	0x13c88000, 0x001ff000, 0x7999aa02, 0x0c000000, 0x00000000,
80 	0x5a508000
81 };
82 
83 static const uint32_t ar9280_2_0_vals_2g40[] = {
84 	0x000002c0, 0x00000318, 0x00007c70, 0x00000000, 0x10801600,
85 	0x12e00057, 0x08f04810, 0x0000320a, 0x00006880, 0x000003c4,
86 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
87 	0x206a012e, 0x037216a0, 0x6d4000e2, 0x7ec84d2e, 0x3139605e,
88 	0x00048d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00001130,
89 	0x00000268, 0xd00a8a0d, 0xffbc1010, 0x00000010, 0x00000010,
90 	0x00000210, 0x000003ce, 0x0000001c, 0x00000c00, 0x05eea6d4,
91 	0x00000444, 0x0001f019, 0x0001f019, 0x1883800a, 0x00000210,
92 	0x13c88001, 0x0004a000, 0x7999aa0e, 0x08000000, 0x00000000,
93 	0x5a508000
94 };
95 #endif
96 
97 static const uint32_t ar9280_2_0_vals_2g20[] = {
98 	0x00000160, 0x0000018c, 0x00003e38, 0x00000000, 0x08400b00,
99 	0x12e0002b, 0x08f04810, 0x0000320a, 0x00003440, 0x00000300,
100 	0x02020200, 0x01000e0e, 0x0a020001, 0x00000e0e, 0x00000007,
101 	0x206a012e, 0x037216a0, 0x6c4000e2, 0x7ec84d2e, 0x31395d5e,
102 	0x00048d20, 0x0001ce00, 0x5ac640d0, 0x06903881, 0x00000898,
103 	0x0000000b, 0xd00a8a0d, 0xffbc1010, 0x00000010, 0x00000010,
104 	0x00000210, 0x000003ce, 0x0000001c, 0x00000c00, 0x05eea6d4,
105 	0x00000444, 0x0001f019, 0x0001f019, 0x1883800a, 0x00000108,
106 	0x13c88000, 0x0004a000, 0x7999aa0e, 0x0c000000, 0x00000000,
107 	0x5a508000
108 };
109 
110 static const uint16_t ar9280_2_0_cm_regs[] = {
111 	P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044),
112 	P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800),
113 	P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814),
114 	P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040),
115 	P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054),
116 	P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230),
117 	P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8),
118 	P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238),
119 	P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378),
120 	P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8),
121 	P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8),
122 	P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738),
123 	P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c),
124 	P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc),
125 	P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc),
126 	P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c),
127 	P(0x0147c), P(0x04030), P(0x0403c), P(0x04024), P(0x04060),
128 	P(0x04064), P(0x07010), P(0x07034), P(0x07038), P(0x08004),
129 	P(0x08008), P(0x0800c), P(0x08018), P(0x08020), P(0x08038),
130 	P(0x0803c), P(0x08048), P(0x08054), P(0x08058), P(0x0805c),
131 	P(0x08060), P(0x08064), P(0x08070), P(0x080c0), P(0x080c4),
132 	P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8),
133 	P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0),
134 	P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104),
135 	P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c),
136 	P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134),
137 	P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c),
138 	P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c0),
139 	P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc),
140 	P(0x08200), P(0x08204), P(0x08208), P(0x0820c), P(0x08210),
141 	P(0x08214), P(0x08218), P(0x0821c), P(0x08220), P(0x08224),
142 	P(0x08228), P(0x0822c), P(0x08230), P(0x08234), P(0x08238),
143 	P(0x0823c), P(0x08240), P(0x08244), P(0x08248), P(0x0824c),
144 	P(0x08250), P(0x08254), P(0x08258), P(0x0825c), P(0x08260),
145 	P(0x08264), P(0x08270), P(0x08274), P(0x08278), P(0x0827c),
146 	P(0x08284), P(0x08288), P(0x0828c), P(0x08294), P(0x08298),
147 	P(0x0829c), P(0x08300), P(0x08314), P(0x08328), P(0x0832c),
148 	P(0x08330), P(0x08334), P(0x08338), P(0x0833c), P(0x08340),
149 	P(0x08344), P(0x09808), P(0x0980c), P(0x09810), P(0x09814),
150 	P(0x0981c), P(0x0982c), P(0x09830), P(0x0983c), P(0x0984c),
151 	P(0x0a84c), P(0x09854), P(0x09900), P(0x09904), P(0x09908),
152 	P(0x0990c), P(0x09910), P(0x0991c), P(0x09920), P(0x0a920),
153 	P(0x09928), P(0x0992c), P(0x09934), P(0x09938), P(0x0993c),
154 	P(0x09948), P(0x0994c), P(0x09954), P(0x09958), P(0x09940),
155 	P(0x0c95c), P(0x09970), P(0x09974), P(0x09978), P(0x0997c),
156 	P(0x09980), P(0x09984), P(0x09988), P(0x0998c), P(0x09990),
157 	P(0x09994), P(0x09998), P(0x0999c), P(0x099a0), P(0x099a4),
158 	P(0x099a8), P(0x099ac), P(0x099b0), P(0x099b4), P(0x099c4),
159 	P(0x099c8), P(0x099cc), P(0x099d0), P(0x099d4), P(0x099d8),
160 	P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8), P(0x099ec),
161 	P(0x099f0), P(0x099fc), P(0x0a208), P(0x0a210), P(0x0a214),
162 	P(0x0a218), P(0x0a220), P(0x0a224), P(0x0a228), P(0x0a22c),
163 	P(0x0a234), P(0x0a238), P(0x0a240), P(0x0a244), P(0x0a248),
164 	P(0x0a24c), P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260),
165 	P(0x0a268), P(0x0a26c), P(0x0b26c), P(0x0d270), P(0x0a278),
166 	P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368), P(0x0d36c),
167 	P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c), P(0x0d380),
168 	P(0x0d384), P(0x0a38c), P(0x0a390), P(0x0a394), P(0x0a398),
169 	P(0x0a39c), P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), P(0x0a3ac),
170 	P(0x0a3b0), P(0x0a3b4), P(0x0a3b8), P(0x0a3bc), P(0x0a3c0),
171 	P(0x0a3c4), P(0x0a3c8), P(0x0a3cc), P(0x0a3d0), P(0x0a3d4),
172 	P(0x0a3dc), P(0x0a3e0), P(0x0a3e4), P(0x0a3e8), P(0x07800),
173 	P(0x07804), P(0x07808), P(0x0780c), P(0x07810), P(0x07818),
174 	P(0x07824), P(0x07828), P(0x0782c), P(0x07830), P(0x07834),
175 	P(0x0783c), P(0x07848), P(0x0784c), P(0x07850), P(0x07854),
176 	P(0x07858), P(0x07860), P(0x07864), P(0x07868), P(0x0786c),
177 	P(0x07870), P(0x07874), P(0x07878), P(0x0787c), P(0x07880),
178 	P(0x07884), P(0x07888), P(0x0788c), P(0x07890), P(0x07898)
179 };
180 
181 static const uint32_t ar9280_2_0_cm_vals[] = {
182 	0x00000000, 0x00020015, 0x00000005, 0x00000000, 0x00000008,
183 	0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000,
184 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
185 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f,
186 	0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f,
187 	0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000,
188 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
189 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
190 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
191 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
192 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
193 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
194 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
195 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
196 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
197 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
198 	0x00000000, 0x00000002, 0x00000002, 0x0000001f, 0x00000000,
199 	0x00000000, 0x00000033, 0x00000002, 0x000004c2, 0x00000000,
200 	0x00000000, 0x00000000, 0x00000700, 0x00000000, 0x00000000,
201 	0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x000fc78f,
202 	0x0000000f, 0x00000000, 0x00000000, 0x2a80001a, 0x05dc01e0,
203 	0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000,
204 	0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000,
205 	0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001,
206 	0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210,
207 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
208 	0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
209 	0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 0x00000000,
210 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
211 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
212 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
213 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
214 	0x00000000, 0x00100000, 0x0010f400, 0x00000100, 0x0001e800,
215 	0x00000000, 0x00000000, 0x00000000, 0x400000ff, 0x00080922,
216 	0x88a00010, 0x00000000, 0x40000000, 0x003e4180, 0x00000000,
217 	0x0000002c, 0x0000002c, 0x00000000, 0x00000000, 0x00000000,
218 	0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000007,
219 	0x00000302, 0x00000e00, 0x00ff0000, 0x00000000, 0x000107ff,
220 	0x00481043, 0x00000000, 0xafa68e30, 0xfd14e000, 0x9c0a9f6b,
221 	0x00000000, 0x0000a000, 0x00000000, 0x00200400, 0x0040233c,
222 	0x0040233c, 0x00000044, 0x00000000, 0x00000000, 0x00000000,
223 	0x00000000, 0x01002310, 0x10000fff, 0x04900000, 0x04900000,
224 	0x00000001, 0x00000004, 0x1e1f2022, 0x0a0b0c0d, 0x00000000,
225 	0x9280c00a, 0x00020028, 0x5f3ca3de, 0x2108ecff, 0x14750604,
226 	0x004b6a8e, 0x190fb514, 0x00000000, 0x00000001, 0x00000000,
227 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
228 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
229 	0x201fff00, 0x006f0000, 0x03051000, 0x00000820, 0x06336f77,
230 	0x6af6532f, 0x08f186c8, 0x00046384, 0x00000000, 0x00000000,
231 	0x00000000, 0x00000000, 0xaaaaaaaa, 0x3c466478, 0x0cc80caa,
232 	0x00000000, 0x00001042, 0x803e4788, 0x4080a333, 0x40206c10,
233 	0x009c4060, 0x01834061, 0x00000400, 0x000003b5, 0x233f7180,
234 	0x20202020, 0x20202020, 0x38490a20, 0x00007bb6, 0x0fff3ffc,
235 	0x00000000, 0x00000000, 0x0cdbd380, 0x0f0f0f01, 0xdfa91f01,
236 	0x00000000, 0x0e79e5c6, 0x0e79e5c6, 0x00820820, 0x1ce739ce,
237 	0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4, 0x37ffffe3,
238 	0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2, 0x7f3c7bba,
239 	0xf3307ff0, 0x20202020, 0x20202020, 0x1ce739ce, 0x000001ce,
240 	0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
241 	0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
242 	0x00000000, 0x00000246, 0x20202020, 0x20202020, 0x20202020,
243 	0x1ce739ce, 0x000001ce, 0x00000000, 0x18c43433, 0x00040000,
244 	0xdb005012, 0x04924914, 0x21084210, 0x6d801300, 0x07e41000,
245 	0x00040000, 0xdb005012, 0x04924914, 0x21084210, 0x6d801300,
246 	0x07e40000, 0x00100000, 0x773f0567, 0x54214514, 0x12035828,
247 	0x9259269a, 0x52802000, 0x0a8e370e, 0xc0102850, 0x812d4000,
248 	0x807ec400, 0x001b6db0, 0x00376b63, 0x06db6db6, 0x006d8000,
249 	0xffeffffe, 0xffeffffe, 0x00010000, 0x02060aeb, 0x2a850160
250 };
251 
252 static const uint16_t ar9280_2_0_fast_clock_regs[] = {
253 	P(0x01030), P(0x01070), P(0x010b0), P(0x08014), P(0x0801c),
254 	P(0x08318), P(0x09820), P(0x09824), P(0x09828), P(0x09834),
255 	P(0x09844), P(0x09914), P(0x09918)
256 };
257 
258 static const uint32_t ar9280_2_0_fast_clock_vals_5g20[] = {
259 	0x00000268, 0x0000018c, 0x00000fd0, 0x044c044c, 0x148ec02b,
260 	0x000044c0, 0x02020200, 0x01000f0f, 0x0b020001, 0x00000f0f,
261 	0x03721821, 0x00000898, 0x0000000b
262 };
263 
264 #ifndef IEEE80211_NO_HT
265 static const uint32_t ar9280_2_0_fast_clock_vals_5g40[] = {
266 	0x000004d0, 0x00000318, 0x00001fa0, 0x08980898, 0x148ec057,
267 	0x00008980, 0x02020200, 0x01000f0f, 0x0b020001, 0x00000f0f,
268 	0x03721821, 0x00001130, 0x00000016
269 };
270 #endif
271 
272 static const struct athn_ini ar9280_2_0_ini = {
273 	nitems(ar9280_2_0_regs),
274 	ar9280_2_0_regs,
275 	ar9280_2_0_vals_5g20,
276 #ifndef IEEE80211_NO_HT
277 	ar9280_2_0_vals_5g40,
278 	ar9280_2_0_vals_2g40,
279 #endif
280 	ar9280_2_0_vals_2g20,
281 	nitems(ar9280_2_0_cm_regs),
282 	ar9280_2_0_cm_regs,
283 	ar9280_2_0_cm_vals,
284 	nitems(ar9280_2_0_fast_clock_regs),
285 	ar9280_2_0_fast_clock_regs,
286 	ar9280_2_0_fast_clock_vals_5g20,
287 #ifndef IEEE80211_NO_HT
288 	ar9280_2_0_fast_clock_vals_5g40
289 #endif
290 };
291 
292 /*
293  * AR9280 2.0 Tx gains.
294  */
295 static const uint16_t ar9280_2_0_tx_gain_regs[] = {
296 	P(0x0a274), P(0x0a27c), P(0x0a300), P(0x0a304), P(0x0a308),
297 	P(0x0a30c), P(0x0a310), P(0x0a314), P(0x0a318), P(0x0a31c),
298 	P(0x0a320), P(0x0a324), P(0x0a328), P(0x0a32c), P(0x0a330),
299 	P(0x0a334), P(0x0a338), P(0x0a33c), P(0x0a340), P(0x0a344),
300 	P(0x0a348), P(0x0a34c), P(0x0a350), P(0x0a354), P(0x0a3ec),
301 	P(0x07814), P(0x07838), P(0x0781c), P(0x07840), P(0x07820),
302 	P(0x07844)
303 };
304 
305 static const uint32_t ar9280_2_0_tx_gain_vals_5g[] = {
306 	0x0a19c652, 0x050701ce, 0x00000000, 0x00003002, 0x00006004,
307 	0x0000a006, 0x0000e012, 0x00011014, 0x0001504a, 0x0001904c,
308 	0x0001c04e, 0x00020092, 0x0002410a, 0x0002710c, 0x0002b18b,
309 	0x0002e1cc, 0x000321ec, 0x000321ec, 0x000321ec, 0x000321ec,
310 	0x000321ec, 0x000321ec, 0x000321ec, 0x000321ec, 0x00f70081,
311 	0x0019beff, 0x0019beff, 0x00392000, 0x00392000, 0x92592480,
312 	0x92592480
313 };
314 
315 static const uint32_t ar9280_2_0_tx_gain_vals_2g[] = {
316 	0x0a1aa652, 0x050701ce, 0x00000000, 0x00003002, 0x00008009,
317 	0x0000b00b, 0x0000e012, 0x00012048, 0x0001604a, 0x0001a211,
318 	0x0001e213, 0x0002121b, 0x00024412, 0x00028414, 0x0002b44a,
319 	0x00030649, 0x0003364b, 0x00038a49, 0x0003be48, 0x0003ee4a,
320 	0x00042e88, 0x00046e8a, 0x00049ec9, 0x0004bf42, 0x00f70081,
321 	0x0019beff, 0x0019beff, 0x00392000, 0x00392000, 0x92592480,
322 	0x92592480
323 };
324 
325 static const struct athn_gain ar9280_2_0_tx_gain = {
326 	nitems(ar9280_2_0_tx_gain_regs),
327 	ar9280_2_0_tx_gain_regs,
328 	ar9280_2_0_tx_gain_vals_5g,
329 	ar9280_2_0_tx_gain_vals_2g
330 };
331 
332 static const uint32_t ar9280_2_0_tx_gain_high_power_vals_5g[] = {
333 	0x0a19e652, 0x050739ce, 0x00000000, 0x00003002, 0x00006004,
334 	0x0000a006, 0x0000e012, 0x00011014, 0x0001504a, 0x0001904c,
335 	0x0001c04e, 0x00021092, 0x0002510a, 0x0002910c, 0x0002c18b,
336 	0x0002f1cc, 0x000321eb, 0x000341ec, 0x000341ec, 0x000341ec,
337 	0x000341ec, 0x000341ec, 0x000341ec, 0x000341ec, 0x00f70081,
338 	0x00198eff, 0x00198eff, 0x00172000, 0x00172000, 0xf258a480,
339 	0xf258a480
340 };
341 
342 static const uint32_t ar9280_2_0_tx_gain_high_power_vals_2g[] = {
343 	0x0a1aa652, 0x050739ce, 0x00000000, 0x00004002, 0x00007008,
344 	0x0000c010, 0x00010012, 0x00013014, 0x0001820a, 0x0001b211,
345 	0x0001e213, 0x00022411, 0x00025413, 0x00029811, 0x0002c813,
346 	0x00030a14, 0x00035a50, 0x00039c4c, 0x0003de8a, 0x00042e92,
347 	0x00046ed2, 0x0004bed5, 0x0004ff54, 0x00055fd5, 0x00f70081,
348 	0x00198eff, 0x00198eff, 0x00172000, 0x00172000, 0xf258a480,
349 	0xf258a480
350 };
351 
352 static const struct athn_gain ar9280_2_0_tx_gain_high_power = {
353 	nitems(ar9280_2_0_tx_gain_regs),
354 	ar9280_2_0_tx_gain_regs,
355 	ar9280_2_0_tx_gain_high_power_vals_5g,
356 	ar9280_2_0_tx_gain_high_power_vals_2g
357 };
358 
359 /*
360  * AR9280 2.0 Rx gains.
361  */
362 static const uint16_t ar9280_2_0_rx_gain_regs[] = {
363 	P(0x09a00), P(0x09a04), P(0x09a08), P(0x09a0c), P(0x09a10),
364 	P(0x09a14), P(0x09a18), P(0x09a1c), P(0x09a20), P(0x09a24),
365 	P(0x09a28), P(0x09a2c), P(0x09a30), P(0x09a34), P(0x09a38),
366 	P(0x09a3c), P(0x09a40), P(0x09a44), P(0x09a48), P(0x09a4c),
367 	P(0x09a50), P(0x09a54), P(0x09a58), P(0x09a5c), P(0x09a60),
368 	P(0x09a64), P(0x09a68), P(0x09a6c), P(0x09a70), P(0x09a74),
369 	P(0x09a78), P(0x09a7c), P(0x09a80), P(0x09a84), P(0x09a88),
370 	P(0x09a8c), P(0x09a90), P(0x09a94), P(0x09a98), P(0x09a9c),
371 	P(0x09aa0), P(0x09aa4), P(0x09aa8), P(0x09aac), P(0x09ab0),
372 	P(0x09ab4), P(0x09ab8), P(0x09abc), P(0x09ac0), P(0x09ac4),
373 	P(0x09ac8), P(0x09acc), P(0x09ad0), P(0x09ad4), P(0x09ad8),
374 	P(0x09adc), P(0x09ae0), P(0x09ae4), P(0x09ae8), P(0x09aec),
375 	P(0x09af0), P(0x09af4), P(0x09af8), P(0x09afc), P(0x09b00),
376 	P(0x09b04), P(0x09b08), P(0x09b0c), P(0x09b10), P(0x09b14),
377 	P(0x09b18), P(0x09b1c), P(0x09b20), P(0x09b24), P(0x09b28),
378 	P(0x09b2c), P(0x09b30), P(0x09b34), P(0x09b38), P(0x09b3c),
379 	P(0x09b40), P(0x09b44), P(0x09b48), P(0x09b4c), P(0x09b50),
380 	P(0x09b54), P(0x09b58), P(0x09b5c), P(0x09b60), P(0x09b64),
381 	P(0x09b68), P(0x09b6c), P(0x09b70), P(0x09b74), P(0x09b78),
382 	P(0x09b7c), P(0x09b80), P(0x09b84), P(0x09b88), P(0x09b8c),
383 	P(0x09b90), P(0x09b94), P(0x09b98), P(0x09b9c), P(0x09ba0),
384 	P(0x09ba4), P(0x09ba8), P(0x09bac), P(0x09bb0), P(0x09bb4),
385 	P(0x09bb8), P(0x09bbc), P(0x09bc0), P(0x09bc4), P(0x09bc8),
386 	P(0x09bcc), P(0x09bd0), P(0x09bd4), P(0x09bd8), P(0x09bdc),
387 	P(0x09be0), P(0x09be4), P(0x09be8), P(0x09bec), P(0x09bf0),
388 	P(0x09bf4), P(0x09bf8), P(0x09bfc), P(0x09848), P(0x0a848)
389 };
390 
391 static const uint32_t ar9280_2_0_rx_gain_vals_5g[] = {
392 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
393 	0x00008200, 0x00008204, 0x00008208, 0x0000820c, 0x00008210,
394 	0x00008214, 0x00008280, 0x00008284, 0x00008288, 0x0000828c,
395 	0x00008290, 0x00008300, 0x00008304, 0x00008308, 0x0000830c,
396 	0x00008310, 0x00008314, 0x00008380, 0x00008384, 0x00008388,
397 	0x0000838c, 0x00008390, 0x00008394, 0x0000a380, 0x0000a384,
398 	0x0000a388, 0x0000a38c, 0x0000a390, 0x0000a394, 0x0000a780,
399 	0x0000a784, 0x0000a788, 0x0000a78c, 0x0000a790, 0x0000a794,
400 	0x0000ab84, 0x0000ab88, 0x0000ab8c, 0x0000ab90, 0x0000ab94,
401 	0x0000af80, 0x0000af84, 0x0000af88, 0x0000af8c, 0x0000af90,
402 	0x0000af94, 0x0000b380, 0x0000b384, 0x0000b388, 0x0000b38c,
403 	0x0000b390, 0x0000b394, 0x0000b398, 0x0000b780, 0x0000b784,
404 	0x0000b788, 0x0000b78c, 0x0000b790, 0x0000b794, 0x0000b798,
405 	0x0000d784, 0x0000d788, 0x0000d78c, 0x0000d790, 0x0000f780,
406 	0x0000f784, 0x0000f788, 0x0000f78c, 0x0000f790, 0x0000f794,
407 	0x0000f7a4, 0x0000f7a8, 0x0000f7ac, 0x0000f7b0, 0x0000f7b4,
408 	0x0000f7a1, 0x0000f7a5, 0x0000f7a9, 0x0000f7ad, 0x0000f7b1,
409 	0x0000f7b5, 0x0000f7c5, 0x0000f7c9, 0x0000f7cd, 0x0000f7d1,
410 	0x0000f7d5, 0x0000f7c2, 0x0000f7c6, 0x0000f7ca, 0x0000f7ce,
411 	0x0000f7d2, 0x0000f7d6, 0x0000f7c3, 0x0000f7c7, 0x0000f7cb,
412 	0x0000f7d3, 0x0000f7d7, 0x0000f7db, 0x0000f7db, 0x0000f7db,
413 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
414 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
415 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
416 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
417 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x00001066, 0x00001066
418 };
419 
420 static const uint32_t ar9280_2_0_rx_gain_vals_2g[] = {
421 	0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
422 	0x00008000, 0x00008004, 0x00008008, 0x0000800c, 0x00008080,
423 	0x00008084, 0x00008088, 0x0000808c, 0x00008100, 0x00008104,
424 	0x00008108, 0x0000810c, 0x00008110, 0x00008114, 0x00008180,
425 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
426 	0x000081a0, 0x0000820c, 0x000081a8, 0x00008284, 0x00008288,
427 	0x00008224, 0x00008290, 0x00008300, 0x00008304, 0x00008308,
428 	0x0000830c, 0x00008380, 0x00008384, 0x00008700, 0x00008704,
429 	0x00008708, 0x0000870c, 0x00008780, 0x00008784, 0x00008b00,
430 	0x00008b04, 0x00008b08, 0x00008b0c, 0x00008b80, 0x00008b84,
431 	0x00008b88, 0x00008b8c, 0x00008b90, 0x00008f80, 0x00008f84,
432 	0x00008f88, 0x00008f8c, 0x00008f90, 0x0000930c, 0x00009310,
433 	0x00009384, 0x00009388, 0x00009324, 0x00009704, 0x000096a4,
434 	0x000096a8, 0x00009710, 0x00009714, 0x00009720, 0x00009724,
435 	0x00009728, 0x0000972c, 0x000097a0, 0x000097a4, 0x000097a8,
436 	0x000097b0, 0x000097b4, 0x000097b8, 0x000097a5, 0x000097a9,
437 	0x000097ad, 0x000097b1, 0x000097b5, 0x000097b9, 0x000097c5,
438 	0x000097c9, 0x000097d1, 0x000097d5, 0x000097d9, 0x000097c6,
439 	0x000097ca, 0x000097ce, 0x000097d2, 0x000097d6, 0x000097c3,
440 	0x000097c7, 0x000097cb, 0x000097cf, 0x000097d7, 0x000097db,
441 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
442 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
443 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
444 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
445 	0x000097db, 0x000097db, 0x000097db, 0x000097db, 0x000097db,
446 	0x000097db, 0x000097db, 0x000097db, 0x00001063, 0x00001063
447 };
448 
449 static const struct athn_gain ar9280_2_0_rx_gain = {
450 	nitems(ar9280_2_0_rx_gain_regs),
451 	ar9280_2_0_rx_gain_regs,
452 	ar9280_2_0_rx_gain_vals_5g,
453 	ar9280_2_0_rx_gain_vals_2g
454 };
455 
456 static const uint32_t ar9280_2_0_rx_gain_13db_backoff_vals_5g[] = {
457 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
458 	0x00008200, 0x00008204, 0x00008208, 0x0000820c, 0x00008210,
459 	0x00008214, 0x00008280, 0x00008284, 0x00008288, 0x0000828c,
460 	0x00008290, 0x00008300, 0x00008304, 0x00008308, 0x0000830c,
461 	0x00008310, 0x00008314, 0x00008380, 0x00008384, 0x00008388,
462 	0x0000838c, 0x00008390, 0x00008394, 0x0000a380, 0x0000a384,
463 	0x0000a388, 0x0000a38c, 0x0000a390, 0x0000a394, 0x0000a780,
464 	0x0000a784, 0x0000a788, 0x0000a78c, 0x0000a790, 0x0000a794,
465 	0x0000ab84, 0x0000ab88, 0x0000ab8c, 0x0000ab90, 0x0000ab94,
466 	0x0000af80, 0x0000af84, 0x0000af88, 0x0000af8c, 0x0000af90,
467 	0x0000af94, 0x0000b380, 0x0000b384, 0x0000b388, 0x0000b38c,
468 	0x0000b390, 0x0000b394, 0x0000b398, 0x0000b780, 0x0000b784,
469 	0x0000b788, 0x0000b78c, 0x0000b790, 0x0000b794, 0x0000b798,
470 	0x0000d784, 0x0000d788, 0x0000d78c, 0x0000d790, 0x0000f780,
471 	0x0000f784, 0x0000f788, 0x0000f78c, 0x0000f790, 0x0000f794,
472 	0x0000f7a4, 0x0000f7a8, 0x0000f7ac, 0x0000f7b0, 0x0000f7b4,
473 	0x0000f7a1, 0x0000f7a5, 0x0000f7a9, 0x0000f7ad, 0x0000f7b1,
474 	0x0000f7b5, 0x0000f7c5, 0x0000f7c9, 0x0000f7cd, 0x0000f7d1,
475 	0x0000f7d5, 0x0000f7c2, 0x0000f7c6, 0x0000f7ca, 0x0000f7ce,
476 	0x0000f7d2, 0x0000f7d6, 0x0000f7c3, 0x0000f7c7, 0x0000f7cb,
477 	0x0000f7d3, 0x0000f7d7, 0x0000f7db, 0x0000f7db, 0x0000f7db,
478 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
479 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
480 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
481 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
482 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x00001066, 0x00001066
483 };
484 
485 static const uint32_t ar9280_2_0_rx_gain_13db_backoff_vals_2g[] = {
486 	0x00000290, 0x00000300, 0x00000304, 0x00000308, 0x0000030c,
487 	0x00008000, 0x00008004, 0x00008008, 0x0000800c, 0x00008080,
488 	0x00008084, 0x00008088, 0x0000808c, 0x00008100, 0x00008104,
489 	0x00008108, 0x0000810c, 0x00008110, 0x00008114, 0x00008180,
490 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
491 	0x000081a0, 0x0000820c, 0x000081a8, 0x00008284, 0x00008288,
492 	0x00008224, 0x00008290, 0x00008300, 0x00008304, 0x00008308,
493 	0x0000830c, 0x00008380, 0x00008384, 0x00008700, 0x00008704,
494 	0x00008708, 0x0000870c, 0x00008780, 0x00008784, 0x00008b00,
495 	0x00008b04, 0x00008b08, 0x00008b0c, 0x00008b80, 0x00008b84,
496 	0x00008b88, 0x00008b8c, 0x00008b90, 0x00008f80, 0x00008f84,
497 	0x00008f88, 0x00008f8c, 0x00008f90, 0x00009310, 0x00009314,
498 	0x00009320, 0x00009324, 0x00009328, 0x0000932c, 0x00009330,
499 	0x00009334, 0x00009321, 0x00009325, 0x00009329, 0x0000932d,
500 	0x00009331, 0x00009335, 0x00009322, 0x00009326, 0x0000932a,
501 	0x0000932e, 0x00009332, 0x00009336, 0x00009323, 0x00009327,
502 	0x0000932b, 0x0000932f, 0x00009333, 0x00009337, 0x00009343,
503 	0x00009347, 0x0000934b, 0x0000934f, 0x00009353, 0x00009357,
504 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
505 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
506 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
507 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
508 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
509 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
510 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b, 0x0000935b,
511 	0x0000935b, 0x0000935b, 0x0000935b, 0x0000105a, 0x0000105a
512 };
513 
514 static const struct athn_gain ar9280_2_0_rx_gain_13db_backoff = {
515 	nitems(ar9280_2_0_rx_gain_regs),
516 	ar9280_2_0_rx_gain_regs,
517 	ar9280_2_0_rx_gain_13db_backoff_vals_5g,
518 	ar9280_2_0_rx_gain_13db_backoff_vals_2g
519 };
520 
521 static const uint32_t ar9280_2_0_rx_gain_23db_backoff_vals_5g[] = {
522 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
523 	0x00008200, 0x00008204, 0x00008208, 0x0000820c, 0x00008210,
524 	0x00008214, 0x00008280, 0x00008284, 0x00008288, 0x0000828c,
525 	0x00008290, 0x00008300, 0x00008304, 0x00008308, 0x0000830c,
526 	0x00008310, 0x00008314, 0x00008380, 0x00008384, 0x00008388,
527 	0x0000838c, 0x00008390, 0x00008394, 0x0000a380, 0x0000a384,
528 	0x0000a388, 0x0000a38c, 0x0000a390, 0x0000a394, 0x0000a780,
529 	0x0000a784, 0x0000a788, 0x0000a78c, 0x0000a790, 0x0000a794,
530 	0x0000ab84, 0x0000ab88, 0x0000ab8c, 0x0000ab90, 0x0000ab94,
531 	0x0000af80, 0x0000af84, 0x0000af88, 0x0000af8c, 0x0000af90,
532 	0x0000af94, 0x0000b380, 0x0000b384, 0x0000b388, 0x0000b38c,
533 	0x0000b390, 0x0000b394, 0x0000b398, 0x0000b780, 0x0000b784,
534 	0x0000b788, 0x0000b78c, 0x0000b790, 0x0000b794, 0x0000b798,
535 	0x0000d784, 0x0000d788, 0x0000d78c, 0x0000d790, 0x0000f780,
536 	0x0000f784, 0x0000f788, 0x0000f78c, 0x0000f790, 0x0000f794,
537 	0x0000f7a4, 0x0000f7a8, 0x0000f7ac, 0x0000f7b0, 0x0000f7b4,
538 	0x0000f7a1, 0x0000f7a5, 0x0000f7a9, 0x0000f7ad, 0x0000f7b1,
539 	0x0000f7b5, 0x0000f7c5, 0x0000f7c9, 0x0000f7cd, 0x0000f7d1,
540 	0x0000f7d5, 0x0000f7c2, 0x0000f7c6, 0x0000f7ca, 0x0000f7ce,
541 	0x0000f7d2, 0x0000f7d6, 0x0000f7c3, 0x0000f7c7, 0x0000f7cb,
542 	0x0000f7d3, 0x0000f7d7, 0x0000f7db, 0x0000f7db, 0x0000f7db,
543 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
544 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
545 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
546 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db, 0x0000f7db,
547 	0x0000f7db, 0x0000f7db, 0x0000f7db, 0x00001066, 0x00001066
548 };
549 
550 static const uint32_t ar9280_2_0_rx_gain_23db_backoff_vals_2g[] = {
551 	0x00000290, 0x00000300, 0x00000304, 0x00000308, 0x0000030c,
552 	0x00008000, 0x00008004, 0x00008008, 0x0000800c, 0x00008080,
553 	0x00008084, 0x00008088, 0x0000808c, 0x00008100, 0x00008104,
554 	0x00008108, 0x0000810c, 0x00008110, 0x00008114, 0x00008180,
555 	0x00008184, 0x00008188, 0x0000818c, 0x00008190, 0x00008194,
556 	0x000081a0, 0x0000820c, 0x000081a8, 0x00008284, 0x00008288,
557 	0x00008224, 0x00008290, 0x00008300, 0x00008304, 0x00008308,
558 	0x0000830c, 0x00008380, 0x00008384, 0x00008700, 0x00008704,
559 	0x00008708, 0x0000870c, 0x00008780, 0x00008784, 0x00008b00,
560 	0x00008b04, 0x00008b08, 0x00008b0c, 0x00008b10, 0x00008b80,
561 	0x00008b84, 0x00008b88, 0x00008b8c, 0x00008b90, 0x00008b94,
562 	0x00008b98, 0x00008ba4, 0x00008ba8, 0x00008bac, 0x00008bb0,
563 	0x00008bb4, 0x00008ba1, 0x00008ba5, 0x00008ba9, 0x00008bad,
564 	0x00008bb1, 0x00008bb5, 0x00008ba2, 0x00008ba6, 0x00008baa,
565 	0x00008bae, 0x00008bb2, 0x00008bb6, 0x00008ba3, 0x00008ba7,
566 	0x00008bab, 0x00008baf, 0x00008bb3, 0x00008bb7, 0x00008bc3,
567 	0x00008bc7, 0x00008bcb, 0x00008bcf, 0x00008bd3, 0x00008bd7,
568 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
569 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
570 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
571 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
572 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
573 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
574 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
575 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00008bdb,
576 	0x00008bdb, 0x00008bdb, 0x00008bdb, 0x00001055, 0x00001055
577 };
578 
579 static const struct athn_gain ar9280_2_0_rx_gain_23db_backoff = {
580 	nitems(ar9280_2_0_rx_gain_regs),
581 	ar9280_2_0_rx_gain_regs,
582 	ar9280_2_0_rx_gain_23db_backoff_vals_5g,
583 	ar9280_2_0_rx_gain_23db_backoff_vals_2g
584 };
585 
586 /*
587  * Serializer/Deserializer programming.
588  */
589 static const uint32_t ar9280_2_0_serdes[] = {
590 	0x9248fd00,
591 	0x24924924,
592 	0xa8000019,
593 	0x13160820,
594 	0xe5980560,
595 #ifdef ATHN_PCIE_CLKREQ
596 	0xc01dcffc,
597 #else
598 	0xc01dcffd,
599 #endif
600 	0x1aaabe41,
601 	0xbe105554,
602 	0x00043007
603 };
604