arn5416reg.h revision 1.1.4.2 1 1.1.4.2 tls /* $NetBSD: arn5416reg.h,v 1.1.4.2 2013/06/23 06:20:17 tls Exp $ */
2 1.1.4.2 tls /* $OpenBSD: ar5416reg.h,v 1.5 2012/10/20 09:54:20 stsp Exp $ */
3 1.1.4.2 tls
4 1.1.4.2 tls /*-
5 1.1.4.2 tls * Copyright (c) 2009 Damien Bergamini <damien.bergamini (at) free.fr>
6 1.1.4.2 tls * Copyright (c) 2008-2009 Atheros Communications Inc.
7 1.1.4.2 tls *
8 1.1.4.2 tls * Permission to use, copy, modify, and/or distribute this software for any
9 1.1.4.2 tls * purpose with or without fee is hereby granted, provided that the above
10 1.1.4.2 tls * copyright notice and this permission notice appear in all copies.
11 1.1.4.2 tls *
12 1.1.4.2 tls * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13 1.1.4.2 tls * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14 1.1.4.2 tls * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15 1.1.4.2 tls * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 1.1.4.2 tls * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17 1.1.4.2 tls * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18 1.1.4.2 tls * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 1.1.4.2 tls */
20 1.1.4.2 tls
21 1.1.4.2 tls #ifndef _ARN5416REG_H_
22 1.1.4.2 tls #define _ARN5416REG_H_
23 1.1.4.2 tls
24 1.1.4.2 tls #define AR5416_MAX_CHAINS 3
25 1.1.4.2 tls
26 1.1.4.2 tls #define AR5416_PHY_CCA_MAX_GOOD_VALUE ( -85)
27 1.1.4.2 tls
28 1.1.4.2 tls /*
29 1.1.4.2 tls * ROM layout used by AR5416, AR9160 and AR9280.
30 1.1.4.2 tls */
31 1.1.4.2 tls #define AR5416_EEP_START_LOC 256
32 1.1.4.2 tls #define AR5416_NUM_5G_CAL_PIERS 8
33 1.1.4.2 tls #define AR5416_NUM_2G_CAL_PIERS 4
34 1.1.4.2 tls #define AR5416_NUM_5G_20_TARGET_POWERS 8
35 1.1.4.2 tls #define AR5416_NUM_5G_40_TARGET_POWERS 8
36 1.1.4.2 tls #define AR5416_NUM_2G_CCK_TARGET_POWERS 3
37 1.1.4.2 tls #define AR5416_NUM_2G_20_TARGET_POWERS 4
38 1.1.4.2 tls #define AR5416_NUM_2G_40_TARGET_POWERS 4
39 1.1.4.2 tls #define AR5416_NUM_CTLS 24
40 1.1.4.2 tls #define AR5416_NUM_BAND_EDGES 8
41 1.1.4.2 tls #define AR5416_NUM_PD_GAINS 4
42 1.1.4.2 tls #define AR5416_PD_GAINS_IN_MASK 4
43 1.1.4.2 tls #define AR5416_PD_GAIN_ICEPTS 5
44 1.1.4.2 tls
45 1.1.4.2 tls struct ar5416_base_eep_header {
46 1.1.4.2 tls uint16_t length;
47 1.1.4.2 tls uint16_t checksum;
48 1.1.4.2 tls uint16_t version;
49 1.1.4.2 tls uint8_t opCapFlags;
50 1.1.4.2 tls uint8_t eepMisc;
51 1.1.4.2 tls uint16_t regDmn[2];
52 1.1.4.2 tls uint8_t macAddr[6];
53 1.1.4.2 tls uint8_t rxMask;
54 1.1.4.2 tls uint8_t txMask;
55 1.1.4.2 tls uint16_t rfSilent;
56 1.1.4.2 tls uint16_t blueToothOptions;
57 1.1.4.2 tls uint16_t deviceCap;
58 1.1.4.2 tls uint32_t binBuildNumber;
59 1.1.4.2 tls uint8_t deviceType;
60 1.1.4.2 tls /* End of common header. */
61 1.1.4.2 tls uint8_t pwdclkind;
62 1.1.4.2 tls uint8_t fastClk5g;
63 1.1.4.2 tls uint8_t divChain;
64 1.1.4.2 tls uint8_t rxGainType;
65 1.1.4.2 tls #define AR5416_EEP_RXGAIN_23DB_BACKOFF 0
66 1.1.4.2 tls #define AR5416_EEP_RXGAIN_13DB_BACKOFF 1
67 1.1.4.2 tls #define AR5416_EEP_RXGAIN_ORIG 2
68 1.1.4.2 tls
69 1.1.4.2 tls uint8_t dacHiPwrMode_5G;
70 1.1.4.2 tls uint8_t openLoopPwrCntl;
71 1.1.4.2 tls uint8_t dacLpMode;
72 1.1.4.2 tls uint8_t txGainType;
73 1.1.4.2 tls uint8_t rcChainMask;
74 1.1.4.2 tls uint8_t desiredScaleCCK;
75 1.1.4.2 tls uint8_t pwrTableOffset;
76 1.1.4.2 tls uint8_t frac_n_5g;
77 1.1.4.2 tls uint8_t futureBase[21];
78 1.1.4.2 tls } __packed;
79 1.1.4.2 tls
80 1.1.4.2 tls struct ar5416_modal_eep_header {
81 1.1.4.2 tls uint32_t antCtrlChain[AR5416_MAX_CHAINS];
82 1.1.4.2 tls uint32_t antCtrlCommon;
83 1.1.4.2 tls uint8_t antennaGainCh[AR5416_MAX_CHAINS];
84 1.1.4.2 tls uint8_t switchSettling;
85 1.1.4.2 tls uint8_t txRxAttenCh[AR5416_MAX_CHAINS];
86 1.1.4.2 tls uint8_t rxTxMarginCh[AR5416_MAX_CHAINS];
87 1.1.4.2 tls uint8_t adcDesiredSize;
88 1.1.4.2 tls uint8_t pgaDesiredSize;
89 1.1.4.2 tls uint8_t xlnaGainCh[AR5416_MAX_CHAINS];
90 1.1.4.2 tls uint8_t txEndToXpaOff;
91 1.1.4.2 tls uint8_t txEndToRxOn;
92 1.1.4.2 tls uint8_t txFrameToXpaOn;
93 1.1.4.2 tls uint8_t thresh62;
94 1.1.4.2 tls uint8_t noiseFloorThreshCh[AR5416_MAX_CHAINS];
95 1.1.4.2 tls uint8_t xpdGain;
96 1.1.4.2 tls uint8_t xpd;
97 1.1.4.2 tls uint8_t iqCalICh[AR5416_MAX_CHAINS];
98 1.1.4.2 tls uint8_t iqCalQCh[AR5416_MAX_CHAINS];
99 1.1.4.2 tls uint8_t pdGainOverlap;
100 1.1.4.2 tls uint8_t ob;
101 1.1.4.2 tls uint8_t db;
102 1.1.4.2 tls uint8_t xpaBiasLvl;
103 1.1.4.2 tls uint8_t pwrDecreaseFor2Chain;
104 1.1.4.2 tls uint8_t pwrDecreaseFor3Chain;
105 1.1.4.2 tls uint8_t txFrameToDataStart;
106 1.1.4.2 tls uint8_t txFrameToPaOn;
107 1.1.4.2 tls uint8_t ht40PowerIncForPdadc;
108 1.1.4.2 tls uint8_t bswAtten[AR5416_MAX_CHAINS];
109 1.1.4.2 tls uint8_t bswMargin[AR5416_MAX_CHAINS];
110 1.1.4.2 tls uint8_t swSettleHt40;
111 1.1.4.2 tls uint8_t xatten2Db[AR5416_MAX_CHAINS];
112 1.1.4.2 tls uint8_t xatten2Margin[AR5416_MAX_CHAINS];
113 1.1.4.2 tls uint8_t ob_ch1;
114 1.1.4.2 tls uint8_t db_ch1;
115 1.1.4.2 tls uint8_t flagBits;
116 1.1.4.2 tls #define AR5416_EEP_FLAG_USEANT1 0x01
117 1.1.4.2 tls #define AR5416_EEP_FLAG_FORCEXPAON 0x02
118 1.1.4.2 tls #define AR5416_EEP_FLAG_LOCALBIAS 0x04
119 1.1.4.2 tls #define AR5416_EEP_FLAG_FEMBANDSELECT 0x08
120 1.1.4.2 tls #define AR5416_EEP_FLAG_XLNABUFIN 0x10
121 1.1.4.2 tls #define AR5416_EEP_FLAG_XLNAISEL_M 0x60
122 1.1.4.2 tls #define AR5416_EEP_FLAG_XLNAISEL_S 5
123 1.1.4.2 tls #define AR5416_EEP_FLAG_XLNABUFMODE 0x80
124 1.1.4.2 tls
125 1.1.4.2 tls uint8_t miscBits;
126 1.1.4.2 tls #define AR5416_EEP_MISC_TX_DAC_SCALE_CCK_M 0x03
127 1.1.4.2 tls #define AR5416_EEP_MISC_TX_DAC_SCALE_CCK_S 0
128 1.1.4.2 tls #define AR5416_EEP_MISC_TX_CLIP_M 0xfc
129 1.1.4.2 tls #define AR5416_EEP_MISC_TX_CLIP_S 2
130 1.1.4.2 tls
131 1.1.4.2 tls uint16_t xpaBiasLvlFreq[3];
132 1.1.4.2 tls uint8_t futureModal[6];
133 1.1.4.2 tls struct ar_spur_chan spurChans[AR_EEPROM_MODAL_SPURS];
134 1.1.4.2 tls } __packed;
135 1.1.4.2 tls
136 1.1.4.2 tls struct ar5416_cal_data_per_freq {
137 1.1.4.2 tls uint8_t pwrPdg[AR5416_NUM_PD_GAINS][AR5416_PD_GAIN_ICEPTS];
138 1.1.4.2 tls uint8_t vpdPdg[AR5416_NUM_PD_GAINS][AR5416_PD_GAIN_ICEPTS];
139 1.1.4.2 tls } __packed;
140 1.1.4.2 tls
141 1.1.4.2 tls struct ar5416_cal_ctl_data {
142 1.1.4.2 tls struct ar_cal_ctl_edges
143 1.1.4.2 tls ctlEdges[AR5416_MAX_CHAINS][AR5416_NUM_BAND_EDGES];
144 1.1.4.2 tls } __packed;
145 1.1.4.2 tls
146 1.1.4.2 tls struct ar5416_eeprom {
147 1.1.4.2 tls struct ar5416_base_eep_header baseEepHeader;
148 1.1.4.2 tls uint8_t custData[64];
149 1.1.4.2 tls struct ar5416_modal_eep_header modalHeader[2];
150 1.1.4.2 tls uint8_t calFreqPier5G[AR5416_NUM_5G_CAL_PIERS];
151 1.1.4.2 tls uint8_t calFreqPier2G[AR5416_NUM_2G_CAL_PIERS];
152 1.1.4.2 tls struct ar5416_cal_data_per_freq
153 1.1.4.2 tls calPierData5G[AR5416_MAX_CHAINS][AR5416_NUM_5G_CAL_PIERS];
154 1.1.4.2 tls struct ar5416_cal_data_per_freq
155 1.1.4.2 tls calPierData2G[AR5416_MAX_CHAINS][AR5416_NUM_2G_CAL_PIERS];
156 1.1.4.2 tls struct ar_cal_target_power_leg
157 1.1.4.2 tls calTargetPower5G[AR5416_NUM_5G_20_TARGET_POWERS];
158 1.1.4.2 tls struct ar_cal_target_power_ht
159 1.1.4.2 tls calTargetPower5GHT20[AR5416_NUM_5G_20_TARGET_POWERS];
160 1.1.4.2 tls struct ar_cal_target_power_ht
161 1.1.4.2 tls calTargetPower5GHT40[AR5416_NUM_5G_40_TARGET_POWERS];
162 1.1.4.2 tls struct ar_cal_target_power_leg
163 1.1.4.2 tls calTargetPowerCck[AR5416_NUM_2G_CCK_TARGET_POWERS];
164 1.1.4.2 tls struct ar_cal_target_power_leg
165 1.1.4.2 tls calTargetPower2G[AR5416_NUM_2G_20_TARGET_POWERS];
166 1.1.4.2 tls struct ar_cal_target_power_ht
167 1.1.4.2 tls calTargetPower2GHT20[AR5416_NUM_2G_20_TARGET_POWERS];
168 1.1.4.2 tls struct ar_cal_target_power_ht
169 1.1.4.2 tls calTargetPower2GHT40[AR5416_NUM_2G_40_TARGET_POWERS];
170 1.1.4.2 tls uint8_t ctlIndex[AR5416_NUM_CTLS];
171 1.1.4.2 tls struct ar5416_cal_ctl_data ctlData[AR5416_NUM_CTLS];
172 1.1.4.2 tls uint8_t padding;
173 1.1.4.2 tls } __packed;
174 1.1.4.2 tls
175 1.1.4.2 tls /* Macro to "pack" registers to 16-bit to save some .rodata space. */
176 1.1.4.2 tls #define P(x) (x)
177 1.1.4.2 tls
178 1.1.4.2 tls /*
179 1.1.4.2 tls * AR5416 initialization values.
180 1.1.4.2 tls */
181 1.1.4.2 tls static const uint16_t ar5416_regs[] = {
182 1.1.4.2 tls P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014),
183 1.1.4.2 tls P(0x0801c), P(0x08120), P(0x081d0), P(0x09804), P(0x09820),
184 1.1.4.2 tls P(0x09824), P(0x09828), P(0x09834), P(0x09838), P(0x09844),
185 1.1.4.2 tls P(0x09848), P(0x0a848), P(0x0b848), P(0x09850), P(0x09858),
186 1.1.4.2 tls P(0x0985c), P(0x09860), P(0x09864), P(0x09868), P(0x0986c),
187 1.1.4.2 tls P(0x09914), P(0x09918), P(0x09924), P(0x09944), P(0x09960),
188 1.1.4.2 tls P(0x0a960), P(0x0b960), P(0x09964), P(0x099bc), P(0x099c0),
189 1.1.4.2 tls P(0x099c4), P(0x099c8), P(0x099cc), P(0x099d0), P(0x099d4),
190 1.1.4.2 tls P(0x099d8), P(0x0a204), P(0x0a208), P(0x0a20c), P(0x0b20c),
191 1.1.4.2 tls P(0x0c20c), P(0x0a21c), P(0x0a230), P(0x0a274), P(0x0a300),
192 1.1.4.2 tls P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310), P(0x0a314),
193 1.1.4.2 tls P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324), P(0x0a328),
194 1.1.4.2 tls P(0x0a32c), P(0x0a330), P(0x0a334)
195 1.1.4.2 tls };
196 1.1.4.2 tls
197 1.1.4.2 tls static const uint32_t ar5416_vals_5g20[] = {
198 1.1.4.2 tls 0x00000230, 0x00000168, 0x00000e60, 0x0000a000, 0x03e803e8,
199 1.1.4.2 tls 0x128d93a7, 0x08f04800, 0x00003210, 0x00000300, 0x02020200,
200 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x1372161e,
201 1.1.4.2 tls 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6c48b4e0, 0x7ec82d2e,
202 1.1.4.2 tls 0x31395d5e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081,
203 1.1.4.2 tls 0x000007d0, 0x000001b8, 0xd0058a0b, 0xffb81020, 0x00000900,
204 1.1.4.2 tls 0x00000900, 0x00000900, 0x00000000, 0x001a0a00, 0x038919be,
205 1.1.4.2 tls 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000,
206 1.1.4.2 tls 0x00000000, 0x00000880, 0xd6be4788, 0x002ec1e0, 0x002ec1e0,
207 1.1.4.2 tls 0x002ec1e0, 0x1883800a, 0x00000000, 0x0a1a9caa, 0x18010000,
208 1.1.4.2 tls 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f, 0x7a4f6e1b,
209 1.1.4.2 tls 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbd07, 0x0000d7bf,
210 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000
211 1.1.4.2 tls };
212 1.1.4.2 tls
213 1.1.4.2 tls #ifndef IEEE80211_NO_HT
214 1.1.4.2 tls static const uint32_t ar5416_vals_5g40[] = {
215 1.1.4.2 tls 0x00000460, 0x000002d0, 0x00001cc0, 0x00014000, 0x07d007d0,
216 1.1.4.2 tls 0x128d93cf, 0x08f04800, 0x00003210, 0x000003c4, 0x02020200,
217 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x1372161e,
218 1.1.4.2 tls 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6d48b4e0, 0x7ec82d2e,
219 1.1.4.2 tls 0x3139605e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081,
220 1.1.4.2 tls 0x00000fa0, 0x00000370, 0xd0058a0b, 0xffb81020, 0x00000900,
221 1.1.4.2 tls 0x00000900, 0x00000900, 0x00000000, 0x001a0a00, 0x038919be,
222 1.1.4.2 tls 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000,
223 1.1.4.2 tls 0x00000000, 0x00000880, 0xd6be4788, 0x002ec1e0, 0x002ec1e0,
224 1.1.4.2 tls 0x002ec1e0, 0x1883800a, 0x00000000, 0x0a1a9caa, 0x18010000,
225 1.1.4.2 tls 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f, 0x7a4f6e1b,
226 1.1.4.2 tls 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbcbf, 0x0000d7bf,
227 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000
228 1.1.4.2 tls };
229 1.1.4.2 tls
230 1.1.4.2 tls static const uint32_t ar5416_vals_2g40[] = {
231 1.1.4.2 tls 0x000002c0, 0x00000318, 0x00007c70, 0x00016000, 0x10801600,
232 1.1.4.2 tls 0x12e013d7, 0x08f04810, 0x0000320a, 0x000003c4, 0x02020200,
233 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x137216a0,
234 1.1.4.2 tls 0x00197a68, 0x00197a68, 0x00197a68, 0x6d48b0de, 0x7ec82d2e,
235 1.1.4.2 tls 0x3139605e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081,
236 1.1.4.2 tls 0x00001130, 0x00000268, 0xd0058a0b, 0xffb81020, 0x00012d80,
237 1.1.4.2 tls 0x00012d80, 0x00012d80, 0x00001120, 0x001a0a00, 0x038919be,
238 1.1.4.2 tls 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000,
239 1.1.4.2 tls 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120, 0x002ac120,
240 1.1.4.2 tls 0x002ac120, 0x1883800a, 0x00000210, 0x0a1a7caa, 0x18010000,
241 1.1.4.2 tls 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b, 0x845b7a5a,
242 1.1.4.2 tls 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f, 0x00000000,
243 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000
244 1.1.4.2 tls };
245 1.1.4.2 tls #endif
246 1.1.4.2 tls
247 1.1.4.2 tls static const uint32_t ar5416_vals_2g20[] = {
248 1.1.4.2 tls 0x00000160, 0x0000018c, 0x00003e38, 0x0000b000, 0x08400b00,
249 1.1.4.2 tls 0x12e013ab, 0x08f04810, 0x0000320a, 0x00000300, 0x02020200,
250 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x137216a0,
251 1.1.4.2 tls 0x00197a68, 0x00197a68, 0x00197a68, 0x6c48b0de, 0x7ec82d2e,
252 1.1.4.2 tls 0x31395d5e, 0x00049d18, 0x0001ce00, 0x409a4190, 0x050cb081,
253 1.1.4.2 tls 0x00000898, 0x00000134, 0xd0058a0b, 0xffb81020, 0x00012d80,
254 1.1.4.2 tls 0x00012d80, 0x00012d80, 0x00001120, 0x001a0a00, 0x038919be,
255 1.1.4.2 tls 0x06336f77, 0x6af6532c, 0x08f186c8, 0x00046384, 0x00000000,
256 1.1.4.2 tls 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120, 0x002ac120,
257 1.1.4.2 tls 0x002ac120, 0x1883800a, 0x00000108, 0x0a1a7caa, 0x18010000,
258 1.1.4.2 tls 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b, 0x845b7a5a,
259 1.1.4.2 tls 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f, 0x00000000,
260 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000
261 1.1.4.2 tls };
262 1.1.4.2 tls
263 1.1.4.2 tls static const uint16_t ar5416_cm_regs[] = {
264 1.1.4.2 tls P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044),
265 1.1.4.2 tls P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800),
266 1.1.4.2 tls P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814),
267 1.1.4.2 tls P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040),
268 1.1.4.2 tls P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054),
269 1.1.4.2 tls P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230),
270 1.1.4.2 tls P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8),
271 1.1.4.2 tls P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238),
272 1.1.4.2 tls P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378),
273 1.1.4.2 tls P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8),
274 1.1.4.2 tls P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8),
275 1.1.4.2 tls P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738),
276 1.1.4.2 tls P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c),
277 1.1.4.2 tls P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc),
278 1.1.4.2 tls P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc),
279 1.1.4.2 tls P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c),
280 1.1.4.2 tls P(0x0147c), P(0x04030), P(0x0403c), P(0x07010), P(0x07038),
281 1.1.4.2 tls P(0x08004), P(0x08008), P(0x0800c), P(0x08018), P(0x08020),
282 1.1.4.2 tls P(0x08038), P(0x0803c), P(0x08048), P(0x08054), P(0x08058),
283 1.1.4.2 tls P(0x0805c), P(0x08060), P(0x08064), P(0x080c0), P(0x080c4),
284 1.1.4.2 tls P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8),
285 1.1.4.2 tls P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0),
286 1.1.4.2 tls P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104),
287 1.1.4.2 tls P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c),
288 1.1.4.2 tls P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134),
289 1.1.4.2 tls P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c),
290 1.1.4.2 tls P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c4),
291 1.1.4.2 tls P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc),
292 1.1.4.2 tls P(0x08200), P(0x08204), P(0x08208), P(0x0820c), P(0x08210),
293 1.1.4.2 tls P(0x08214), P(0x08218), P(0x0821c), P(0x08220), P(0x08224),
294 1.1.4.2 tls P(0x08228), P(0x0822c), P(0x08230), P(0x08234), P(0x08238),
295 1.1.4.2 tls P(0x0823c), P(0x08240), P(0x08244), P(0x08248), P(0x0824c),
296 1.1.4.2 tls P(0x08250), P(0x08254), P(0x08258), P(0x0825c), P(0x08260),
297 1.1.4.2 tls P(0x08264), P(0x08270), P(0x08274), P(0x08278), P(0x0827c),
298 1.1.4.2 tls P(0x08284), P(0x08288), P(0x0828c), P(0x08294), P(0x08298),
299 1.1.4.2 tls P(0x08300), P(0x08304), P(0x08308), P(0x0830c), P(0x08310),
300 1.1.4.2 tls P(0x08314), P(0x08318), P(0x08328), P(0x0832c), P(0x08330),
301 1.1.4.2 tls P(0x08334), P(0x08338), P(0x0833c), P(0x08340), P(0x09808),
302 1.1.4.2 tls P(0x0980c), P(0x09810), P(0x09814), P(0x0981c), P(0x0982c),
303 1.1.4.2 tls P(0x09830), P(0x0983c), P(0x09840), P(0x0984c), P(0x09854),
304 1.1.4.2 tls P(0x09900), P(0x09904), P(0x09908), P(0x0990c), P(0x0991c),
305 1.1.4.2 tls P(0x09920), P(0x0a920), P(0x0b920), P(0x09928), P(0x0992c),
306 1.1.4.2 tls P(0x09934), P(0x09938), P(0x0993c), P(0x09948), P(0x0994c),
307 1.1.4.2 tls P(0x09954), P(0x09958), P(0x0c95c), P(0x0c968), P(0x09970),
308 1.1.4.2 tls P(0x09974), P(0x09978), P(0x0997c), P(0x09980), P(0x09984),
309 1.1.4.2 tls P(0x09988), P(0x0998c), P(0x09990), P(0x09994), P(0x09998),
310 1.1.4.2 tls P(0x0999c), P(0x099a0), P(0x099a4), P(0x099a8), P(0x099ac),
311 1.1.4.2 tls P(0x099b0), P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8),
312 1.1.4.2 tls P(0x099ec), P(0x099fc), P(0x09b00), P(0x09b04), P(0x09b08),
313 1.1.4.2 tls P(0x09b0c), P(0x09b10), P(0x09b14), P(0x09b18), P(0x09b1c),
314 1.1.4.2 tls P(0x09b20), P(0x09b24), P(0x09b28), P(0x09b2c), P(0x09b30),
315 1.1.4.2 tls P(0x09b34), P(0x09b38), P(0x09b3c), P(0x09b40), P(0x09b44),
316 1.1.4.2 tls P(0x09b48), P(0x09b4c), P(0x09b50), P(0x09b54), P(0x09b58),
317 1.1.4.2 tls P(0x09b5c), P(0x09b60), P(0x09b64), P(0x09b68), P(0x09b6c),
318 1.1.4.2 tls P(0x09b70), P(0x09b74), P(0x09b78), P(0x09b7c), P(0x09b80),
319 1.1.4.2 tls P(0x09b84), P(0x09b88), P(0x09b8c), P(0x09b90), P(0x09b94),
320 1.1.4.2 tls P(0x09b98), P(0x09b9c), P(0x09ba0), P(0x09ba4), P(0x09ba8),
321 1.1.4.2 tls P(0x09bac), P(0x09bb0), P(0x09bb4), P(0x09bb8), P(0x09bbc),
322 1.1.4.2 tls P(0x09bc0), P(0x09bc4), P(0x09bc8), P(0x09bcc), P(0x09bd0),
323 1.1.4.2 tls P(0x09bd4), P(0x09bd8), P(0x09bdc), P(0x09be0), P(0x09be4),
324 1.1.4.2 tls P(0x09be8), P(0x09bec), P(0x09bf0), P(0x09bf4), P(0x09bf8),
325 1.1.4.2 tls P(0x09bfc), P(0x0a210), P(0x0a214), P(0x0a218), P(0x0a220),
326 1.1.4.2 tls P(0x0a224), P(0x0a228), P(0x0a22c), P(0x0a234), P(0x0a238),
327 1.1.4.2 tls P(0x0a23c), P(0x0a240), P(0x0a244), P(0x0a248), P(0x0a24c),
328 1.1.4.2 tls P(0x0a250), P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260),
329 1.1.4.2 tls P(0x0a268), P(0x0a26c), P(0x0b26c), P(0x0c26c), P(0x0d270),
330 1.1.4.2 tls P(0x0a278), P(0x0a27c), P(0x0a338), P(0x0a33c), P(0x0a340),
331 1.1.4.2 tls P(0x0a344), P(0x0a348), P(0x0a34c), P(0x0a350), P(0x0a354),
332 1.1.4.2 tls P(0x0a358), P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368),
333 1.1.4.2 tls P(0x0d36c), P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c),
334 1.1.4.2 tls P(0x0d380), P(0x0d384), P(0x0a388), P(0x0a38c), P(0x0a390),
335 1.1.4.2 tls P(0x0a394), P(0x0a398), P(0x0a39c), P(0x0a3a0), P(0x0a3a4),
336 1.1.4.2 tls P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), P(0x0a3b4), P(0x0a3b8),
337 1.1.4.2 tls P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), P(0x0a3c8), P(0x0a3cc),
338 1.1.4.2 tls P(0x0a3d0), P(0x0a3d4), P(0x0a3dc), P(0x0a3e0)
339 1.1.4.2 tls };
340 1.1.4.2 tls
341 1.1.4.2 tls static const uint32_t ar5416_cm_vals[] = {
342 1.1.4.2 tls 0x00000000, 0x00020015, 0x00000005, 0x00000000, 0x00000008,
343 1.1.4.2 tls 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000,
344 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
345 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f,
346 1.1.4.2 tls 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f,
347 1.1.4.2 tls 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000,
348 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
349 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
350 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
351 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
352 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
353 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
354 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
355 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
356 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
357 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
358 1.1.4.2 tls 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x000004c2,
359 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000700, 0x00000000,
360 1.1.4.2 tls 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000,
361 1.1.4.2 tls 0x000fc78f, 0x0000000f, 0x00000000, 0x2a82301a, 0x05dc01e0,
362 1.1.4.2 tls 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000,
363 1.1.4.2 tls 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000,
364 1.1.4.2 tls 0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001,
365 1.1.4.2 tls 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210,
366 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
367 1.1.4.2 tls 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
368 1.1.4.2 tls 0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 0x00000000,
369 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
370 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
371 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
372 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
373 1.1.4.2 tls 0x00000000, 0x00100000, 0x0010f400, 0x00000100, 0x0001e800,
374 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x400000ff, 0x00080922,
375 1.1.4.2 tls 0x88000010, 0x00000000, 0x40000000, 0x003e4180, 0x00000000,
376 1.1.4.2 tls 0x0000002c, 0x0000002c, 0x00000000, 0x00000000, 0x00000000,
377 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
378 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000302,
379 1.1.4.2 tls 0x00000e00, 0x00070000, 0x00000000, 0x000107ff, 0x00000000,
380 1.1.4.2 tls 0xad848e19, 0x7d14e000, 0x9c0a9f6b, 0x00000000, 0x0000a000,
381 1.1.4.2 tls 0x00000000, 0x00200400, 0x206a002e, 0x1284233c, 0x00000859,
382 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000fff,
383 1.1.4.2 tls 0x05100000, 0x05100000, 0x05100000, 0x00000001, 0x00000004,
384 1.1.4.2 tls 0x1e1f2022, 0x0a0b0c0d, 0x00000000, 0x9280b212, 0x00020028,
385 1.1.4.2 tls 0x5d50e188, 0x00081fff, 0x004b6a8e, 0x000003ce, 0x190fb515,
386 1.1.4.2 tls 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
387 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
388 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000001, 0x001fff00, 0x00000000,
389 1.1.4.2 tls 0x03051000, 0x00000000, 0x00000200, 0xaaaaaaaa, 0x3c466478,
390 1.1.4.2 tls 0x000000aa, 0x00001042, 0x00000000, 0x00000001, 0x00000002,
391 1.1.4.2 tls 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x00000009,
392 1.1.4.2 tls 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x00000010,
393 1.1.4.2 tls 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015,
394 1.1.4.2 tls 0x00000018, 0x00000019, 0x0000001a, 0x0000001b, 0x0000001c,
395 1.1.4.2 tls 0x0000001d, 0x00000020, 0x00000021, 0x00000022, 0x00000023,
396 1.1.4.2 tls 0x00000024, 0x00000025, 0x00000028, 0x00000029, 0x0000002a,
397 1.1.4.2 tls 0x0000002b, 0x0000002c, 0x0000002d, 0x00000030, 0x00000031,
398 1.1.4.2 tls 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000035,
399 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
400 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
401 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
402 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000010,
403 1.1.4.2 tls 0x0000001a, 0x40806333, 0x00106c10, 0x009c4060, 0x018830c6,
404 1.1.4.2 tls 0x00000400, 0x00000bb5, 0x00000011, 0x20202020, 0x20202020,
405 1.1.4.2 tls 0x13c889af, 0x38490a20, 0x00007bb6, 0x0fff3ffc, 0x00000001,
406 1.1.4.2 tls 0x0000a000, 0x00000000, 0x0cc75380, 0x0f0f0f01, 0xdfa91f01,
407 1.1.4.2 tls 0x00000000, 0x0e79e5c6, 0x0e79e5c6, 0x0e79e5c6, 0x00820820,
408 1.1.4.2 tls 0x1ce739ce, 0x051701ce, 0x00000000, 0x00000000, 0x00000000,
409 1.1.4.2 tls 0x00000000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x0003ffff,
410 1.1.4.2 tls 0x79a8aa1f, 0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4,
411 1.1.4.2 tls 0x37ffffe3, 0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2,
412 1.1.4.2 tls 0x7f3c7bba, 0xf3307ff0, 0x08000000, 0x20202020, 0x20202020,
413 1.1.4.2 tls 0x1ce739ce, 0x000001ce, 0x00000001, 0x00000000, 0x00000000,
414 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
415 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000246, 0x20202020,
416 1.1.4.2 tls 0x20202020, 0x20202020, 0x1ce739ce, 0x000001ce
417 1.1.4.2 tls };
418 1.1.4.2 tls
419 1.1.4.2 tls static const struct athn_ini ar5416_ini = {
420 1.1.4.2 tls .nregs = __arraycount(ar5416_regs),
421 1.1.4.2 tls .regs = ar5416_regs,
422 1.1.4.2 tls .vals_5g20 = ar5416_vals_5g20,
423 1.1.4.2 tls #ifndef IEEE80211_NO_HT
424 1.1.4.2 tls .vals_5g40 = ar5416_vals_5g40,
425 1.1.4.2 tls .vals_2g40 = ar5416_vals_2g40,
426 1.1.4.2 tls #endif
427 1.1.4.2 tls .vals_2g20 = ar5416_vals_2g20,
428 1.1.4.2 tls .ncmregs = __arraycount(ar5416_cm_regs),
429 1.1.4.2 tls .cmregs = ar5416_cm_regs,
430 1.1.4.2 tls .cmvals = ar5416_cm_vals
431 1.1.4.2 tls };
432 1.1.4.2 tls
433 1.1.4.2 tls /*
434 1.1.4.2 tls * AR9160 initialization values.
435 1.1.4.2 tls */
436 1.1.4.2 tls static const uint16_t ar9160_regs[] = {
437 1.1.4.2 tls P(0x01030), P(0x01070), P(0x010b0), P(0x010f0), P(0x08014),
438 1.1.4.2 tls P(0x0801c), P(0x08120), P(0x081d0), P(0x09804), P(0x09820),
439 1.1.4.2 tls P(0x09824), P(0x09828), P(0x09834), P(0x09838), P(0x09844),
440 1.1.4.2 tls P(0x09848), P(0x0a848), P(0x0b848), P(0x09850), P(0x09858),
441 1.1.4.2 tls P(0x0985c), P(0x09860), P(0x09864), P(0x09868), P(0x0986c),
442 1.1.4.2 tls P(0x09914), P(0x09918), P(0x09924), P(0x09944), P(0x09960),
443 1.1.4.2 tls P(0x0a960), P(0x0b960), P(0x09964), P(0x0c968), P(0x099bc),
444 1.1.4.2 tls P(0x099c0), P(0x099c4), P(0x099c8), P(0x099cc), P(0x099d0),
445 1.1.4.2 tls P(0x099d4), P(0x099d8), P(0x0a204), P(0x0a208), P(0x0a20c),
446 1.1.4.2 tls P(0x0b20c), P(0x0c20c), P(0x0a21c), P(0x0a230), P(0x0a274),
447 1.1.4.2 tls P(0x0a300), P(0x0a304), P(0x0a308), P(0x0a30c), P(0x0a310),
448 1.1.4.2 tls P(0x0a314), P(0x0a318), P(0x0a31c), P(0x0a320), P(0x0a324),
449 1.1.4.2 tls P(0x0a328), P(0x0a32c), P(0x0a330), P(0x0a334)
450 1.1.4.2 tls };
451 1.1.4.2 tls
452 1.1.4.2 tls static const uint32_t ar9160_vals_5g20[] = {
453 1.1.4.2 tls 0x00000230, 0x00000168, 0x00000e60, 0x0000a000, 0x03e803e8,
454 1.1.4.2 tls 0x128d93a7, 0x08f04800, 0x00003210, 0x00000300, 0x02020200,
455 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x0372161e,
456 1.1.4.2 tls 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6c48b4e2, 0x7ec82d2e,
457 1.1.4.2 tls 0x31395d5e, 0x00048d18, 0x0001ce00, 0x409a40d0, 0x050cb081,
458 1.1.4.2 tls 0x000007d0, 0x0000000a, 0xd00a8a07, 0xffb81020, 0x00009b40,
459 1.1.4.2 tls 0x00009b40, 0x00009b40, 0x00001120, 0x000003b5, 0x001a0600,
460 1.1.4.2 tls 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384,
461 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000880, 0xd6be4788, 0x002fc160,
462 1.1.4.2 tls 0x002fc160, 0x002fc160, 0x1883800a, 0x00000000, 0x0a1a9caa,
463 1.1.4.2 tls 0x18010000, 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f,
464 1.1.4.2 tls 0x7a4f6e1b, 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbd07,
465 1.1.4.2 tls 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000
466 1.1.4.2 tls };
467 1.1.4.2 tls
468 1.1.4.2 tls #ifndef IEEE80211_NO_HT
469 1.1.4.2 tls static const uint32_t ar9160_vals_5g40[] = {
470 1.1.4.2 tls 0x00000460, 0x000002d0, 0x00001cc0, 0x00014000, 0x07d007d0,
471 1.1.4.2 tls 0x128d93cf, 0x08f04800, 0x00003210, 0x000003c4, 0x02020200,
472 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x0372161e,
473 1.1.4.2 tls 0x001a6a65, 0x001a6a65, 0x001a6a65, 0x6d48b4e2, 0x7ec82d2e,
474 1.1.4.2 tls 0x3139605e, 0x00048d18, 0x0001ce00, 0x409a40d0, 0x050cb081,
475 1.1.4.2 tls 0x00000fa0, 0x00000014, 0xd00a8a07, 0xffb81020, 0x00009b40,
476 1.1.4.2 tls 0x00009b40, 0x00009b40, 0x00001120, 0x000003b5, 0x001a0600,
477 1.1.4.2 tls 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384,
478 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000880, 0xd6be4788, 0x002fc160,
479 1.1.4.2 tls 0x002fc160, 0x002fc160, 0x1883800a, 0x00000000, 0x0a1a9caa,
480 1.1.4.2 tls 0x18010000, 0x30032602, 0x48073e06, 0x560b4c0a, 0x641a600f,
481 1.1.4.2 tls 0x7a4f6e1b, 0x8c5b7e5a, 0x9d0f96cf, 0xb51fa69f, 0xcb3fbcbf,
482 1.1.4.2 tls 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000
483 1.1.4.2 tls };
484 1.1.4.2 tls
485 1.1.4.2 tls static const uint32_t ar9160_vals_2g40[] = {
486 1.1.4.2 tls 0x000002c0, 0x00000318, 0x00007c70, 0x00016000, 0x10801600,
487 1.1.4.2 tls 0x12e013d7, 0x08f04810, 0x0000320a, 0x000003c4, 0x02020200,
488 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x037216a0,
489 1.1.4.2 tls 0x00197a68, 0x00197a68, 0x00197a68, 0x6d48b0e2, 0x7ec82d2e,
490 1.1.4.2 tls 0x3139605e, 0x00048d20, 0x0001ce00, 0x409a40d0, 0x050cb081,
491 1.1.4.2 tls 0x00001130, 0x00000016, 0xd00a8a0d, 0xffb81020, 0x00009b40,
492 1.1.4.2 tls 0x00009b40, 0x00009b40, 0x00001120, 0x000003ce, 0x001a0c00,
493 1.1.4.2 tls 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384,
494 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120,
495 1.1.4.2 tls 0x002ac120, 0x002ac120, 0x1883800a, 0x00000210, 0x0a1a7caa,
496 1.1.4.2 tls 0x18010000, 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b,
497 1.1.4.2 tls 0x845b7a5a, 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f,
498 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000
499 1.1.4.2 tls };
500 1.1.4.2 tls #endif
501 1.1.4.2 tls
502 1.1.4.2 tls static const uint32_t ar9160_vals_2g20[] = {
503 1.1.4.2 tls 0x00000160, 0x0000018c, 0x00003e38, 0x0000b000, 0x08400b00,
504 1.1.4.2 tls 0x12e013ab, 0x08f04810, 0x0000320a, 0x00000300, 0x02020200,
505 1.1.4.2 tls 0x00000e0e, 0x0a020001, 0x00000e0e, 0x00000007, 0x037216a0,
506 1.1.4.2 tls 0x00197a68, 0x00197a68, 0x00197a68, 0x6c48b0e2, 0x7ec82d2e,
507 1.1.4.2 tls 0x31395d5e, 0x00048d20, 0x0001ce00, 0x409a40d0, 0x050cb081,
508 1.1.4.2 tls 0x00000898, 0x0000000b, 0xd00a8a0d, 0xffb81020, 0x00009b40,
509 1.1.4.2 tls 0x00009b40, 0x00009b40, 0x00001120, 0x000003ce, 0x001a0c00,
510 1.1.4.2 tls 0x038919be, 0x06336f77, 0x6af65329, 0x08f186c8, 0x00046384,
511 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000880, 0xd03e4788, 0x002ac120,
512 1.1.4.2 tls 0x002ac120, 0x002ac120, 0x1883800a, 0x00000108, 0x0a1a7caa,
513 1.1.4.2 tls 0x18010000, 0x2e032402, 0x4a0a3c06, 0x621a540b, 0x764f6c1b,
514 1.1.4.2 tls 0x845b7a5a, 0x950f8ccf, 0xa5cf9b4f, 0xbddfaf1f, 0xd1ffc93f,
515 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000
516 1.1.4.2 tls };
517 1.1.4.2 tls
518 1.1.4.2 tls static const uint16_t ar9160_cm_regs[] = {
519 1.1.4.2 tls P(0x0000c), P(0x00030), P(0x00034), P(0x00040), P(0x00044),
520 1.1.4.2 tls P(0x00048), P(0x0004c), P(0x00050), P(0x00054), P(0x00800),
521 1.1.4.2 tls P(0x00804), P(0x00808), P(0x0080c), P(0x00810), P(0x00814),
522 1.1.4.2 tls P(0x00818), P(0x0081c), P(0x00820), P(0x00824), P(0x01040),
523 1.1.4.2 tls P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054),
524 1.1.4.2 tls P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x01230),
525 1.1.4.2 tls P(0x01270), P(0x01038), P(0x01078), P(0x010b8), P(0x010f8),
526 1.1.4.2 tls P(0x01138), P(0x01178), P(0x011b8), P(0x011f8), P(0x01238),
527 1.1.4.2 tls P(0x01278), P(0x012b8), P(0x012f8), P(0x01338), P(0x01378),
528 1.1.4.2 tls P(0x013b8), P(0x013f8), P(0x01438), P(0x01478), P(0x014b8),
529 1.1.4.2 tls P(0x014f8), P(0x01538), P(0x01578), P(0x015b8), P(0x015f8),
530 1.1.4.2 tls P(0x01638), P(0x01678), P(0x016b8), P(0x016f8), P(0x01738),
531 1.1.4.2 tls P(0x01778), P(0x017b8), P(0x017f8), P(0x0103c), P(0x0107c),
532 1.1.4.2 tls P(0x010bc), P(0x010fc), P(0x0113c), P(0x0117c), P(0x011bc),
533 1.1.4.2 tls P(0x011fc), P(0x0123c), P(0x0127c), P(0x012bc), P(0x012fc),
534 1.1.4.2 tls P(0x0133c), P(0x0137c), P(0x013bc), P(0x013fc), P(0x0143c),
535 1.1.4.2 tls P(0x0147c), P(0x04030), P(0x0403c), P(0x07010), P(0x07038),
536 1.1.4.2 tls P(0x08004), P(0x08008), P(0x0800c), P(0x08018), P(0x08020),
537 1.1.4.2 tls P(0x08038), P(0x0803c), P(0x08048), P(0x08054), P(0x08058),
538 1.1.4.2 tls P(0x0805c), P(0x08060), P(0x08064), P(0x080c0), P(0x080c4),
539 1.1.4.2 tls P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8),
540 1.1.4.2 tls P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), P(0x080f0),
541 1.1.4.2 tls P(0x080f4), P(0x080f8), P(0x080fc), P(0x08100), P(0x08104),
542 1.1.4.2 tls P(0x08108), P(0x0810c), P(0x08110), P(0x08118), P(0x0811c),
543 1.1.4.2 tls P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134),
544 1.1.4.2 tls P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c),
545 1.1.4.2 tls P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c4),
546 1.1.4.2 tls P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc),
547 1.1.4.2 tls P(0x08200), P(0x08204), P(0x08208), P(0x0820c), P(0x08210),
548 1.1.4.2 tls P(0x08214), P(0x08218), P(0x0821c), P(0x08220), P(0x08224),
549 1.1.4.2 tls P(0x08228), P(0x0822c), P(0x08230), P(0x08234), P(0x08238),
550 1.1.4.2 tls P(0x0823c), P(0x08240), P(0x08244), P(0x08248), P(0x0824c),
551 1.1.4.2 tls P(0x08250), P(0x08254), P(0x08258), P(0x0825c), P(0x08260),
552 1.1.4.2 tls P(0x08264), P(0x08270), P(0x08274), P(0x08278), P(0x0827c),
553 1.1.4.2 tls P(0x08284), P(0x08288), P(0x0828c), P(0x08294), P(0x08298),
554 1.1.4.2 tls P(0x08300), P(0x08304), P(0x08308), P(0x0830c), P(0x08310),
555 1.1.4.2 tls P(0x08314), P(0x08318), P(0x08328), P(0x0832c), P(0x08330),
556 1.1.4.2 tls P(0x08334), P(0x08338), P(0x0833c), P(0x08340), P(0x09808),
557 1.1.4.2 tls P(0x0980c), P(0x09810), P(0x09814), P(0x0981c), P(0x0982c),
558 1.1.4.2 tls P(0x09830), P(0x0983c), P(0x09840), P(0x0984c), P(0x09854),
559 1.1.4.2 tls P(0x09900), P(0x09904), P(0x09908), P(0x0990c), P(0x0991c),
560 1.1.4.2 tls P(0x09920), P(0x0a920), P(0x0b920), P(0x09928), P(0x0992c),
561 1.1.4.2 tls P(0x09934), P(0x09938), P(0x0993c), P(0x09948), P(0x0994c),
562 1.1.4.2 tls P(0x09954), P(0x09958), P(0x09940), P(0x0c95c), P(0x09970),
563 1.1.4.2 tls P(0x09974), P(0x09978), P(0x0997c), P(0x09980), P(0x09984),
564 1.1.4.2 tls P(0x09988), P(0x0998c), P(0x09990), P(0x09994), P(0x09998),
565 1.1.4.2 tls P(0x0999c), P(0x099a0), P(0x099a4), P(0x099a8), P(0x099ac),
566 1.1.4.2 tls P(0x099b0), P(0x099dc), P(0x099e0), P(0x099e4), P(0x099e8),
567 1.1.4.2 tls P(0x099ec), P(0x099fc), P(0x09b00), P(0x09b04), P(0x09b08),
568 1.1.4.2 tls P(0x09b0c), P(0x09b10), P(0x09b14), P(0x09b18), P(0x09b1c),
569 1.1.4.2 tls P(0x09b20), P(0x09b24), P(0x09b28), P(0x09b2c), P(0x09b30),
570 1.1.4.2 tls P(0x09b34), P(0x09b38), P(0x09b3c), P(0x09b40), P(0x09b44),
571 1.1.4.2 tls P(0x09b48), P(0x09b4c), P(0x09b50), P(0x09b54), P(0x09b58),
572 1.1.4.2 tls P(0x09b5c), P(0x09b60), P(0x09b64), P(0x09b68), P(0x09b6c),
573 1.1.4.2 tls P(0x09b70), P(0x09b74), P(0x09b78), P(0x09b7c), P(0x09b80),
574 1.1.4.2 tls P(0x09b84), P(0x09b88), P(0x09b8c), P(0x09b90), P(0x09b94),
575 1.1.4.2 tls P(0x09b98), P(0x09b9c), P(0x09ba0), P(0x09ba4), P(0x09ba8),
576 1.1.4.2 tls P(0x09bac), P(0x09bb0), P(0x09bb4), P(0x09bb8), P(0x09bbc),
577 1.1.4.2 tls P(0x09bc0), P(0x09bc4), P(0x09bc8), P(0x09bcc), P(0x09bd0),
578 1.1.4.2 tls P(0x09bd4), P(0x09bd8), P(0x09bdc), P(0x09be0), P(0x09be4),
579 1.1.4.2 tls P(0x09be8), P(0x09bec), P(0x09bf0), P(0x09bf4), P(0x09bf8),
580 1.1.4.2 tls P(0x09bfc), P(0x0a210), P(0x0a214), P(0x0a218), P(0x0a220),
581 1.1.4.2 tls P(0x0a224), P(0x0a228), P(0x0a22c), P(0x0a234), P(0x0a238),
582 1.1.4.2 tls P(0x0a23c), P(0x0a240), P(0x0a244), P(0x0a248), P(0x0a24c),
583 1.1.4.2 tls P(0x0a250), P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260),
584 1.1.4.2 tls P(0x0a268), P(0x0a26c), P(0x0b26c), P(0x0c26c), P(0x0d270),
585 1.1.4.2 tls P(0x0a278), P(0x0a27c), P(0x0a338), P(0x0a33c), P(0x0a340),
586 1.1.4.2 tls P(0x0a344), P(0x0a348), P(0x0a34c), P(0x0a350), P(0x0a354),
587 1.1.4.2 tls P(0x0a358), P(0x0d35c), P(0x0d360), P(0x0d364), P(0x0d368),
588 1.1.4.2 tls P(0x0d36c), P(0x0d370), P(0x0d374), P(0x0d378), P(0x0d37c),
589 1.1.4.2 tls P(0x0d380), P(0x0d384), P(0x0a388), P(0x0a38c), P(0x0a390),
590 1.1.4.2 tls P(0x0a394), P(0x0a398), P(0x0a39c), P(0x0a3a0), P(0x0a3a4),
591 1.1.4.2 tls P(0x0a3a8), P(0x0a3ac), P(0x0a3b0), P(0x0a3b4), P(0x0a3b8),
592 1.1.4.2 tls P(0x0a3bc), P(0x0a3c0), P(0x0a3c4), P(0x0a3c8), P(0x0a3cc),
593 1.1.4.2 tls P(0x0a3d0), P(0x0a3d4), P(0x0a3dc), P(0x0a3e0)
594 1.1.4.2 tls };
595 1.1.4.2 tls
596 1.1.4.2 tls static const uint32_t ar9160_cm_vals[] = {
597 1.1.4.2 tls 0x00000000, 0x00020015, 0x00000005, 0x00000000, 0x00000008,
598 1.1.4.2 tls 0x00000008, 0x00000010, 0x00000000, 0x0000001f, 0x00000000,
599 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
600 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002ffc0f,
601 1.1.4.2 tls 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f,
602 1.1.4.2 tls 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000000,
603 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
604 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
605 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
606 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
607 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
608 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
609 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
610 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
611 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
612 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
613 1.1.4.2 tls 0x00000000, 0x00000002, 0x00000002, 0x00000020, 0x000004c2,
614 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000700, 0x00000000,
615 1.1.4.2 tls 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000,
616 1.1.4.2 tls 0x000fc78f, 0x0000000f, 0x00000000, 0x2a82301a, 0x05dc01e0,
617 1.1.4.2 tls 0x1f402710, 0x01f40000, 0x00001e00, 0x00000000, 0x00400000,
618 1.1.4.2 tls 0xffffffff, 0x0000ffff, 0x003f3f3f, 0x00000000, 0x00000000,
619 1.1.4.2 tls 0x00000000, 0x00000000, 0x00020000, 0x00020000, 0x00000001,
620 1.1.4.2 tls 0x00000052, 0x00000000, 0x00000168, 0x000100aa, 0x00003210,
621 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
622 1.1.4.2 tls 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
623 1.1.4.2 tls 0x32143320, 0xfaa4fa50, 0x00000100, 0x00000000, 0x00000000,
624 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
625 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
626 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
627 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
628 1.1.4.2 tls 0x00000000, 0x00100000, 0x0010f400, 0x00000100, 0x0001e800,
629 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x400000ff, 0x00080922,
630 1.1.4.2 tls 0x88a00010, 0x00000000, 0x40000000, 0x003e4180, 0x00000000,
631 1.1.4.2 tls 0x0000002c, 0x0000002c, 0x00000000, 0x00000000, 0x00000000,
632 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
633 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000302,
634 1.1.4.2 tls 0x00000e00, 0x00ff0000, 0x00000000, 0x000107ff, 0x00000000,
635 1.1.4.2 tls 0xad848e19, 0x7d14e000, 0x9c0a9f6b, 0x00000000, 0x0000a000,
636 1.1.4.2 tls 0x00000000, 0x00200400, 0x206a01ae, 0x1284233c, 0x00000859,
637 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000fff,
638 1.1.4.2 tls 0x05100000, 0x05100000, 0x05100000, 0x00000001, 0x00000004,
639 1.1.4.2 tls 0x1e1f2022, 0x0a0b0c0d, 0x00000000, 0x9280b212, 0x00020028,
640 1.1.4.2 tls 0x5f3ca3de, 0x2108ecff, 0x00750604, 0x004b6a8e, 0x190fb515,
641 1.1.4.2 tls 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
642 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
643 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000001, 0x201fff00, 0x006f0000,
644 1.1.4.2 tls 0x03051000, 0x00000000, 0x00000200, 0xaaaaaaaa, 0x3c466478,
645 1.1.4.2 tls 0x0cc80caa, 0x00001042, 0x00000000, 0x00000001, 0x00000002,
646 1.1.4.2 tls 0x00000003, 0x00000004, 0x00000005, 0x00000008, 0x00000009,
647 1.1.4.2 tls 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x00000010,
648 1.1.4.2 tls 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015,
649 1.1.4.2 tls 0x00000018, 0x00000019, 0x0000001a, 0x0000001b, 0x0000001c,
650 1.1.4.2 tls 0x0000001d, 0x00000020, 0x00000021, 0x00000022, 0x00000023,
651 1.1.4.2 tls 0x00000024, 0x00000025, 0x00000028, 0x00000029, 0x0000002a,
652 1.1.4.2 tls 0x0000002b, 0x0000002c, 0x0000002d, 0x00000030, 0x00000031,
653 1.1.4.2 tls 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000035,
654 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
655 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
656 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
657 1.1.4.2 tls 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000010,
658 1.1.4.2 tls 0x0000001a, 0x40806333, 0x00106c10, 0x009c4060, 0x018830c6,
659 1.1.4.2 tls 0x00000400, 0x001a0bb5, 0x00000000, 0x20202020, 0x20202020,
660 1.1.4.2 tls 0x13c889af, 0x38490a20, 0x00007bb6, 0x0fff3ffc, 0x00000001,
661 1.1.4.2 tls 0x0000e000, 0x00000000, 0x0cc75380, 0x0f0f0f01, 0xdfa91f01,
662 1.1.4.2 tls 0x00000001, 0x0e79e5c6, 0x0e79e5c6, 0x0e79e5c6, 0x00820820,
663 1.1.4.2 tls 0x1ce739ce, 0x050701ce, 0x00000000, 0x00000000, 0x00000000,
664 1.1.4.2 tls 0x00000000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x0003ffff,
665 1.1.4.2 tls 0x79bfaa03, 0x07ffffef, 0x0fffffe7, 0x17ffffe5, 0x1fffffe4,
666 1.1.4.2 tls 0x37ffffe3, 0x3fffffe3, 0x57ffffe3, 0x5fffffe2, 0x7fffffe2,
667 1.1.4.2 tls 0x7f3c7bba, 0xf3307ff0, 0x0c000000, 0x20202020, 0x20202020,
668 1.1.4.2 tls 0x1ce739ce, 0x000001ce, 0x00000001, 0x00000000, 0x00000000,
669 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
670 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000246, 0x20202020,
671 1.1.4.2 tls 0x20202020, 0x20202020, 0x1ce739ce, 0x000001ce
672 1.1.4.2 tls };
673 1.1.4.2 tls
674 1.1.4.2 tls static const struct athn_ini ar9160_ini = {
675 1.1.4.2 tls .nregs = __arraycount(ar9160_regs),
676 1.1.4.2 tls .regs = ar9160_regs,
677 1.1.4.2 tls .vals_5g20 = ar9160_vals_5g20,
678 1.1.4.2 tls #ifndef IEEE80211_NO_HT
679 1.1.4.2 tls .vals_5g40 = ar9160_vals_5g40,
680 1.1.4.2 tls .vals_2g40 = ar9160_vals_2g40,
681 1.1.4.2 tls #endif
682 1.1.4.2 tls .vals_2g20 = ar9160_vals_2g20,
683 1.1.4.2 tls .ncmregs = __arraycount(ar9160_cm_regs),
684 1.1.4.2 tls .cmregs = ar9160_cm_regs,
685 1.1.4.2 tls .cmvals = ar9160_cm_vals
686 1.1.4.2 tls };
687 1.1.4.2 tls
688 1.1.4.2 tls /*
689 1.1.4.2 tls * BB/RF Gains common to AR5416 and AR9160.
690 1.1.4.2 tls */
691 1.1.4.2 tls static const uint32_t ar5416_bb_rfgain_vals_5g[] = {
692 1.1.4.2 tls 0x00000000, 0x00000040, 0x00000080, 0x000001a1, 0x000001e1,
693 1.1.4.2 tls 0x00000021, 0x00000061, 0x00000168, 0x000001a8, 0x000001e8,
694 1.1.4.2 tls 0x00000028, 0x00000068, 0x00000189, 0x000001c9, 0x00000009,
695 1.1.4.2 tls 0x00000049, 0x00000089, 0x00000170, 0x000001b0, 0x000001f0,
696 1.1.4.2 tls 0x00000030, 0x00000070, 0x00000191, 0x000001d1, 0x00000011,
697 1.1.4.2 tls 0x00000051, 0x00000091, 0x000001b8, 0x000001f8, 0x00000038,
698 1.1.4.2 tls 0x00000078, 0x00000199, 0x000001d9, 0x00000019, 0x00000059,
699 1.1.4.2 tls 0x00000099, 0x000000d9, 0x000000f9, 0x000000f9, 0x000000f9,
700 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
701 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
702 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
703 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
704 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9
705 1.1.4.2 tls };
706 1.1.4.2 tls
707 1.1.4.2 tls static const uint32_t ar5416_bb_rfgain_vals_2g[] = {
708 1.1.4.2 tls 0x00000000, 0x00000040, 0x00000080, 0x00000141, 0x00000181,
709 1.1.4.2 tls 0x000001c1, 0x00000001, 0x00000041, 0x000001a8, 0x000001e8,
710 1.1.4.2 tls 0x00000028, 0x00000068, 0x000000a8, 0x00000169, 0x000001a9,
711 1.1.4.2 tls 0x000001e9, 0x00000029, 0x00000069, 0x00000190, 0x000001d0,
712 1.1.4.2 tls 0x00000010, 0x00000050, 0x00000090, 0x00000151, 0x00000191,
713 1.1.4.2 tls 0x000001d1, 0x00000011, 0x00000051, 0x00000198, 0x000001d8,
714 1.1.4.2 tls 0x00000018, 0x00000058, 0x00000098, 0x00000159, 0x00000199,
715 1.1.4.2 tls 0x000001d9, 0x00000019, 0x00000059, 0x00000099, 0x000000d9,
716 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
717 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
718 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
719 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9,
720 1.1.4.2 tls 0x000000f9, 0x000000f9, 0x000000f9, 0x000000f9
721 1.1.4.2 tls };
722 1.1.4.2 tls
723 1.1.4.2 tls static const uint32_t ar5416_2_1_addac_vals[] = {
724 1.1.4.2 tls 0x00000000, 0x00000003, 0x00000000, 0x0000000c, 0x00000000,
725 1.1.4.2 tls 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
726 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
727 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000060, 0x00000000,
728 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
729 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
730 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
731 1.1.4.2 tls 0x00000000
732 1.1.4.2 tls };
733 1.1.4.2 tls
734 1.1.4.2 tls static const struct athn_addac ar5416_2_1_addac = {
735 1.1.4.2 tls __arraycount(ar5416_2_1_addac_vals),
736 1.1.4.2 tls ar5416_2_1_addac_vals
737 1.1.4.2 tls };
738 1.1.4.2 tls
739 1.1.4.2 tls static const uint32_t ar5416_2_2_addac_vals[] = {
740 1.1.4.2 tls 0x00000000, 0x00000003, 0x00000000, 0x0000000c, 0x00000000,
741 1.1.4.2 tls 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
742 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
743 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000060, 0x00000000,
744 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
745 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
746 1.1.4.2 tls 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000,
747 1.1.4.2 tls 0x00000000
748 1.1.4.2 tls };
749 1.1.4.2 tls
750 1.1.4.2 tls static const struct athn_addac ar5416_2_2_addac = {
751 1.1.4.2 tls __arraycount(ar5416_2_2_addac_vals),
752 1.1.4.2 tls ar5416_2_2_addac_vals
753 1.1.4.2 tls };
754 1.1.4.2 tls
755 1.1.4.2 tls static const uint32_t ar9160_1_0_addac_vals[] = {
756 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
757 1.1.4.2 tls 0x00000000, 0x000000c0, 0x00000018, 0x00000004, 0x00000000,
758 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
759 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
760 1.1.4.2 tls 0x00000000, 0x000000c0, 0x00000019, 0x00000004, 0x00000000,
761 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000004, 0x00000003, 0x00000008,
762 1.1.4.2 tls 0x00000000
763 1.1.4.2 tls };
764 1.1.4.2 tls
765 1.1.4.2 tls static const struct athn_addac ar9160_1_0_addac = {
766 1.1.4.2 tls __arraycount(ar9160_1_0_addac_vals),
767 1.1.4.2 tls ar9160_1_0_addac_vals
768 1.1.4.2 tls };
769 1.1.4.2 tls
770 1.1.4.2 tls static const uint32_t ar9160_1_1_addac_vals[] = {
771 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
772 1.1.4.2 tls 0x00000000, 0x000000c0, 0x00000018, 0x00000004, 0x00000000,
773 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
774 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
775 1.1.4.2 tls 0x00000000, 0x000000c0, 0x00000019, 0x00000004, 0x00000000,
776 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
777 1.1.4.2 tls 0x00000000
778 1.1.4.2 tls };
779 1.1.4.2 tls
780 1.1.4.2 tls static const struct athn_addac ar9160_1_1_addac = {
781 1.1.4.2 tls __arraycount(ar9160_1_1_addac_vals),
782 1.1.4.2 tls ar9160_1_1_addac_vals
783 1.1.4.2 tls };
784 1.1.4.2 tls
785 1.1.4.2 tls static const uint32_t ar5416_bank6tpc_vals[] = {
786 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00e00000, 0x005e0000,
787 1.1.4.2 tls 0x00120000, 0x00620000, 0x00020000, 0x00ff0000, 0x00ff0000,
788 1.1.4.2 tls 0x00ff0000, 0x40ff0000, 0x005f0000, 0x00870000, 0x00f90000,
789 1.1.4.2 tls 0x007b0000, 0x00ff0000, 0x00f50000, 0x00dc0000, 0x00110000,
790 1.1.4.2 tls 0x006100a8, 0x00423022, 0x201400df, 0x00c40002, 0x003000f2,
791 1.1.4.2 tls 0x00440016, 0x00410040, 0x0001805e, 0x0000c0ab, 0x000000e1,
792 1.1.4.2 tls 0x00007081, 0x000000d4
793 1.1.4.2 tls };
794 1.1.4.2 tls
795 1.1.4.2 tls static const uint32_t ar9160_bank6tpc_vals[] = {
796 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00e00000, 0x005e0000,
797 1.1.4.2 tls 0x00120000, 0x00620000, 0x00020000, 0x00ff0000, 0x00ff0000,
798 1.1.4.2 tls 0x00ff0000, 0x40ff0000, 0x005f0000, 0x00870000, 0x00f90000,
799 1.1.4.2 tls 0x007b0000, 0x00ff0000, 0x00f50000, 0x00dc0000, 0x00110000,
800 1.1.4.2 tls 0x006100a8, 0x00423022, 0x2014008f, 0x00c40002, 0x003000f2,
801 1.1.4.2 tls 0x00440016, 0x00410040, 0x0001805e, 0x0000c0ab, 0x000000e1,
802 1.1.4.2 tls 0x00007080, 0x000000d4
803 1.1.4.2 tls };
804 1.1.4.2 tls
805 1.1.4.2 tls static const uint32_t ar5416_bank6_vals[] = {
806 1.1.4.2 tls 0x00000000, 0x00000000, 0x00000000, 0x00e00000, 0x005e0000,
807 1.1.4.2 tls 0x00120000, 0x00620000, 0x00020000, 0x00ff0000, 0x00ff0000,
808 1.1.4.2 tls 0x00ff0000, 0x40ff0000, 0x005f0000, 0x00870000, 0x00f90000,
809 1.1.4.2 tls 0x007b0000, 0x00ff0000, 0x00f50000, 0x00dc0000, 0x00110000,
810 1.1.4.2 tls 0x006100a8, 0x004210a2, 0x0014008f, 0x00c40003, 0x003000f2,
811 1.1.4.2 tls 0x00440016, 0x00410040, 0x0001805e, 0x0000c0ab, 0x000000f1,
812 1.1.4.2 tls 0x00002081, 0x000000d4
813 1.1.4.2 tls };
814 1.1.4.2 tls
815 1.1.4.2 tls /*
816 1.1.4.2 tls * Serializer/Deserializer programming.
817 1.1.4.2 tls */
818 1.1.4.2 tls
819 1.1.4.2 tls static const uint32_t ar5416_serdes_regs[] = {
820 1.1.4.2 tls AR_PCIE_SERDES,
821 1.1.4.2 tls AR_PCIE_SERDES,
822 1.1.4.2 tls AR_PCIE_SERDES,
823 1.1.4.2 tls AR_PCIE_SERDES,
824 1.1.4.2 tls AR_PCIE_SERDES,
825 1.1.4.2 tls AR_PCIE_SERDES,
826 1.1.4.2 tls AR_PCIE_SERDES,
827 1.1.4.2 tls AR_PCIE_SERDES,
828 1.1.4.2 tls AR_PCIE_SERDES,
829 1.1.4.2 tls AR_PCIE_SERDES2
830 1.1.4.2 tls };
831 1.1.4.2 tls
832 1.1.4.2 tls static const uint32_t ar5416_serdes_vals[] = {
833 1.1.4.2 tls 0x9248fc00,
834 1.1.4.2 tls 0x24924924,
835 1.1.4.2 tls /* RX shut off when elecidle is asserted. */
836 1.1.4.2 tls 0x28000039,
837 1.1.4.2 tls 0x53160824,
838 1.1.4.2 tls 0xe5980579,
839 1.1.4.2 tls 0x001defff,
840 1.1.4.2 tls 0x1aaabe40,
841 1.1.4.2 tls 0xbe105554,
842 1.1.4.2 tls 0x000e3007,
843 1.1.4.2 tls 0x00000000
844 1.1.4.2 tls };
845 1.1.4.2 tls
846 1.1.4.2 tls static const struct athn_serdes ar5416_serdes = {
847 1.1.4.2 tls __arraycount(ar5416_serdes_vals),
848 1.1.4.2 tls ar5416_serdes_regs,
849 1.1.4.2 tls ar5416_serdes_vals,
850 1.1.4.2 tls };
851 1.1.4.2 tls
852 1.1.4.2 tls #endif /* _ARN5416REG_H_ */
853