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