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