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