1 | /* $NetBSD: arn9380reg.h,v 1.1 2013/03/30 02:53:02 christos Exp $ */ |
2 | /* $OpenBSD: ar9380reg.h,v 1.19 2012/10/20 09:54:20 stsp Exp $ */ |
3 | |
4 | /*- |
5 | * Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr> |
6 | * Copyright (c) 2010 Atheros Communications Inc. |
7 | * |
8 | * Permission to use, copy, modify, and/or distribute this software for any |
9 | * purpose with or without fee is hereby granted, provided that the above |
10 | * copyright notice and this permission notice appear in all copies. |
11 | * |
12 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
13 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
14 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
15 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
16 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
17 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
18 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
19 | */ |
20 | |
21 | #ifndef _ARN9380REG_H_ |
22 | #define _ARN9380REG_H_ |
23 | |
24 | #define AR9380_MAX_CHAINS 3 |
25 | |
26 | #define AR9380_PHY_CCA_NOM_VAL_2GHZ (-110) |
27 | #define AR9380_PHY_CCA_NOM_VAL_5GHZ (-115) |
28 | #define AR9380_PHY_CCA_MIN_GOOD_VAL_2GHZ (-125) |
29 | #define AR9380_PHY_CCA_MIN_GOOD_VAL_5GHZ (-125) |
30 | #define AR9380_PHY_CCA_MAX_GOOD_VAL_2GHZ ( -95) |
31 | #define AR9380_PHY_CCA_MAX_GOOD_VAL_5GHZ (-100) |
32 | |
33 | /* |
34 | * ROM layout used by AR9380. |
35 | */ |
36 | #define AR9380_NUM_5G_CAL_PIERS 8 |
37 | #define AR9380_NUM_2G_CAL_PIERS 3 |
38 | #define AR9380_NUM_5G_20_TARGET_POWERS 8 |
39 | #define AR9380_NUM_5G_40_TARGET_POWERS 8 |
40 | #define AR9380_NUM_2G_CCK_TARGET_POWERS 2 |
41 | #define AR9380_NUM_2G_20_TARGET_POWERS 3 |
42 | #define AR9380_NUM_2G_40_TARGET_POWERS 3 |
43 | #define AR9380_NUM_CTLS_5G 9 |
44 | #define AR9380_NUM_CTLS_2G 12 |
45 | #define AR9380_NUM_BAND_EDGES_5G 8 |
46 | #define AR9380_NUM_BAND_EDGES_2G 4 |
47 | #define AR9380_NUM_PD_GAINS 4 |
48 | #define AR9380_PD_GAINS_IN_MASK 4 |
49 | #define AR9380_PD_GAIN_ICEPTS 5 |
50 | #define AR9380_EEPROM_MODAL_SPURS 5 |
51 | #define AR9380_CUSTOMER_DATA_SIZE 20 |
52 | |
53 | struct ar9380_cal_ctl_data_2g { |
54 | uint8_t ctlEdges[AR9380_NUM_BAND_EDGES_2G]; |
55 | } __packed; |
56 | |
57 | struct ar9380_cal_ctl_data_5g { |
58 | uint8_t ctlEdges[AR9380_NUM_BAND_EDGES_5G]; |
59 | } __packed; |
60 | |
61 | struct ar9380_base_eep_hdr { |
62 | uint16_t regDmn[2]; |
63 | uint8_t txrxMask; |
64 | #define AR_EEP_TX_MASK_M 0xf0 |
65 | #define AR_EEP_TX_MASK_S 4 |
66 | #define AR_EEP_RX_MASK_M 0x0f |
67 | #define AR_EEP_RX_MASK_S 0 |
68 | |
69 | uint8_t opFlags; |
70 | #define AR_OPFLAGS_11A 0x01 |
71 | #define AR_OPFLAGS_11G 0x02 |
72 | #define AR_OPFLAGS_11N_5G40 0x04 |
73 | #define AR_OPFLAGS_11N_2G40 0x08 |
74 | #define AR_OPFLAGS_11N_5G20 0x10 |
75 | #define AR_OPFLAGS_11N_2G20 0x20 |
76 | /* Shortcut. */ |
77 | #define AR_OPFLAGS_11N 0x3c |
78 | |
79 | uint8_t eepMisc; |
80 | uint8_t rfSilent; |
81 | #define AR_EEP_RFSILENT_ENABLED 0x0001 |
82 | #define AR_EEP_RFSILENT_GPIO_SEL_M 0x001c |
83 | #define AR_EEP_RFSILENT_GPIO_SEL_S 2 |
84 | #define AR_EEP_RFSILENT_POLARITY 0x0002 |
85 | |
86 | uint8_t blueToothOptions; |
87 | uint8_t deviceCap; |
88 | uint8_t deviceType; |
89 | int8_t pwrTableOffset; |
90 | uint8_t params_for_tuning_caps[2]; |
91 | uint8_t featureEnable; |
92 | #define AR_EEP_TX_TEMP_COMP_EN 0x01 |
93 | #define AR_EEP_TX_VOLT_COMP_EN 0x02 |
94 | #define AR_EEP_FAST_CLOCK_EN 0x04 |
95 | #define AR_EEP_DOUBLING_EN 0x08 |
96 | #define AR_EEP_INTERNAL_REGULATOR 0x10 |
97 | #define AR_EEP_PAPRD 0x20 |
98 | #define AR_EEP_TUNING_CAPS 0x40 |
99 | |
100 | uint8_t miscConfiguration; |
101 | #define AR_EEP_DRIVE_STRENGTH 0x01 |
102 | #define AR_EEP_CHAIN_MASK_REDUCE 0x08 |
103 | |
104 | uint8_t eepromWriteEnableGpio; |
105 | uint8_t wlanDisableGpio; |
106 | uint8_t wlanLedGpio; |
107 | uint8_t rxBandSelectGpio; |
108 | uint8_t txrxgain; |
109 | #define AR_EEP_TX_GAIN_M 0xf0 |
110 | #define AR_EEP_TX_GAIN_S 4 |
111 | #define AR_EEP_TX_GAIN_HIGH_OB_DB 1 |
112 | #define AR_EEP_TX_GAIN_LOW_OB_DB 2 |
113 | #define AR_EEP_TX_GAIN_HIGH_POWER 3 |
114 | #define AR_EEP_RX_GAIN_M 0x0f |
115 | #define AR_EEP_RX_GAIN_S 0 |
116 | #define AR_EEP_RX_GAIN_WO_XLNA 1 |
117 | |
118 | uint32_t swreg; |
119 | } __packed; |
120 | |
121 | struct { |
122 | uint32_t ; |
123 | uint32_t ; |
124 | uint16_t [AR9380_MAX_CHAINS]; |
125 | uint8_t [AR9380_MAX_CHAINS]; |
126 | uint8_t [AR9380_MAX_CHAINS]; |
127 | int8_t ; |
128 | int8_t ; |
129 | uint8_t [AR9380_EEPROM_MODAL_SPURS]; |
130 | int8_t [AR9380_MAX_CHAINS]; |
131 | uint8_t [AR9380_MAX_CHAINS]; |
132 | uint8_t [AR9380_MAX_CHAINS]; |
133 | uint8_t [AR9380_MAX_CHAINS]; |
134 | uint8_t [AR9380_MAX_CHAINS]; |
135 | uint8_t ; |
136 | uint8_t ; |
137 | uint8_t ; |
138 | uint8_t ; |
139 | int8_t ; |
140 | uint8_t ; |
141 | int8_t ; |
142 | uint8_t ; |
143 | uint8_t ; |
144 | uint8_t ; |
145 | uint8_t ; |
146 | uint32_t ; |
147 | uint32_t ; |
148 | uint8_t [10]; |
149 | } __packed; |
150 | |
151 | struct ar9380_cal_data_per_freq_op_loop { |
152 | int8_t refPower; |
153 | uint8_t voltMeas; |
154 | uint8_t tempMeas; |
155 | int8_t rxNoisefloorCal; |
156 | int8_t rxNoisefloorPower; |
157 | uint8_t rxTempMeas; |
158 | } __packed; |
159 | |
160 | struct ar9380_base_extension_1 { |
161 | uint8_t ant_div_control; |
162 | #define AR_EEP_ANT_DIV_CTRL_ALL_M 0x3f |
163 | #define AR_EEP_ANT_DIV_CTRL_ALL_S 0 |
164 | #define AR_EEP_ANT_DIV_CTRL_ANT_DIV 0x40 |
165 | #define AR_EEP_ANT_DIV_CTRL_FAST_DIV 0x80 |
166 | |
167 | uint8_t future[13]; |
168 | } __packed; |
169 | |
170 | struct ar9380_base_extension_2 { |
171 | int8_t tempSlopeLow; |
172 | int8_t tempSlopeHigh; |
173 | uint8_t xatten1DBLow[AR9380_MAX_CHAINS]; |
174 | uint8_t xatten1MarginLow[AR9380_MAX_CHAINS]; |
175 | uint8_t xatten1DBHigh[AR9380_MAX_CHAINS]; |
176 | uint8_t xatten1MarginHigh[AR9380_MAX_CHAINS]; |
177 | } __packed; |
178 | |
179 | struct ar9380_eeprom { |
180 | uint8_t eepromVersion; |
181 | uint8_t templateVersion; |
182 | uint8_t macAddr[6]; |
183 | uint8_t custData[AR9380_CUSTOMER_DATA_SIZE]; |
184 | struct ar9380_base_eep_hdr ; |
185 | struct ar9380_modal_eep_header ; |
186 | struct ar9380_base_extension_1 base_ext1; |
187 | uint8_t calFreqPier2G[AR9380_NUM_2G_CAL_PIERS]; |
188 | struct ar9380_cal_data_per_freq_op_loop |
189 | calPierData2G[AR9380_MAX_CHAINS][AR9380_NUM_2G_CAL_PIERS]; |
190 | uint8_t calTargetFbinCck[AR9380_NUM_2G_CCK_TARGET_POWERS]; |
191 | uint8_t calTargetFbin2G[AR9380_NUM_2G_20_TARGET_POWERS]; |
192 | uint8_t calTargetFbin2GHT20[AR9380_NUM_2G_20_TARGET_POWERS]; |
193 | uint8_t calTargetFbin2GHT40[AR9380_NUM_2G_40_TARGET_POWERS]; |
194 | struct ar_cal_target_power_leg |
195 | calTargetPowerCck[AR9380_NUM_2G_CCK_TARGET_POWERS]; |
196 | struct ar_cal_target_power_leg |
197 | calTargetPower2G[AR9380_NUM_2G_20_TARGET_POWERS]; |
198 | struct ar_cal_target_power_ht |
199 | calTargetPower2GHT20[AR9380_NUM_2G_20_TARGET_POWERS]; |
200 | struct ar_cal_target_power_ht |
201 | calTargetPower2GHT40[AR9380_NUM_2G_40_TARGET_POWERS]; |
202 | uint8_t ctlIndex_2G[AR9380_NUM_CTLS_2G]; |
203 | uint8_t ctl_freqbin_2G[AR9380_NUM_CTLS_2G][AR9380_NUM_BAND_EDGES_2G]; |
204 | struct ar9380_cal_ctl_data_2g ctlPowerData_2G[AR9380_NUM_CTLS_2G]; |
205 | struct ar9380_modal_eep_header ; |
206 | struct ar9380_base_extension_2 base_ext2; |
207 | uint8_t calFreqPier5G[AR9380_NUM_5G_CAL_PIERS]; |
208 | struct ar9380_cal_data_per_freq_op_loop |
209 | calPierData5G[AR9380_MAX_CHAINS][AR9380_NUM_5G_CAL_PIERS]; |
210 | uint8_t calTargetFbin5G[AR9380_NUM_5G_20_TARGET_POWERS]; |
211 | uint8_t calTargetFbin5GHT20[AR9380_NUM_5G_20_TARGET_POWERS]; |
212 | uint8_t calTargetFbin5GHT40[AR9380_NUM_5G_40_TARGET_POWERS]; |
213 | struct ar_cal_target_power_leg |
214 | calTargetPower5G[AR9380_NUM_5G_20_TARGET_POWERS]; |
215 | struct ar_cal_target_power_ht |
216 | calTargetPower5GHT20[AR9380_NUM_5G_20_TARGET_POWERS]; |
217 | struct ar_cal_target_power_ht |
218 | calTargetPower5GHT40[AR9380_NUM_5G_40_TARGET_POWERS]; |
219 | uint8_t ctlIndex_5G[AR9380_NUM_CTLS_5G]; |
220 | uint8_t ctl_freqbin_5G[AR9380_NUM_CTLS_5G][AR9380_NUM_BAND_EDGES_5G]; |
221 | struct ar9380_cal_ctl_data_5g ctlPowerData_5G[AR9380_NUM_CTLS_5G]; |
222 | } __packed; |
223 | |
224 | /* |
225 | * ROM templates (little endian). |
226 | */ |
227 | static const uint8_t ar9380_def_rom[] = { |
228 | 0x02, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00, |
229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
231 | 0x1f, 0x00, 0x77, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, |
232 | 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x08, 0xff, 0x00, 0x00, |
233 | 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x22, 0x22, 0x02, |
234 | 0x00, 0x50, 0x01, 0x50, 0x01, 0x50, 0x01, 0x00, 0x00, 0x00, |
235 | 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
236 | 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, |
237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x03, 0x00, |
238 | 0x2c, 0xe2, 0x00, 0x02, 0x0e, 0x1c, 0xe0, 0xe0, 0xf0, 0x0c, |
239 | 0xe0, 0xe0, 0xf0, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x89, |
242 | 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
243 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
244 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xb8, 0x70, 0x89, 0xac, |
248 | 0x70, 0x89, 0xac, 0x70, 0x89, 0xac, 0x24, 0x24, 0x24, 0x24, |
249 | 0x24, 0x24, 0x24, 0x24, 0x20, 0x20, 0x1c, 0x18, 0x20, 0x20, |
250 | 0x1c, 0x18, 0x20, 0x20, 0x1c, 0x18, 0x20, 0x20, 0x20, 0x20, |
251 | 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, |
252 | 0x20, 0x20, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, |
253 | 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x14, |
254 | 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, |
255 | 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, |
256 | 0x1c, 0x14, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, |
257 | 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x20, 0x20, |
258 | 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, 0x20, 0x20, 0x1c, 0x14, |
259 | 0x11, 0x12, 0x15, 0x17, 0x41, 0x42, 0x45, 0x47, 0x31, 0x32, |
260 | 0x35, 0x37, 0x70, 0x75, 0x9d, 0xa2, 0x70, 0x75, 0xa2, 0xff, |
261 | 0x70, 0x75, 0xa2, 0xff, 0x7a, 0x7f, 0x93, 0x98, 0x70, 0x75, |
262 | 0xac, 0xb8, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, |
263 | 0x7a, 0x7f, 0x93, 0xa2, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, |
264 | 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, 0x7a, 0x7f, 0x93, 0xa2, |
265 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, |
266 | 0x3c, 0x7c, 0x7c, 0x3c, 0x00, 0x00, 0x3c, 0x7c, 0x3c, 0x3c, |
267 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x3c, 0x3c, 0x7c, |
268 | 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, |
269 | 0x3c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x10, 0x01, |
270 | 0x00, 0x00, 0x22, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
271 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, |
272 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x03, |
273 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, |
274 | 0x00, 0x0e, 0x0e, 0x03, 0x00, 0x2d, 0xe2, 0x00, 0x02, 0x0e, |
275 | 0x1c, 0x80, 0xc0, 0x80, 0x0c, 0x80, 0xc0, 0x80, 0x00, 0x00, |
276 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
277 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
278 | 0x00, 0x00, 0x00, 0x4c, 0x54, 0x68, 0x78, 0x8c, 0xa0, 0xb9, |
279 | 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
281 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
282 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
283 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
284 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
285 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
286 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
287 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
289 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
290 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
291 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
292 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
293 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x54, 0x68, 0x78, 0x8c, |
294 | 0xa0, 0xb9, 0xcd, 0x4c, 0x58, 0x68, 0x8c, 0xb4, 0xbd, 0xb9, |
295 | 0xcd, 0x4c, 0x58, 0x68, 0x8c, 0xb4, 0xbd, 0xb9, 0xcd, 0x14, |
296 | 0x14, 0x14, 0x0a, 0x14, 0x14, 0x14, 0x0a, 0x14, 0x14, 0x14, |
297 | 0x0a, 0x14, 0x14, 0x14, 0x0a, 0x14, 0x14, 0x14, 0x0a, 0x14, |
298 | 0x14, 0x14, 0x0a, 0x14, 0x14, 0x14, 0x0a, 0x14, 0x14, 0x14, |
299 | 0x0a, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
300 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, |
301 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, |
302 | 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, |
303 | 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, |
304 | 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, |
305 | 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
306 | 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
307 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, |
308 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, |
309 | 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, |
310 | 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, |
311 | 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, |
312 | 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
313 | 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
314 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, |
315 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, |
316 | 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, |
317 | 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, |
318 | 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x14, 0x14, 0x0a, |
319 | 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
320 | 0x00, 0x14, 0x14, 0x0a, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, |
321 | 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x10, 0x16, 0x18, 0x40, 0x46, |
322 | 0x48, 0x30, 0x36, 0x38, 0x4c, 0x5c, 0x60, 0x8c, 0xa0, 0xb4, |
323 | 0xbd, 0xcd, 0x4c, 0x5c, 0x60, 0x8c, 0x90, 0xb4, 0xbd, 0xcd, |
324 | 0x4e, 0x56, 0x5e, 0x66, 0x8e, 0x96, 0xae, 0xbf, 0x4c, 0x50, |
325 | 0x5c, 0x68, 0x8c, 0xb4, 0xff, 0xff, 0x4c, 0x5c, 0x8c, 0xb4, |
326 | 0xff, 0xff, 0xff, 0xff, 0x4e, 0x5e, 0x66, 0x8e, 0x9e, 0xae, |
327 | 0xff, 0xff, 0x4c, 0x50, 0x54, 0x5c, 0x8c, 0xa0, 0xb4, 0xbd, |
328 | 0x4c, 0x5c, 0x68, 0x8c, 0x98, 0xb4, 0xbd, 0xcd, 0x4e, 0x56, |
329 | 0x5e, 0x8e, 0x96, 0xae, 0xbf, 0xc7, 0x7c, 0x7c, 0x7c, 0x7c, |
330 | 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
331 | 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
332 | 0x3c, 0x7c, 0x7c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, |
333 | 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, |
334 | 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
335 | 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, |
336 | 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c |
337 | }; |
338 | |
339 | static const uint8_t ar9380_def_rom_h112[] = { |
340 | 0x02, 0x03, 0x00, 0x03, 0x7f, 0x00, 0x00, 0x00, 0x68, 0x31, |
341 | 0x31, 0x32, 0x2d, 0x32, 0x34, 0x31, 0x2d, 0x66, 0x30, 0x30, |
342 | 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
343 | 0x1f, 0x00, 0x77, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, |
344 | 0x00, 0x00, 0x0d, 0x00, 0x06, 0x00, 0x08, 0xff, 0x10, 0x00, |
345 | 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x44, 0x44, 0x04, |
346 | 0x00, 0x50, 0x01, 0x50, 0x01, 0x50, 0x01, 0x00, 0x00, 0x00, |
347 | 0x00, 0x00, 0x00, 0x19, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, |
348 | 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, |
349 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x03, 0x00, |
350 | 0x2c, 0xe2, 0x00, 0x02, 0x0e, 0x1c, 0x80, 0xc0, 0x80, 0x00, |
351 | 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
352 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
353 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x89, |
354 | 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
355 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
356 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
357 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
358 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
359 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xb8, 0x70, 0x89, 0xac, |
360 | 0x70, 0x89, 0xac, 0x70, 0x89, 0xac, 0x22, 0x22, 0x22, 0x22, |
361 | 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x20, 0x20, 0x22, 0x22, |
362 | 0x20, 0x20, 0x22, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
363 | 0x20, 0x1e, 0x20, 0x20, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, |
364 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x1e, 0x20, 0x20, 0x1e, 0x1c, |
365 | 0x1c, 0x1c, 0x1c, 0x18, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1e, |
366 | 0x20, 0x20, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x1e, 0x1e, |
367 | 0x1e, 0x1e, 0x1e, 0x1c, 0x1e, 0x1e, 0x1c, 0x1a, 0x1a, 0x1a, |
368 | 0x1a, 0x16, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, 0x1e, 0x1e, |
369 | 0x1c, 0x1a, 0x1a, 0x1a, 0x1a, 0x16, 0x1e, 0x1e, 0x1e, 0x1e, |
370 | 0x1e, 0x1c, 0x1e, 0x1e, 0x1c, 0x1a, 0x1a, 0x1a, 0x1a, 0x16, |
371 | 0x11, 0x12, 0x15, 0x17, 0x41, 0x42, 0x45, 0x47, 0x31, 0x32, |
372 | 0x35, 0x37, 0x70, 0x75, 0x9d, 0xa2, 0x70, 0x75, 0xa2, 0xff, |
373 | 0x70, 0x75, 0xa2, 0xff, 0x7a, 0x7f, 0x93, 0x98, 0x70, 0x75, |
374 | 0xac, 0xb8, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, |
375 | 0x7a, 0x7f, 0x93, 0xa2, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, |
376 | 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, 0x7a, 0x7f, 0x93, 0xa2, |
377 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, |
378 | 0x3c, 0x7c, 0x7c, 0x3c, 0x00, 0x00, 0x3c, 0x7c, 0x3c, 0x3c, |
379 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x3c, 0x3c, 0x7c, |
380 | 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, |
381 | 0x3c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x20, 0x02, |
382 | 0x00, 0x00, 0x44, 0x44, 0x04, 0x00, 0x50, 0x01, 0x50, 0x01, |
383 | 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, |
384 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x03, |
385 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, |
386 | 0x00, 0x0e, 0x0e, 0x03, 0x00, 0x2d, 0xe2, 0x00, 0x02, 0x0e, |
387 | 0x1c, 0xe0, 0xe0, 0xf0, 0x0c, 0xe0, 0xe0, 0xf0, 0x6c, 0x00, |
388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, |
389 | 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
390 | 0x00, 0x00, 0x00, 0x4c, 0x54, 0x68, 0x78, 0x8c, 0xa0, 0xb4, |
391 | 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
392 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
397 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
398 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
399 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
400 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
401 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
402 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
403 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
404 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
405 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x58, 0x68, 0x78, 0x8c, |
406 | 0xa0, 0xb4, 0xcd, 0x4c, 0x58, 0x68, 0x78, 0x8c, 0xb4, 0xbd, |
407 | 0xcd, 0x4c, 0x58, 0x68, 0x78, 0x8c, 0xb4, 0xbd, 0xcd, 0x1e, |
408 | 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, |
409 | 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, |
410 | 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, |
411 | 0x18, 0x1e, 0x1e, 0x1e, 0x1c, 0x18, 0x14, 0x1e, 0x1c, 0x18, |
412 | 0x14, 0x14, 0x14, 0x14, 0x10, 0x1e, 0x1e, 0x1e, 0x1c, 0x18, |
413 | 0x14, 0x1e, 0x1c, 0x18, 0x14, 0x14, 0x14, 0x14, 0x10, 0x1e, |
414 | 0x1e, 0x1e, 0x1a, 0x16, 0x12, 0x1e, 0x1a, 0x16, 0x12, 0x12, |
415 | 0x12, 0x12, 0x10, 0x1e, 0x1e, 0x1e, 0x1a, 0x16, 0x12, 0x1e, |
416 | 0x1a, 0x16, 0x12, 0x12, 0x12, 0x12, 0x10, 0x1e, 0x1e, 0x1e, |
417 | 0x18, 0x14, 0x10, 0x1e, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, |
418 | 0x0e, 0x1e, 0x1e, 0x1e, 0x18, 0x14, 0x10, 0x1e, 0x18, 0x14, |
419 | 0x10, 0x10, 0x10, 0x10, 0x0e, 0x1e, 0x1e, 0x1e, 0x16, 0x12, |
420 | 0x0e, 0x1e, 0x16, 0x12, 0x0e, 0x0e, 0x0e, 0x0e, 0x0c, 0x1e, |
421 | 0x1e, 0x1e, 0x16, 0x12, 0x0e, 0x1e, 0x16, 0x12, 0x0e, 0x0e, |
422 | 0x0e, 0x0e, 0x0c, 0x1c, 0x1c, 0x1c, 0x1a, 0x16, 0x12, 0x1c, |
423 | 0x1a, 0x16, 0x12, 0x12, 0x12, 0x12, 0x0e, 0x1c, 0x1c, 0x1c, |
424 | 0x1a, 0x16, 0x12, 0x1c, 0x1a, 0x16, 0x12, 0x12, 0x12, 0x12, |
425 | 0x0e, 0x1c, 0x1c, 0x1c, 0x18, 0x14, 0x10, 0x1c, 0x18, 0x14, |
426 | 0x10, 0x10, 0x10, 0x10, 0x0c, 0x1c, 0x1c, 0x1c, 0x18, 0x14, |
427 | 0x10, 0x1c, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x1c, |
428 | 0x1c, 0x1c, 0x16, 0x12, 0x0e, 0x1c, 0x16, 0x12, 0x0e, 0x0e, |
429 | 0x0e, 0x0e, 0x0a, 0x1c, 0x1c, 0x1c, 0x16, 0x12, 0x0e, 0x1c, |
430 | 0x16, 0x12, 0x0e, 0x0e, 0x0e, 0x0e, 0x0a, 0x1c, 0x1c, 0x1c, |
431 | 0x14, 0x10, 0x0c, 0x1c, 0x14, 0x10, 0x0c, 0x0c, 0x0c, 0x0c, |
432 | 0x08, 0x1c, 0x1c, 0x1c, 0x14, 0x10, 0x0c, 0x1c, 0x14, 0x10, |
433 | 0x0c, 0x0c, 0x0c, 0x0c, 0x08, 0x10, 0x16, 0x18, 0x40, 0x46, |
434 | 0x48, 0x30, 0x36, 0x38, 0x4c, 0x5c, 0x60, 0x8c, 0xa0, 0xb4, |
435 | 0xbd, 0xcd, 0x4c, 0x5c, 0x60, 0x8c, 0x90, 0xb4, 0xbd, 0xcd, |
436 | 0x4e, 0x56, 0x5e, 0x66, 0x8e, 0x96, 0xae, 0xbf, 0x4c, 0x50, |
437 | 0x5c, 0x68, 0x8c, 0xb4, 0xff, 0xff, 0x4c, 0x5c, 0x8c, 0xb4, |
438 | 0xff, 0xff, 0xff, 0xff, 0x4e, 0x5e, 0x66, 0x8e, 0x9e, 0xae, |
439 | 0xff, 0xff, 0x4c, 0x50, 0x54, 0x5c, 0x8c, 0xa0, 0xb4, 0xbd, |
440 | 0x4c, 0x5c, 0x68, 0x8c, 0x98, 0xb4, 0xbd, 0xcd, 0x4e, 0x56, |
441 | 0x5e, 0x8e, 0x96, 0xae, 0xbf, 0xc7, 0x7c, 0x7c, 0x7c, 0x7c, |
442 | 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
443 | 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
444 | 0x3c, 0x7c, 0x7c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, |
445 | 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, |
446 | 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
447 | 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, |
448 | 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c |
449 | }; |
450 | |
451 | static const uint8_t ar9380_def_rom_h116[] = { |
452 | 0x02, 0x04, 0x00, 0x03, 0x7f, 0x00, 0x00, 0x00, 0x68, 0x31, |
453 | 0x31, 0x36, 0x2d, 0x30, 0x34, 0x31, 0x2d, 0x66, 0x30, 0x30, |
454 | 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
455 | 0x1f, 0x00, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, |
456 | 0x00, 0x00, 0x0d, 0x00, 0x06, 0x00, 0x08, 0xff, 0x10, 0x00, |
457 | 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x44, 0x44, 0x04, |
458 | 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x1f, 0x1f, |
459 | 0x12, 0x12, 0x12, 0x19, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, |
460 | 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, |
461 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x03, 0x00, |
462 | 0x2c, 0xe2, 0x00, 0x02, 0x0e, 0x1c, 0x80, 0xc0, 0x80, 0x0c, |
463 | 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
464 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
465 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x89, |
466 | 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
467 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
468 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
469 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
470 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
471 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xac, 0x70, 0x89, 0xac, |
472 | 0x70, 0x89, 0xac, 0x70, 0x89, 0xac, 0x22, 0x22, 0x22, 0x22, |
473 | 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x20, 0x20, 0x22, 0x22, |
474 | 0x20, 0x20, 0x22, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
475 | 0x20, 0x1e, 0x20, 0x20, 0x1e, 0x1c, 0x00, 0x00, 0x00, 0x00, |
476 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x1e, 0x20, 0x20, 0x1e, 0x1c, |
477 | 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1e, |
478 | 0x20, 0x20, 0x1e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, |
479 | 0x1e, 0x1e, 0x1e, 0x1c, 0x1e, 0x1e, 0x1c, 0x1a, 0x00, 0x00, |
480 | 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, 0x1e, 0x1e, |
481 | 0x1c, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, |
482 | 0x1e, 0x1c, 0x1e, 0x1e, 0x1c, 0x1a, 0x00, 0x00, 0x00, 0x00, |
483 | 0x11, 0x12, 0x15, 0x17, 0x41, 0x42, 0x45, 0x47, 0x31, 0x32, |
484 | 0x35, 0x37, 0x70, 0x75, 0x9d, 0xa2, 0x70, 0x75, 0xa2, 0xff, |
485 | 0x70, 0x75, 0xa2, 0xff, 0x7a, 0x7f, 0x93, 0x98, 0x70, 0x75, |
486 | 0xac, 0xb8, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, |
487 | 0x7a, 0x7f, 0x93, 0xa2, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, |
488 | 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, 0x7a, 0x7f, 0x93, 0xa2, |
489 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, |
490 | 0x3c, 0x7c, 0x7c, 0x3c, 0x00, 0x00, 0x3c, 0x7c, 0x3c, 0x3c, |
491 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x3c, 0x3c, 0x7c, |
492 | 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, |
493 | 0x3c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x20, 0x02, |
494 | 0x00, 0x00, 0x44, 0x44, 0x04, 0x00, 0x50, 0x01, 0x50, 0x01, |
495 | 0x50, 0x01, 0x19, 0x19, 0x19, 0x14, 0x14, 0x14, 0x46, 0x00, |
496 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x03, |
497 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, |
498 | 0x00, 0x0e, 0x0e, 0x03, 0x00, 0x2d, 0xe2, 0x00, 0x02, 0x0e, |
499 | 0x1c, 0xe0, 0xe0, 0xf0, 0x0c, 0xe0, 0xe0, 0xf0, 0x6c, 0x00, |
500 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, |
501 | 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
502 | 0x00, 0x00, 0x00, 0x4c, 0x54, 0x68, 0x78, 0x8c, 0xa0, 0xb4, |
503 | 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
504 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
505 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
506 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
507 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
508 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
509 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
510 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
511 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
512 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
513 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
514 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
515 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
516 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
517 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x58, 0x68, 0x78, 0x8c, |
518 | 0xa0, 0xb4, 0xcd, 0x4c, 0x58, 0x68, 0x78, 0x8c, 0xb4, 0xbd, |
519 | 0xcd, 0x4c, 0x58, 0x68, 0x78, 0x8c, 0xb4, 0xbd, 0xcd, 0x1e, |
520 | 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, |
521 | 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, |
522 | 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, 0x18, 0x1e, 0x1e, 0x1c, |
523 | 0x18, 0x1e, 0x1e, 0x1e, 0x1c, 0x18, 0x14, 0x1e, 0x1c, 0x18, |
524 | 0x14, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1c, 0x18, |
525 | 0x14, 0x1e, 0x1c, 0x18, 0x14, 0x00, 0x00, 0x00, 0x00, 0x1e, |
526 | 0x1e, 0x1e, 0x1a, 0x16, 0x12, 0x1e, 0x1a, 0x16, 0x12, 0x00, |
527 | 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1a, 0x16, 0x12, 0x1e, |
528 | 0x1a, 0x16, 0x12, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, |
529 | 0x18, 0x14, 0x10, 0x1e, 0x18, 0x14, 0x10, 0x00, 0x00, 0x00, |
530 | 0x00, 0x1e, 0x1e, 0x1e, 0x18, 0x14, 0x10, 0x1e, 0x18, 0x14, |
531 | 0x10, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x16, 0x12, |
532 | 0x0e, 0x1e, 0x16, 0x12, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1e, |
533 | 0x1e, 0x1e, 0x16, 0x12, 0x0e, 0x1e, 0x16, 0x12, 0x0e, 0x00, |
534 | 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1a, 0x16, 0x12, 0x1c, |
535 | 0x1a, 0x16, 0x12, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, |
536 | 0x1a, 0x16, 0x12, 0x1c, 0x1a, 0x16, 0x12, 0x00, 0x00, 0x00, |
537 | 0x00, 0x1c, 0x1c, 0x1c, 0x18, 0x14, 0x10, 0x1c, 0x18, 0x14, |
538 | 0x10, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x18, 0x14, |
539 | 0x10, 0x1c, 0x18, 0x14, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1c, |
540 | 0x1c, 0x1c, 0x16, 0x12, 0x0e, 0x1c, 0x16, 0x12, 0x0e, 0x00, |
541 | 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x16, 0x12, 0x0e, 0x1c, |
542 | 0x16, 0x12, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, |
543 | 0x14, 0x10, 0x0c, 0x1c, 0x14, 0x10, 0x0c, 0x00, 0x00, 0x00, |
544 | 0x00, 0x1c, 0x1c, 0x1c, 0x14, 0x10, 0x0c, 0x1c, 0x14, 0x10, |
545 | 0x0c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x16, 0x18, 0x40, 0x46, |
546 | 0x48, 0x30, 0x36, 0x38, 0x4c, 0x5c, 0x60, 0x8c, 0xa0, 0xb4, |
547 | 0xbd, 0xcd, 0x4c, 0x5c, 0x60, 0x8c, 0x90, 0xb4, 0xbd, 0xcd, |
548 | 0x4e, 0x56, 0x5e, 0x66, 0x8e, 0x96, 0xae, 0xbf, 0x4c, 0x50, |
549 | 0x5c, 0x68, 0x8c, 0xb4, 0xff, 0xff, 0x4c, 0x5c, 0x8c, 0xb4, |
550 | 0xff, 0xff, 0xff, 0xff, 0x4e, 0x5e, 0x66, 0x8e, 0x9e, 0xae, |
551 | 0xff, 0xff, 0x4c, 0x50, 0x54, 0x5c, 0x8c, 0xa0, 0xb4, 0xbd, |
552 | 0x4c, 0x5c, 0x68, 0x8c, 0x98, 0xb4, 0xbd, 0xcd, 0x4e, 0x56, |
553 | 0x5e, 0x8e, 0x96, 0xae, 0xbf, 0xc7, 0x7c, 0x7c, 0x7c, 0x7c, |
554 | 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
555 | 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
556 | 0x3c, 0x7c, 0x7c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, |
557 | 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, |
558 | 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
559 | 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, |
560 | 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c |
561 | }; |
562 | |
563 | static const uint8_t ar9380_def_rom_x112[] = { |
564 | 0x02, 0x05, 0x00, 0x03, 0x7f, 0x00, 0x00, 0x00, 0x78, 0x31, |
565 | 0x31, 0x32, 0x2d, 0x30, 0x34, 0x31, 0x2d, 0x66, 0x30, 0x30, |
566 | 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
567 | 0x1f, 0x00, 0x77, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, |
568 | 0x00, 0x00, 0x0d, 0x00, 0x06, 0x00, 0x08, 0xff, 0x00, 0x00, |
569 | 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x22, 0x22, 0x02, |
570 | 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1b, 0x1b, 0x1b, |
571 | 0x15, 0x15, 0x15, 0x32, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, |
572 | 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, |
573 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x03, 0x00, |
574 | 0x2c, 0xe2, 0x00, 0x02, 0x0e, 0x1c, 0x80, 0xc0, 0x80, 0x0c, |
575 | 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
576 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
577 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x89, |
578 | 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
579 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
580 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
581 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
582 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
583 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xac, 0x70, 0x89, 0xac, |
584 | 0x70, 0x89, 0xac, 0x70, 0x89, 0xac, 0x26, 0x26, 0x26, 0x26, |
585 | 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x24, 0x22, 0x26, 0x26, |
586 | 0x24, 0x22, 0x26, 0x26, 0x22, 0x20, 0x24, 0x24, 0x24, 0x24, |
587 | 0x24, 0x22, 0x22, 0x20, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1a, |
588 | 0x24, 0x24, 0x24, 0x24, 0x24, 0x22, 0x24, 0x22, 0x20, 0x1e, |
589 | 0x1e, 0x1e, 0x1c, 0x1a, 0x24, 0x24, 0x24, 0x24, 0x24, 0x22, |
590 | 0x22, 0x20, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1a, 0x24, 0x24, |
591 | 0x24, 0x24, 0x22, 0x20, 0x20, 0x1e, 0x1c, 0x1a, 0x1a, 0x1a, |
592 | 0x1a, 0x18, 0x24, 0x24, 0x24, 0x24, 0x22, 0x20, 0x22, 0x20, |
593 | 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x24, 0x24, 0x24, 0x24, |
594 | 0x22, 0x20, 0x20, 0x1e, 0x1c, 0x1a, 0x1a, 0x1a, 0x1a, 0x18, |
595 | 0x11, 0x12, 0x15, 0x17, 0x41, 0x42, 0x45, 0x47, 0x31, 0x32, |
596 | 0x35, 0x37, 0x70, 0x75, 0x9d, 0xa2, 0x70, 0x75, 0xa2, 0xff, |
597 | 0x70, 0x75, 0xa2, 0xff, 0x7a, 0x7f, 0x93, 0x98, 0x70, 0x75, |
598 | 0xac, 0xb8, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, |
599 | 0x7a, 0x7f, 0x93, 0xa2, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, |
600 | 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, 0x7a, 0x7f, 0x93, 0xa2, |
601 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, |
602 | 0x3c, 0x7c, 0x7c, 0x3c, 0x00, 0x00, 0x3c, 0x7c, 0x3c, 0x3c, |
603 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x3c, 0x3c, 0x7c, |
604 | 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, |
605 | 0x3c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x10, 0x01, |
606 | 0x00, 0x00, 0x22, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, |
607 | 0x00, 0x00, 0x13, 0x19, 0x17, 0x19, 0x19, 0x19, 0x46, 0x0f, |
608 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x03, |
609 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, |
610 | 0x00, 0x0e, 0x0e, 0x03, 0x00, 0x2d, 0xe2, 0x00, 0x02, 0x0e, |
611 | 0x1c, 0xe0, 0xe0, 0xf0, 0x0c, 0xe0, 0xe0, 0xf0, 0x6c, 0x00, |
612 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, |
613 | 0x69, 0x10, 0x14, 0x10, 0x19, 0x19, 0x19, 0x1d, 0x20, 0x24, |
614 | 0x10, 0x10, 0x10, 0x4c, 0x54, 0x68, 0x78, 0x8c, 0xa0, 0xb4, |
615 | 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
616 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
617 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
618 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
619 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
620 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
621 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
622 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
623 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
624 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
625 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
626 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
627 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
628 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
629 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x54, 0x68, 0x78, 0x8c, |
630 | 0xa0, 0xb9, 0xcd, 0x4c, 0x54, 0x68, 0x78, 0x8c, 0xa0, 0xb9, |
631 | 0xcd, 0x4c, 0x54, 0x68, 0x78, 0x8c, 0xa0, 0xb9, 0xcd, 0x20, |
632 | 0x20, 0x1c, 0x1a, 0x20, 0x20, 0x1c, 0x1a, 0x20, 0x20, 0x1c, |
633 | 0x1a, 0x20, 0x20, 0x1a, 0x18, 0x20, 0x20, 0x1a, 0x18, 0x20, |
634 | 0x20, 0x18, 0x16, 0x1e, 0x1e, 0x18, 0x16, 0x1e, 0x1e, 0x18, |
635 | 0x16, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x1a, 0x20, 0x1c, 0x1a, |
636 | 0x18, 0x18, 0x18, 0x16, 0x16, 0x20, 0x20, 0x20, 0x20, 0x1c, |
637 | 0x1a, 0x20, 0x1c, 0x1a, 0x18, 0x18, 0x18, 0x16, 0x16, 0x20, |
638 | 0x20, 0x20, 0x20, 0x1c, 0x1a, 0x20, 0x1c, 0x1a, 0x18, 0x18, |
639 | 0x18, 0x16, 0x16, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x1a, 0x20, |
640 | 0x1a, 0x18, 0x16, 0x16, 0x16, 0x14, 0x14, 0x20, 0x20, 0x20, |
641 | 0x20, 0x1c, 0x1a, 0x20, 0x1a, 0x18, 0x16, 0x14, 0x12, 0x10, |
642 | 0x10, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x1a, 0x20, 0x18, 0x14, |
643 | 0x10, 0x12, 0x10, 0x0e, 0x0e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, |
644 | 0x1a, 0x1e, 0x18, 0x14, 0x10, 0x12, 0x10, 0x0e, 0x0e, 0x1e, |
645 | 0x1e, 0x1e, 0x1e, 0x1c, 0x1a, 0x1e, 0x18, 0x14, 0x10, 0x12, |
646 | 0x10, 0x0e, 0x0e, 0x20, 0x20, 0x20, 0x1e, 0x1c, 0x1a, 0x1e, |
647 | 0x1c, 0x1a, 0x18, 0x18, 0x18, 0x16, 0x16, 0x20, 0x20, 0x20, |
648 | 0x1e, 0x1c, 0x1a, 0x1e, 0x1c, 0x1a, 0x18, 0x18, 0x18, 0x16, |
649 | 0x16, 0x20, 0x20, 0x20, 0x1e, 0x1c, 0x1a, 0x1e, 0x1c, 0x1a, |
650 | 0x18, 0x18, 0x18, 0x16, 0x16, 0x20, 0x20, 0x20, 0x1e, 0x1c, |
651 | 0x1a, 0x1e, 0x1a, 0x18, 0x16, 0x16, 0x16, 0x14, 0x14, 0x20, |
652 | 0x20, 0x20, 0x1e, 0x1c, 0x1a, 0x1e, 0x1a, 0x18, 0x16, 0x14, |
653 | 0x12, 0x10, 0x10, 0x20, 0x20, 0x20, 0x1e, 0x1c, 0x1a, 0x1e, |
654 | 0x16, 0x14, 0x10, 0x12, 0x10, 0x0e, 0x0e, 0x1e, 0x1e, 0x1e, |
655 | 0x1e, 0x1c, 0x1a, 0x1e, 0x16, 0x14, 0x10, 0x12, 0x10, 0x0e, |
656 | 0x0e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, 0x1a, 0x1e, 0x16, 0x14, |
657 | 0x10, 0x12, 0x10, 0x0e, 0x0e, 0x10, 0x16, 0x18, 0x40, 0x46, |
658 | 0x48, 0x30, 0x36, 0x38, 0x4c, 0x5c, 0x60, 0x8c, 0xa0, 0xb4, |
659 | 0xbd, 0xcd, 0x4c, 0x5c, 0x60, 0x8c, 0x90, 0xb4, 0xbd, 0xcd, |
660 | 0x4e, 0x56, 0x5e, 0x66, 0x8e, 0x96, 0xae, 0xbf, 0x4c, 0x50, |
661 | 0x5c, 0x68, 0x8c, 0xb4, 0xff, 0xff, 0x4c, 0x5c, 0x8c, 0xb4, |
662 | 0xff, 0xff, 0xff, 0xff, 0x4e, 0x5e, 0x66, 0x8e, 0x9e, 0xae, |
663 | 0xff, 0xff, 0x4c, 0x50, 0x54, 0x5c, 0x8c, 0xa0, 0xb4, 0xbd, |
664 | 0x4c, 0x5c, 0x68, 0x8c, 0x98, 0xb4, 0xbd, 0xcd, 0x4e, 0x56, |
665 | 0x5e, 0x8e, 0x96, 0xae, 0xbf, 0xc7, 0x7c, 0x7c, 0x7c, 0x7c, |
666 | 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
667 | 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
668 | 0x3c, 0x7c, 0x7c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, |
669 | 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, |
670 | 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
671 | 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, |
672 | 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c |
673 | }; |
674 | |
675 | static const uint8_t ar9380_def_rom_x113[] = { |
676 | 0x02, 0x06, 0x00, 0x03, 0x7f, 0x00, 0x00, 0x00, 0x78, 0x31, |
677 | 0x31, 0x33, 0x2d, 0x30, 0x32, 0x33, 0x2d, 0x66, 0x30, 0x30, |
678 | 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
679 | 0x1f, 0x00, 0x77, 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, |
680 | 0x00, 0x00, 0x0d, 0x00, 0x06, 0x00, 0x08, 0xff, 0x21, 0x00, |
681 | 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x44, 0x44, 0x04, |
682 | 0x00, 0x50, 0x01, 0x50, 0x01, 0x50, 0x01, 0x00, 0x00, 0x00, |
683 | 0x00, 0x00, 0x00, 0x19, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, |
684 | 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, |
685 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x03, 0x00, |
686 | 0x2c, 0xe2, 0x00, 0x02, 0x0e, 0x1c, 0x80, 0xc0, 0x80, 0x0c, |
687 | 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
688 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
689 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x89, |
690 | 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
691 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
692 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
693 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
694 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
695 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xac, 0x70, 0x89, 0xac, |
696 | 0x70, 0x89, 0xac, 0x70, 0x89, 0xac, 0x22, 0x22, 0x22, 0x22, |
697 | 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x20, 0x20, 0x22, 0x22, |
698 | 0x20, 0x20, 0x22, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
699 | 0x20, 0x1c, 0x20, 0x20, 0x1e, 0x1c, 0x00, 0x00, 0x00, 0x00, |
700 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x1c, 0x20, 0x20, 0x1e, 0x1c, |
701 | 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x1c, |
702 | 0x20, 0x20, 0x1e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, |
703 | 0x1e, 0x1e, 0x1e, 0x1c, 0x1e, 0x1e, 0x1c, 0x1a, 0x00, 0x00, |
704 | 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1c, 0x1e, 0x1e, |
705 | 0x1c, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, |
706 | 0x1e, 0x1c, 0x1e, 0x1e, 0x1c, 0x1a, 0x00, 0x00, 0x00, 0x00, |
707 | 0x11, 0x12, 0x15, 0x17, 0x41, 0x42, 0x45, 0x47, 0x31, 0x32, |
708 | 0x35, 0x37, 0x70, 0x75, 0x9d, 0xa2, 0x70, 0x75, 0xa2, 0xff, |
709 | 0x70, 0x75, 0xa2, 0xff, 0x7a, 0x7f, 0x93, 0x98, 0x70, 0x75, |
710 | 0xac, 0xb8, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, |
711 | 0x7a, 0x7f, 0x93, 0xa2, 0x70, 0x75, 0xac, 0x00, 0x70, 0x75, |
712 | 0xac, 0x00, 0x70, 0x75, 0xac, 0x00, 0x7a, 0x7f, 0x93, 0xa2, |
713 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, |
714 | 0x3c, 0x7c, 0x7c, 0x3c, 0x00, 0x00, 0x3c, 0x7c, 0x3c, 0x3c, |
715 | 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x3c, 0x3c, 0x7c, |
716 | 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x3c, 0x3c, |
717 | 0x3c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x20, 0x02, |
718 | 0x00, 0x00, 0x11, 0x11, 0x01, 0x00, 0x50, 0x01, 0x50, 0x01, |
719 | 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, |
720 | 0x8c, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x03, |
721 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, |
722 | 0x00, 0x0e, 0x0e, 0x03, 0x00, 0x2d, 0xe2, 0x00, 0x02, 0x0e, |
723 | 0x1c, 0xe0, 0xe0, 0xf0, 0x0c, 0xe0, 0xe0, 0xf0, 0x6c, 0x00, |
724 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, |
725 | 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
726 | 0x00, 0x00, 0x00, 0x4c, 0x58, 0x68, 0x78, 0x8c, 0xa0, 0xbd, |
727 | 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
728 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
729 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
730 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
731 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
733 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
734 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
735 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
736 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
737 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
738 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
739 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
740 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
741 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x54, 0x68, 0x78, 0x8c, |
742 | 0xa0, 0xbd, 0xc5, 0x4c, 0x58, 0x68, 0x78, 0x8c, 0xb4, 0xbd, |
743 | 0xcd, 0x4e, 0x56, 0x68, 0x7a, 0x8e, 0xae, 0xbf, 0xcd, 0x2a, |
744 | 0x28, 0x28, 0x22, 0x2a, 0x28, 0x28, 0x22, 0x2a, 0x28, 0x28, |
745 | 0x22, 0x2a, 0x28, 0x28, 0x22, 0x2a, 0x28, 0x28, 0x22, 0x2a, |
746 | 0x28, 0x28, 0x22, 0x2a, 0x28, 0x28, 0x22, 0x2a, 0x28, 0x28, |
747 | 0x22, 0x28, 0x28, 0x28, 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, |
748 | 0x1c, 0x28, 0x28, 0x20, 0x14, 0x28, 0x28, 0x28, 0x28, 0x20, |
749 | 0x1c, 0x28, 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, 0x14, 0x28, |
750 | 0x28, 0x28, 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, 0x1c, 0x28, |
751 | 0x28, 0x20, 0x14, 0x28, 0x28, 0x28, 0x28, 0x20, 0x1c, 0x28, |
752 | 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, 0x14, 0x28, 0x28, 0x28, |
753 | 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, |
754 | 0x14, 0x28, 0x28, 0x28, 0x28, 0x20, 0x1c, 0x28, 0x28, 0x20, |
755 | 0x1c, 0x28, 0x28, 0x20, 0x14, 0x26, 0x26, 0x26, 0x26, 0x20, |
756 | 0x1c, 0x26, 0x26, 0x20, 0x1c, 0x26, 0x26, 0x20, 0x1a, 0x24, |
757 | 0x24, 0x24, 0x24, 0x20, 0x1c, 0x24, 0x24, 0x20, 0x1c, 0x24, |
758 | 0x24, 0x20, 0x1a, 0x28, 0x28, 0x28, 0x26, 0x1e, 0x1a, 0x28, |
759 | 0x28, 0x1e, 0x1a, 0x28, 0x28, 0x1e, 0x18, 0x28, 0x28, 0x28, |
760 | 0x26, 0x1e, 0x1a, 0x28, 0x28, 0x1e, 0x1a, 0x28, 0x28, 0x1e, |
761 | 0x18, 0x28, 0x28, 0x28, 0x26, 0x1e, 0x1a, 0x28, 0x28, 0x1e, |
762 | 0x1a, 0x28, 0x28, 0x1e, 0x18, 0x28, 0x28, 0x28, 0x26, 0x1e, |
763 | 0x1a, 0x28, 0x28, 0x1e, 0x1a, 0x28, 0x28, 0x1e, 0x18, 0x28, |
764 | 0x28, 0x28, 0x26, 0x1e, 0x1a, 0x28, 0x28, 0x1e, 0x1a, 0x28, |
765 | 0x28, 0x1e, 0x18, 0x28, 0x28, 0x28, 0x26, 0x1e, 0x1a, 0x28, |
766 | 0x28, 0x1e, 0x1a, 0x28, 0x28, 0x1e, 0x18, 0x24, 0x24, 0x24, |
767 | 0x24, 0x1e, 0x1a, 0x24, 0x24, 0x1e, 0x1a, 0x24, 0x24, 0x1e, |
768 | 0x18, 0x22, 0x22, 0x22, 0x22, 0x1e, 0x1a, 0x22, 0x22, 0x1e, |
769 | 0x1a, 0x22, 0x22, 0x1e, 0x18, 0x10, 0x16, 0x18, 0x40, 0x46, |
770 | 0x48, 0x30, 0x36, 0x38, 0x4c, 0x5c, 0x60, 0x8c, 0xa0, 0xb4, |
771 | 0xbd, 0xcd, 0x4c, 0x5c, 0x60, 0x8c, 0x90, 0xb4, 0xbd, 0xcd, |
772 | 0x4e, 0x56, 0x5e, 0x66, 0x8e, 0x96, 0xae, 0xbf, 0x4c, 0x50, |
773 | 0x5c, 0x68, 0x8c, 0xb4, 0xff, 0xff, 0x4c, 0x5c, 0x8c, 0xb4, |
774 | 0xff, 0xff, 0xff, 0xff, 0x4e, 0x5e, 0x66, 0x8e, 0x9e, 0xae, |
775 | 0xff, 0xff, 0x4c, 0x50, 0x54, 0x5c, 0x8c, 0xa0, 0xb4, 0xbd, |
776 | 0x4c, 0x5c, 0x68, 0x8c, 0x98, 0xb4, 0xbd, 0xcd, 0x4e, 0x56, |
777 | 0x5e, 0x8e, 0x96, 0xae, 0xbf, 0xc7, 0x7c, 0x7c, 0x7c, 0x7c, |
778 | 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
779 | 0x7c, 0x3c, 0x3c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
780 | 0x3c, 0x7c, 0x7c, 0x3c, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, |
781 | 0x7c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, |
782 | 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, |
783 | 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, |
784 | 0x7c, 0x3c, 0x7c, 0x7c, 0x7c, 0x7c, 0x3c, 0x7c |
785 | }; |
786 | |
787 | static const uint8_t *ar9380_rom_templates[] = { |
788 | ar9380_def_rom, |
789 | ar9380_def_rom_h112, |
790 | ar9380_def_rom_h116, |
791 | ar9380_def_rom_x112, |
792 | ar9380_def_rom_x113 |
793 | }; |
794 | |
795 | /* Macro to "pack" registers to 16-bit to save some .rodata space. */ |
796 | #define P(x) ((x) >> 2) |
797 | |
798 | /* |
799 | * AR9380 2.2 programming. |
800 | */ |
801 | static const uint16_t ar9380_2_2_regs[] = { |
802 | P(0x07010), P(0x01030), P(0x01070), P(0x010b0), P(0x08014), |
803 | P(0x0801c), P(0x08120), P(0x081d0), P(0x08318), P(0x1609c), |
804 | P(0x160ac), P(0x160b0), P(0x1610c), P(0x16140), P(0x1650c), |
805 | P(0x16540), P(0x1690c), P(0x16940), P(0x09810), P(0x09820), |
806 | P(0x09824), P(0x09828), P(0x0982c), P(0x09830), P(0x09c00), |
807 | P(0x09e00), P(0x09e04), P(0x09e0c), P(0x09e10), P(0x09e14), |
808 | P(0x09e18), P(0x09e1c), P(0x09e20), P(0x09e2c), P(0x09e3c), |
809 | P(0x09e44), P(0x09e48), P(0x09fc8), P(0x0a204), P(0x0a208), |
810 | P(0x0a22c), P(0x0a230), P(0x0a234), P(0x0a238), P(0x0a250), |
811 | P(0x0a254), P(0x0a258), P(0x0a25c), P(0x0a260), P(0x0a264), |
812 | P(0x0a280), P(0x0a284), P(0x0a288), P(0x0a28c), P(0x0a2c4), |
813 | P(0x0a2d0), P(0x0a2d8), P(0x0a358), P(0x0a830), P(0x0ae04), |
814 | P(0x0ae18), P(0x0ae1c), P(0x0ae20), P(0x0b284), P(0x0b830), |
815 | P(0x0be04), P(0x0be18), P(0x0be1c), P(0x0be20), P(0x0c284) |
816 | }; |
817 | |
818 | static const uint32_t ar9380_2_2_vals_5g20[] = { |
819 | 0x00000023, 0x00000230, 0x00000168, 0x00000e60, 0x03e803e8, |
820 | 0x128d8027, 0x08f04800, 0x00003210, 0x00003e80, 0x0dd08f29, |
821 | 0xa4653c00, 0x03284f3e, 0x08000000, 0x10804008, 0x08000000, |
822 | 0x10804008, 0x08000000, 0x10804008, 0xd00a8005, 0x206a022e, |
823 | 0x5ac640d0, 0x06903081, 0x05eea6d4, 0x0000059c, 0x000000c4, |
824 | 0x0372111a, 0x001c2020, 0x6c4000e2, 0x7ec88d2e, 0x37b95d5e, |
825 | 0x00000000, 0x0001cf9c, 0x000003b5, 0x0000001c, 0xcf946220, |
826 | 0x02321e27, 0x5030201a, 0x0003f000, 0x000037c0, 0x00000104, |
827 | 0x01026a2f, 0x0000000a, 0x00000fff, 0xffb81018, 0x00000000, |
828 | 0x000007d0, 0x02020002, 0x01000e0e, 0x0a021501, 0x00000e0e, |
829 | 0x00000007, 0x00000000, 0x00000110, 0x00022222, 0x00158d18, |
830 | 0x00071981, 0x7999a83a, 0x00000000, 0x0000019c, 0x001c0000, |
831 | 0x00000000, 0x0000019c, 0x000001b5, 0x00000000, 0x0000019c, |
832 | 0x001c0000, 0x00000000, 0x0000019c, 0x000001b5, 0x00000000 |
833 | }; |
834 | |
835 | #ifndef IEEE80211_NO_HT |
836 | static const uint32_t ar9380_2_2_vals_5g40[] = { |
837 | 0x00000023, 0x00000460, 0x000002d0, 0x00001cc0, 0x07d007d0, |
838 | 0x128d804f, 0x08f04800, 0x00003210, 0x00007d00, 0x0dd08f29, |
839 | 0xa4653c00, 0x03284f3e, 0x00000000, 0x10804008, 0x00000000, |
840 | 0x10804008, 0x00000000, 0x10804008, 0xd00a8005, 0x206a022e, |
841 | 0x5ac640d0, 0x06903081, 0x05eea6d4, 0x0000059c, 0x000000c4, |
842 | 0x0372111a, 0x001c2020, 0x6d4000e2, 0x7ec88d2e, 0x37b9605e, |
843 | 0x00000000, 0x0001cf9c, 0x000003b5, 0x0000001c, 0xcf946220, |
844 | 0x02321e27, 0x5030201a, 0x0003f000, 0x000037c4, 0x00000104, |
845 | 0x01026a2f, 0x00000014, 0x10000fff, 0xffb81018, 0x00000000, |
846 | 0x00000fa0, 0x02020002, 0x01000e0e, 0x0a021501, 0x00000e0e, |
847 | 0x00000007, 0x00000000, 0x00000110, 0x00022222, 0x00158d18, |
848 | 0x00071981, 0x7999a83a, 0x00000000, 0x0000019c, 0x001c0000, |
849 | 0x00000000, 0x0000019c, 0x000001b5, 0x00000000, 0x0000019c, |
850 | 0x001c0000, 0x00000000, 0x0000019c, 0x000001b5, 0x00000000 |
851 | }; |
852 | |
853 | static const uint32_t ar9380_2_2_vals_2g40[] = { |
854 | 0x00000023, 0x000002c0, 0x00000318, 0x00007c70, 0x10801600, |
855 | 0x12e00057, 0x08f04810, 0x0000320a, 0x00006880, 0x0b283f31, |
856 | 0x24652800, 0x05d08f20, 0x00000000, 0x50804008, 0x00000000, |
857 | 0x50804008, 0x00000000, 0x50804008, 0xd00a8011, 0x206a012e, |
858 | 0x5ac640d0, 0x06903881, 0x05eea6d4, 0x0000119c, 0x000000c4, |
859 | 0x037216a0, 0x001c2020, 0x6d4000e2, 0x7ec84d2e, 0x3379605e, |
860 | 0x00000000, 0x00021f9c, 0x000003ce, 0x00000021, 0xcf946222, |
861 | 0x02291e27, 0x50302012, 0x0001a000, 0x000037c4, 0x00000004, |
862 | 0x01026a2f, 0x00000016, 0x10000fff, 0xffb81018, 0x00000210, |
863 | 0x00001130, 0x02020002, 0x01000e0e, 0x3a021501, 0x00000e0e, |
864 | 0x0000000b, 0x00000150, 0x00000110, 0x00022222, 0x00158d18, |
865 | 0x00071981, 0x7999a83a, 0x00000000, 0x0000019c, 0x001c0000, |
866 | 0x00000000, 0x0000019c, 0x000001ce, 0x00000150, 0x0000019c, |
867 | 0x001c0000, 0x00000000, 0x0000019c, 0x000001ce, 0x00000150 |
868 | }; |
869 | #endif |
870 | |
871 | static const uint32_t ar9380_2_2_vals_2g20[] = { |
872 | 0x00000023, 0x00000160, 0x0000018c, 0x00003e38, 0x08400b00, |
873 | 0x12e0002b, 0x08f04810, 0x0000320a, 0x00003440, 0x0b283f31, |
874 | 0x24652800, 0x05d08f20, 0x00000000, 0x50804008, 0x00000000, |
875 | 0x50804008, 0x00000000, 0x50804008, 0xd00a8011, 0x206a012e, |
876 | 0x5ac640d0, 0x06903881, 0x05eea6d4, 0x0000119c, 0x000000c4, |
877 | 0x037216a0, 0x001c2020, 0x6c4000e2, 0x7ec84d2e, 0x33795d5e, |
878 | 0x00000000, 0x00021f9c, 0x000003ce, 0x00000021, 0xcf946222, |
879 | 0x02291e27, 0x50302012, 0x0001a000, 0x000037c0, 0x00000004, |
880 | 0x01026a2f, 0x0000000b, 0x00000fff, 0xffb81018, 0x00000108, |
881 | 0x00000898, 0x02020002, 0x01000e0e, 0x3a021501, 0x00000e0e, |
882 | 0x0000000b, 0x00000150, 0x00000110, 0x00022222, 0x00158d18, |
883 | 0x00071982, 0x7999a83a, 0x00000000, 0x0000019c, 0x001c0000, |
884 | 0x00000000, 0x0000019c, 0x000001ce, 0x00000150, 0x0000019c, |
885 | 0x001c0000, 0x00000000, 0x0000019c, 0x000001ce, 0x00000150 |
886 | }; |
887 | |
888 | static const uint16_t ar9380_2_2_cm_regs[] = { |
889 | P(0x040a4), P(0x07008), P(0x07020), P(0x07034), P(0x07038), |
890 | P(0x07048), P(0x00008), P(0x00030), P(0x00034), P(0x00040), |
891 | P(0x00044), P(0x00048), P(0x0004c), P(0x00050), P(0x01040), |
892 | P(0x01044), P(0x01048), P(0x0104c), P(0x01050), P(0x01054), |
893 | P(0x01058), P(0x0105c), P(0x01060), P(0x01064), P(0x010f0), |
894 | P(0x01270), P(0x012b0), P(0x012f0), P(0x0143c), P(0x0147c), |
895 | P(0x08000), P(0x08004), P(0x08008), P(0x0800c), P(0x08018), |
896 | P(0x08020), P(0x08038), P(0x0803c), P(0x08040), P(0x08044), |
897 | P(0x08048), P(0x0804c), P(0x08054), P(0x08058), P(0x0805c), |
898 | P(0x08060), P(0x08064), P(0x08070), P(0x08074), P(0x08078), |
899 | P(0x0809c), P(0x080a0), P(0x080a4), P(0x080a8), P(0x080ac), |
900 | P(0x080b0), P(0x080b4), P(0x080b8), P(0x080bc), P(0x080c0), |
901 | P(0x080c4), P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), |
902 | P(0x080d8), P(0x080dc), P(0x080e0), P(0x080e4), P(0x080e8), |
903 | P(0x080ec), P(0x080f0), P(0x080f4), P(0x080fc), P(0x08100), |
904 | P(0x08108), P(0x0810c), P(0x08110), P(0x08114), P(0x08118), |
905 | P(0x0811c), P(0x08124), P(0x08128), P(0x0812c), P(0x08130), |
906 | P(0x08134), P(0x08138), P(0x0813c), P(0x08144), P(0x08168), |
907 | P(0x0816c), P(0x081c0), P(0x081c4), P(0x081c8), P(0x081cc), |
908 | P(0x081ec), P(0x081f0), P(0x081f4), P(0x081f8), P(0x081fc), |
909 | P(0x08240), P(0x08244), P(0x08248), P(0x0824c), P(0x08250), |
910 | P(0x08254), P(0x08258), P(0x0825c), P(0x08260), P(0x08264), |
911 | P(0x08268), P(0x0826c), P(0x08270), P(0x08274), P(0x08278), |
912 | P(0x0827c), P(0x08284), P(0x08288), P(0x0828c), P(0x08294), |
913 | P(0x08298), P(0x0829c), P(0x08300), P(0x08314), P(0x0831c), |
914 | P(0x08328), P(0x0832c), P(0x08330), P(0x08334), P(0x08338), |
915 | P(0x0833c), P(0x08340), P(0x08344), P(0x08348), P(0x0835c), |
916 | P(0x08360), P(0x08364), P(0x08368), P(0x08370), P(0x08374), |
917 | P(0x08378), P(0x0837c), P(0x08380), P(0x08384), P(0x08390), |
918 | P(0x08394), P(0x08398), P(0x0839c), P(0x083a0), P(0x083a4), |
919 | P(0x083a8), P(0x083ac), P(0x083b0), P(0x083b4), P(0x083b8), |
920 | P(0x083bc), P(0x083c0), P(0x083c4), P(0x083c8), P(0x083cc), |
921 | P(0x083d0), P(0x09800), P(0x09804), P(0x09808), P(0x0980c), |
922 | P(0x09814), P(0x09818), P(0x0981c), P(0x09834), P(0x09838), |
923 | P(0x0983c), P(0x09880), P(0x09884), P(0x098a4), P(0x098b0), |
924 | P(0x098d0), P(0x098d4), P(0x098dc), P(0x098f0), P(0x098f4), |
925 | P(0x09c04), P(0x09c08), P(0x09c0c), P(0x09c10), P(0x09c14), |
926 | P(0x09c18), P(0x09c1c), P(0x09d00), P(0x09d04), P(0x09d08), |
927 | P(0x09d0c), P(0x09d10), P(0x09d14), P(0x09d18), P(0x09e08), |
928 | P(0x09e24), P(0x09e28), P(0x09e30), P(0x09e34), P(0x09e38), |
929 | P(0x09e40), P(0x09e4c), P(0x09e50), P(0x09e54), P(0x09fc0), |
930 | P(0x09fc4), P(0x09fcc), P(0x09fd0), P(0x0a20c), P(0x0a220), |
931 | P(0x0a224), P(0x0a228), P(0x0a23c), P(0x0a244), P(0x0a2a0), |
932 | P(0x0a2c0), P(0x0a2c8), P(0x0a2cc), P(0x0a2d4), P(0x0a2ec), |
933 | P(0x0a2f0), P(0x0a2f4), P(0x0a2f8), P(0x0a344), P(0x0a34c), |
934 | P(0x0a350), P(0x0a364), P(0x0a370), P(0x0a390), P(0x0a394), |
935 | P(0x0a398), P(0x0a39c), P(0x0a3a0), P(0x0a3a4), P(0x0a3a8), |
936 | P(0x0a3ac), P(0x0a3c0), P(0x0a3c4), P(0x0a3c8), P(0x0a3cc), |
937 | P(0x0a3d0), P(0x0a3d4), P(0x0a3d8), P(0x0a3dc), P(0x0a3e0), |
938 | P(0x0a3e4), P(0x0a3e8), P(0x0a3ec), P(0x0a3f0), P(0x0a3f4), |
939 | P(0x0a3f8), P(0x0a3fc), P(0x0a400), P(0x0a404), P(0x0a408), |
940 | P(0x0a40c), P(0x0a414), P(0x0a418), P(0x0a41c), P(0x0a420), |
941 | P(0x0a424), P(0x0a428), P(0x0a42c), P(0x0a430), P(0x0a434), |
942 | P(0x0a438), P(0x0a43c), P(0x0a440), P(0x0a444), P(0x0a448), |
943 | P(0x0a44c), P(0x0a450), P(0x0a458), P(0x0a640), P(0x0a644), |
944 | P(0x0a648), P(0x0a64c), P(0x0a670), P(0x0a674), P(0x0a678), |
945 | P(0x0a67c), P(0x0a680), P(0x0a684), P(0x0a688), P(0x0a690), |
946 | P(0x0a7c0), P(0x0a7c4), P(0x0a7c8), P(0x0a7cc), P(0x0a7d0), |
947 | P(0x0a7d4), P(0x0a7dc), P(0x0a8d0), P(0x0a8d4), P(0x0a8dc), |
948 | P(0x0a8f0), P(0x0a8f4), P(0x0b2d0), P(0x0b2d4), P(0x0b2ec), |
949 | P(0x0b2f0), P(0x0b2f4), P(0x0b2f8), P(0x0b408), P(0x0b40c), |
950 | P(0x0b420), P(0x0b8d0), P(0x0b8d4), P(0x0b8dc), P(0x0b8f0), |
951 | P(0x0b8f4), P(0x0c2d0), P(0x0c2d4), P(0x0c2ec), P(0x0c2f0), |
952 | P(0x0c2f4), P(0x0c2f8), P(0x0c408), P(0x0c40c), P(0x0c420), |
953 | P(0x16000), P(0x16004), P(0x16008), P(0x1600c), P(0x16040), |
954 | P(0x1604c), P(0x16050), P(0x16054), P(0x16058), P(0x1605c), |
955 | P(0x16060), P(0x16064), P(0x1606c), P(0x16080), P(0x16084), |
956 | P(0x16088), P(0x1608c), P(0x16090), P(0x16098), P(0x160a0), |
957 | P(0x160a4), P(0x160a8), P(0x160b4), P(0x160c0), P(0x160c4), |
958 | P(0x160c8), P(0x160cc), P(0x16100), P(0x16104), P(0x16108), |
959 | P(0x16144), P(0x16148), P(0x16280), P(0x16284), P(0x16288), |
960 | P(0x1628c), P(0x16290), P(0x16294), P(0x16380), P(0x16384), |
961 | P(0x16388), P(0x1638c), P(0x16390), P(0x16394), P(0x16398), |
962 | P(0x1639c), P(0x163a0), P(0x163a4), P(0x163a8), P(0x163ac), |
963 | P(0x163b0), P(0x163b4), P(0x163b8), P(0x163bc), P(0x163c0), |
964 | P(0x163c4), P(0x163c8), P(0x163cc), P(0x163d0), P(0x163d4), |
965 | P(0x16400), P(0x16404), P(0x16408), P(0x1640c), P(0x16440), |
966 | P(0x1644c), P(0x16450), P(0x16454), P(0x16458), P(0x1645c), |
967 | P(0x16460), P(0x16464), P(0x1646c), P(0x16500), P(0x16504), |
968 | P(0x16508), P(0x16544), P(0x16548), P(0x16780), P(0x16784), |
969 | P(0x16788), P(0x1678c), P(0x16790), P(0x16794), P(0x16798), |
970 | P(0x1679c), P(0x167a0), P(0x167a4), P(0x167a8), P(0x167ac), |
971 | P(0x167b0), P(0x167b4), P(0x167b8), P(0x167bc), P(0x167c0), |
972 | P(0x167c4), P(0x167c8), P(0x167cc), P(0x167d0), P(0x167d4), |
973 | P(0x16800), P(0x16804), P(0x16808), P(0x1680c), P(0x16840), |
974 | P(0x1684c), P(0x16850), P(0x16854), P(0x16858), P(0x1685c), |
975 | P(0x16860), P(0x16864), P(0x1686c), P(0x16900), P(0x16904), |
976 | P(0x16908), P(0x16944), P(0x16948), P(0x16b80), P(0x16b84), |
977 | P(0x16b88), P(0x16b8c), P(0x16b90), P(0x16b94), P(0x16b98), |
978 | P(0x16b9c), P(0x16ba0), P(0x16ba4), P(0x16ba8), P(0x16bac), |
979 | P(0x16bb0), P(0x16bb4), P(0x16bb8), P(0x16bbc), P(0x16bc0), |
980 | P(0x16bc4), P(0x16bc8), P(0x16bcc), P(0x16bd0), P(0x16bd4) |
981 | }; |
982 | |
983 | static const uint32_t ar9380_2_2_cm_vals[] = { |
984 | 0x00a0c1c9, 0x00000000, 0x00000000, 0x00000002, 0x000004c2, |
985 | 0x00000008, 0x00000000, 0x00020085, 0x00000005, 0x00000000, |
986 | 0x00000000, 0x00000008, 0x00000010, 0x00000000, 0x002ffc0f, |
987 | 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, |
988 | 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000100, |
989 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
990 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
991 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
992 | 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x000fc78f, |
993 | 0x0000000f, 0x00000000, 0x00000310, 0x00000020, 0x00000000, |
994 | 0x0000000f, 0x00000000, 0x02ff0000, 0x0e070605, 0x0000000d, |
995 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a800000, |
996 | 0x06900168, 0x13881c20, 0x01f40000, 0x00252500, 0x00a00000, |
997 | 0x00400000, 0x00000000, 0xffffffff, 0x0000ffff, 0x3f3f3f3f, |
998 | 0x00000000, 0x00000000, 0x00000000, 0x00020000, 0x00000000, |
999 | 0x00000052, 0x00000000, 0x00000000, 0x000007ff, 0x000000aa, |
1000 | 0x00003210, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1001 | 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, |
1002 | 0x00000000, 0x00000000, 0x33332210, 0x00000000, 0x00000000, |
1003 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1004 | 0x00100000, 0x0010f424, 0x00000800, 0x0001e848, 0x00000000, |
1005 | 0x00000000, 0x00000000, 0x40000000, 0x00080922, 0x9bc00010, |
1006 | 0xffffffff, 0x0000ffff, 0x00000000, 0x40000000, 0x003e4180, |
1007 | 0x00000004, 0x0000002c, 0x0000002c, 0x000000ff, 0x00000000, |
1008 | 0x00000000, 0x00000000, 0x00000140, 0x00000000, 0x0000010d, |
1009 | 0x00000000, 0x00000007, 0x00000302, 0x00000700, 0x00ff0000, |
1010 | 0x02400000, 0x000107ff, 0xaa48105b, 0x008f0000, 0x00000000, |
1011 | 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x000000ff, |
1012 | 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, |
1013 | 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000fa14, |
1014 | 0x000f0c00, 0x33332210, 0x33332210, 0x33332210, 0x33332210, |
1015 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000200, |
1016 | 0x000301ff, 0xafe68e30, 0xfd14e000, 0x9c0a9f6b, 0x04900000, |
1017 | 0x9280c00a, 0x00000000, 0x00020028, 0x6400a290, 0x0108ecff, |
1018 | 0x0d000600, 0x201fff00, 0x00001042, 0x00200400, 0x32840bbe, |
1019 | 0x004b6a8e, 0x00000820, 0x00000000, 0x00000000, 0x00000000, |
1020 | 0xff55ff55, 0x0320ff55, 0x00000000, 0x00000000, 0x00046384, |
1021 | 0x05b6b440, 0x00b6b440, 0xc080a333, 0x40206c10, 0x009c4060, |
1022 | 0x9883800a, 0x01834061, 0x00c0040b, 0x00000000, 0x0038230c, |
1023 | 0x990bb515, 0x0c6f0000, 0x06336f77, 0x6af6532f, 0x0cc80c00, |
1024 | 0x0d261820, 0x00001004, 0x00ff03f1, 0x00000000, 0x803e4788, |
1025 | 0x0001efb5, 0x40000014, 0x01193b93, 0x00000000, 0x00000000, |
1026 | 0x00000000, 0x10002310, 0x00000000, 0x0c000000, 0x00000001, |
1027 | 0x00000001, 0x00000000, 0x18c43433, 0x00000000, 0x00000000, |
1028 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1029 | 0x0000a000, 0x00000000, 0x00000000, 0x00000001, 0x00000444, |
1030 | 0x001f0e0f, 0x0075393f, 0xb79f6427, 0x00000000, 0xaaaaaaaa, |
1031 | 0x3c466478, 0x20202020, 0x22222220, 0x20200020, 0x20202020, |
1032 | 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, |
1033 | 0x20202020, 0x20202020, 0x20202020, 0x00000000, 0x00000246, |
1034 | 0x0cdbd380, 0x000f0f01, 0x8fa91f01, 0x00000000, 0x0e79e5c6, |
1035 | 0x00820820, 0x1ce739ce, 0x2d001dce, 0x1ce739ce, 0x000001ce, |
1036 | 0x1ce739ce, 0x000001ce, 0x1ce739ce, 0x1ce739ce, 0x00000000, |
1037 | 0x00001801, 0x00100000, 0x00000000, 0x00000000, 0x06000080, |
1038 | 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x3fad9d74, |
1039 | 0x0048060a, 0x00003c37, 0x03020100, 0x09080504, 0x0d0c0b0a, |
1040 | 0x13121110, 0x31301514, 0x35343332, 0x00000036, 0x00000838, |
1041 | 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, |
1042 | 0x00000004, 0x00000001, 0x004b6a8e, 0x00000820, 0x00000000, |
1043 | 0x00000000, 0x00000000, 0x00000080, 0x00000000, 0x00000000, |
1044 | 0x00000000, 0x00000000, 0x00000000, 0x0e79e5c0, 0x00820820, |
1045 | 0x00000000, 0x004b6a8e, 0x00000820, 0x00000000, 0x00000000, |
1046 | 0x00000000, 0x00000080, 0x00000000, 0x00000000, 0x00000000, |
1047 | 0x00000000, 0x00000000, 0x0e79e5c0, 0x00820820, 0x00000000, |
1048 | 0x36db6db6, 0x6db6db40, 0x73f00000, 0x00000000, 0x7f80fff8, |
1049 | 0x76d005b5, 0x556cf031, 0x13449440, 0x0c51c92c, 0x3db7fffc, |
1050 | 0xfffffffc, 0x000f0278, 0x6db60000, 0x00000000, 0x0e48048c, |
1051 | 0x54214514, 0x119f481e, 0x24926490, 0xd2888888, 0x0a108ffe, |
1052 | 0x812fc370, 0x423c8000, 0x92480080, 0x00adb6d0, 0x6db6db60, |
1053 | 0x6db6db6c, 0x01e6c000, 0x3fffbe01, 0xfff80000, 0x00080010, |
1054 | 0x02084080, 0x00000000, 0x058a0001, 0x3d840208, 0x05a20408, |
1055 | 0x00038c07, 0x00000004, 0x458aa14f, 0x00000000, 0x00000000, |
1056 | 0x00800700, 0x00800700, 0x00800700, 0x00000000, 0x00000000, |
1057 | 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, |
1058 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000a0, |
1059 | 0x000c0000, 0x14021402, 0x00001402, 0x00000000, 0x00000000, |
1060 | 0x36db6db6, 0x6db6db40, 0x73f00000, 0x00000000, 0x7f80fff8, |
1061 | 0x76d005b5, 0x556cf031, 0x13449440, 0x0c51c92c, 0x3db7fffc, |
1062 | 0xfffffffc, 0x000f0278, 0x6db60000, 0x3fffbe01, 0xfff80000, |
1063 | 0x00080010, 0x02084080, 0x00000000, 0x00000000, 0x00000000, |
1064 | 0x00800700, 0x00800700, 0x00800700, 0x00000000, 0x00000000, |
1065 | 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, |
1066 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000a0, |
1067 | 0x000c0000, 0x14021402, 0x00001402, 0x00000000, 0x00000000, |
1068 | 0x36db6db6, 0x6db6db40, 0x73f00000, 0x00000000, 0x7f80fff8, |
1069 | 0x76d005b5, 0x556cf031, 0x13449440, 0x0c51c92c, 0x3db7fffc, |
1070 | 0xfffffffc, 0x000f0278, 0x6db60000, 0x3fffbe01, 0xfff80000, |
1071 | 0x00080010, 0x02084080, 0x00000000, 0x00000000, 0x00000000, |
1072 | 0x00800700, 0x00800700, 0x00800700, 0x00000000, 0x00000000, |
1073 | 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, |
1074 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000a0, |
1075 | 0x000c0000, 0x14021402, 0x00001402, 0x00000000, 0x00000000 |
1076 | }; |
1077 | |
1078 | static const uint16_t ar9380_2_2_fast_clock_regs[] = { |
1079 | P(0x01030), P(0x01070), P(0x010b0), P(0x08014), P(0x0801c), |
1080 | P(0x08318), P(0x09e00), P(0x0a230), P(0x0a254) |
1081 | }; |
1082 | |
1083 | static const uint32_t ar9380_2_2_fast_clock_vals_5g20[] = { |
1084 | 0x00000268, 0x0000018c, 0x00000fd0, 0x044c044c, 0x148ec02b, |
1085 | 0x000044c0, 0x0372131c, 0x0000000b, 0x00000898 |
1086 | }; |
1087 | |
1088 | #ifndef IEEE80211_NO_HT |
1089 | static const uint32_t ar9380_2_2_fast_clock_vals_5g40[] = { |
1090 | 0x000004d0, 0x00000318, 0x00001fa0, 0x08980898, 0x148ec057, |
1091 | 0x00008980, 0x0372131c, 0x00000016, 0x00001130 |
1092 | }; |
1093 | #endif |
1094 | |
1095 | static const struct athn_ini ar9380_2_2_ini = { |
1096 | .nregs = __arraycount(ar9380_2_2_regs), |
1097 | .regs = ar9380_2_2_regs, |
1098 | .vals_5g20 = ar9380_2_2_vals_5g20, |
1099 | #ifndef IEEE80211_NO_HT |
1100 | .vals_5g40 = ar9380_2_2_vals_5g40, |
1101 | .vals_2g40 = ar9380_2_2_vals_2g40, |
1102 | #endif |
1103 | .vals_2g20 = ar9380_2_2_vals_2g20, |
1104 | .ncmregs = __arraycount(ar9380_2_2_cm_regs), |
1105 | .cmregs = ar9380_2_2_cm_regs, |
1106 | .cmvals = ar9380_2_2_cm_vals, |
1107 | .nfastregs = __arraycount(ar9380_2_2_fast_clock_regs), |
1108 | .fastregs = ar9380_2_2_fast_clock_regs, |
1109 | .fastvals_5g20 = ar9380_2_2_fast_clock_vals_5g20, |
1110 | #ifndef IEEE80211_NO_HT |
1111 | .fastvals_5g50 = ar9380_2_2_fast_clock_vals_5g40 |
1112 | #endif |
1113 | }; |
1114 | |
1115 | /* |
1116 | * AR9485 1.1 programming. |
1117 | */ |
1118 | |
1119 | static const uint16_t ar9485_1_1_regs[] = { |
1120 | P(0x01030), P(0x01070), P(0x010b0), P(0x08014), P(0x0801c), |
1121 | P(0x08120), P(0x081d0), P(0x08318), P(0x09810), P(0x09820), |
1122 | P(0x09824), P(0x09828), P(0x0982c), P(0x09830), P(0x09c00), |
1123 | P(0x09e00), P(0x09e04), P(0x09e0c), P(0x09e10), P(0x09e14), |
1124 | P(0x09e18), P(0x09e1c), P(0x09e20), P(0x09e2c), P(0x09e3c), |
1125 | P(0x09e44), P(0x09e48), P(0x09fc8), P(0x0a204), P(0x0a208), |
1126 | P(0x0a230), P(0x0a234), P(0x0a238), P(0x0a250), P(0x0a254), |
1127 | P(0x0a258), P(0x0a25c), P(0x0a260), P(0x0a264), P(0x0a280), |
1128 | P(0x0a284), P(0x0a288), P(0x0a28c), P(0x0a2c4), P(0x0a2d0), |
1129 | P(0x0a2d8), P(0x0a358), P(0x0be04), P(0x0be18), P(0x1609c), |
1130 | P(0x160ac), P(0x160b0), P(0x1610c), P(0x16140) |
1131 | }; |
1132 | |
1133 | static const uint32_t ar9485_1_1_vals_2g40[] = { |
1134 | 0x000002c0, 0x00000318, 0x00007c70, 0x10801600, 0x12e00057, |
1135 | 0x08f04810, 0x0000320a, 0x00006880, 0xd00a8005, 0x206a002e, |
1136 | 0x5ac640d0, 0x06903881, 0x05eea6d4, 0x0000059c, 0x00000044, |
1137 | 0x037216a0, 0x00182020, 0x6d4000e2, 0x7ec80d2e, 0x3139605e, |
1138 | 0x00000000, 0x00021f9c, 0x000003ce, 0x00000021, 0xcf946222, |
1139 | 0x02282324, 0x50302010, 0x0001a000, 0x01303fc4, 0x00000004, |
1140 | 0x00004016, 0x10000fff, 0xffb81018, 0x00000210, 0x00001130, |
1141 | 0x02020002, 0x01000e0e, 0x3a021501, 0x00000e0e, 0x0000000b, |
1142 | 0x000002a0, 0x00000000, 0x00000000, 0x00158d18, 0x00071982, |
1143 | 0xf999a83a, 0x00000000, 0x00802020, 0x00000000, 0x0b283f31, |
1144 | 0x24611800, 0x03284f3e, 0x00170000, 0x50804008 |
1145 | }; |
1146 | |
1147 | static const uint32_t ar9485_1_1_vals_2g20[] = { |
1148 | 0x00000160, 0x0000018c, 0x00003e38, 0x08400b00, 0x12e0002b, |
1149 | 0x08f04810, 0x0000320a, 0x00003440, 0xd00a8005, 0x206a002e, |
1150 | 0x5ac640d0, 0x06903881, 0x05eea6d4, 0x0000059c, 0x00000044, |
1151 | 0x037216a0, 0x00182020, 0x6c4000e2, 0x7ec80d2e, 0x31395d5e, |
1152 | 0x00000000, 0x00021f9c, 0x000003ce, 0x00000021, 0xcf946222, |
1153 | 0x02282324, 0x50302010, 0x0001a000, 0x01303fc0, 0x00000004, |
1154 | 0x0000400b, 0x10000fff, 0xffb81018, 0x00000108, 0x00000898, |
1155 | 0x02020002, 0x01000e0e, 0x3a021501, 0x00000e0e, 0x0000000b, |
1156 | 0x000002a0, 0x00000000, 0x00000000, 0x00158d18, 0x00071982, |
1157 | 0xf999a83a, 0x00000000, 0x00802020, 0x00000000, 0x0b283f31, |
1158 | 0x24611800, 0x03284f3e, 0x00170000, 0x50804008 |
1159 | }; |
1160 | |
1161 | static const uint16_t ar9485_1_1_cm_regs[] = { |
1162 | P(0x00008), P(0x00030), P(0x00034), P(0x00040), P(0x00044), |
1163 | P(0x00048), P(0x0004c), P(0x00050), P(0x01040), P(0x01044), |
1164 | P(0x01048), P(0x0104c), P(0x01050), P(0x01054), P(0x01058), |
1165 | P(0x0105c), P(0x01060), P(0x01064), P(0x010f0), P(0x01270), |
1166 | P(0x012b0), P(0x012f0), P(0x0143c), P(0x0147c), P(0x08000), |
1167 | P(0x08004), P(0x08008), P(0x0800c), P(0x08018), P(0x08020), |
1168 | P(0x08038), P(0x0803c), P(0x08040), P(0x08044), P(0x08048), |
1169 | P(0x0804c), P(0x08054), P(0x08058), P(0x0805c), P(0x08060), |
1170 | P(0x08064), P(0x08070), P(0x08074), P(0x08078), P(0x0809c), |
1171 | P(0x080a0), P(0x080a4), P(0x080a8), P(0x080ac), P(0x080b0), |
1172 | P(0x080b4), P(0x080b8), P(0x080bc), P(0x080c0), P(0x080c4), |
1173 | P(0x080c8), P(0x080cc), P(0x080d0), P(0x080d4), P(0x080d8), |
1174 | P(0x080dc), P(0x080e0), P(0x080e4), P(0x080e8), P(0x080ec), |
1175 | P(0x080f0), P(0x080f4), P(0x080fc), P(0x08100), P(0x08108), |
1176 | P(0x0810c), P(0x08110), P(0x08114), P(0x08118), P(0x0811c), |
1177 | P(0x08124), P(0x08128), P(0x0812c), P(0x08130), P(0x08134), |
1178 | P(0x08138), P(0x0813c), P(0x08144), P(0x08168), P(0x0816c), |
1179 | P(0x08170), P(0x08174), P(0x08178), P(0x0817c), P(0x081c0), |
1180 | P(0x081c4), P(0x081d4), P(0x081ec), P(0x081f0), P(0x081f4), |
1181 | P(0x081f8), P(0x081fc), P(0x08240), P(0x08244), P(0x08248), |
1182 | P(0x0824c), P(0x08250), P(0x08254), P(0x08258), P(0x0825c), |
1183 | P(0x08260), P(0x08264), P(0x08268), P(0x0826c), P(0x08270), |
1184 | P(0x08274), P(0x08278), P(0x0827c), P(0x08284), P(0x08288), |
1185 | P(0x0828c), P(0x08294), P(0x08298), P(0x0829c), P(0x08300), |
1186 | P(0x08314), P(0x0831c), P(0x08328), P(0x0832c), P(0x08330), |
1187 | P(0x08334), P(0x08338), P(0x0833c), P(0x08340), P(0x08344), |
1188 | P(0x08348), P(0x0835c), P(0x08360), P(0x08364), P(0x08368), |
1189 | P(0x08370), P(0x08374), P(0x08378), P(0x0837c), P(0x08380), |
1190 | P(0x08384), P(0x08390), P(0x08394), P(0x08398), P(0x0839c), |
1191 | P(0x083a0), P(0x083a4), P(0x083a8), P(0x083ac), P(0x083b0), |
1192 | P(0x083b4), P(0x083b8), P(0x083bc), P(0x083c0), P(0x083c4), |
1193 | P(0x083c8), P(0x083cc), P(0x083d0), P(0x0a580), P(0x0a584), |
1194 | P(0x0a588), P(0x0a58c), P(0x0a590), P(0x0a594), P(0x0a598), |
1195 | P(0x0a59c), P(0x0a5a0), P(0x0a5a4), P(0x0a5a8), P(0x0a5ac), |
1196 | P(0x0a5b0), P(0x0a5b4), P(0x0a5b8), P(0x0a5bc), P(0x09800), |
1197 | P(0x09804), P(0x09808), P(0x0980c), P(0x09814), P(0x09818), |
1198 | P(0x0981c), P(0x09834), P(0x09838), P(0x0983c), P(0x09880), |
1199 | P(0x09884), P(0x098a4), P(0x098b0), P(0x098d0), P(0x098d4), |
1200 | P(0x098dc), P(0x098f0), P(0x098f4), P(0x09c04), P(0x09c08), |
1201 | P(0x09c0c), P(0x09c10), P(0x09c14), P(0x09c18), P(0x09c1c), |
1202 | P(0x09d00), P(0x09d04), P(0x09d08), P(0x09d0c), P(0x09d10), |
1203 | P(0x09d14), P(0x09d18), P(0x09d1c), P(0x09e08), P(0x09e24), |
1204 | P(0x09e28), P(0x09e30), P(0x09e34), P(0x09e38), P(0x09e40), |
1205 | P(0x09e4c), P(0x09e50), P(0x09fc0), P(0x09fc4), P(0x09fcc), |
1206 | P(0x0a20c), P(0x0a210), P(0x0a220), P(0x0a224), P(0x0a228), |
1207 | P(0x0a23c), P(0x0a244), P(0x0a2a0), P(0x0a2c0), P(0x0a2c8), |
1208 | P(0x0a2cc), P(0x0a2d4), P(0x0a2dc), P(0x0a2e0), P(0x0a2e4), |
1209 | P(0x0a2e8), P(0x0a2ec), P(0x0a2f0), P(0x0a2f4), P(0x0a2f8), |
1210 | P(0x0a344), P(0x0a34c), P(0x0a350), P(0x0a364), P(0x0a370), |
1211 | P(0x0a390), P(0x0a394), P(0x0a398), P(0x0a39c), P(0x0a3a0), |
1212 | P(0x0a3a4), P(0x0a3a8), P(0x0a3ac), P(0x0a3c0), P(0x0a3c4), |
1213 | P(0x0a3c8), P(0x0a3cc), P(0x0a3d0), P(0x0a3d4), P(0x0a3d8), |
1214 | P(0x0a3dc), P(0x0a3e0), P(0x0a3e4), P(0x0a3e8), P(0x0a3ec), |
1215 | P(0x0a3f0), P(0x0a3f4), P(0x0a3f8), P(0x0a3fc), P(0x0a400), |
1216 | P(0x0a404), P(0x0a408), P(0x0a40c), P(0x0a414), P(0x0a418), |
1217 | P(0x0a41c), P(0x0a420), P(0x0a424), P(0x0a428), P(0x0a42c), |
1218 | P(0x0a430), P(0x0a434), P(0x0a438), P(0x0a43c), P(0x0a440), |
1219 | P(0x0a444), P(0x0a448), P(0x0a44c), P(0x0a450), P(0x0a5c4), |
1220 | P(0x0a5c8), P(0x0a5cc), P(0x0a760), P(0x0a764), P(0x0a768), |
1221 | P(0x0a76c), P(0x0a770), P(0x0a774), P(0x0a778), P(0x0a780), |
1222 | P(0x0a7c0), P(0x0a7c4), P(0x0a7c8), P(0x0a7cc), P(0x0a7d0), |
1223 | P(0x0a7d4), P(0x0a7dc), P(0x16000), P(0x16004), P(0x16008), |
1224 | P(0x1600c), P(0x16040), P(0x1604c), P(0x16050), P(0x16054), |
1225 | P(0x16080), P(0x16084), P(0x16088), P(0x1608c), P(0x16090), |
1226 | P(0x16098), P(0x160a0), P(0x160a4), P(0x160a8), P(0x160b4), |
1227 | P(0x160c0), P(0x160c4), P(0x160c8), P(0x160cc), P(0x160d0), |
1228 | P(0x16100), P(0x16104), P(0x16108), P(0x16144), P(0x16148), |
1229 | P(0x16240), P(0x16244), P(0x16248), P(0x1624c), P(0x16280), |
1230 | P(0x16284), P(0x16288), P(0x1628c), P(0x16290), P(0x16380), |
1231 | P(0x16384), P(0x16388), P(0x1638c), P(0x16390), P(0x16394), |
1232 | P(0x16398), P(0x1639c), P(0x163a0), P(0x163a4), P(0x163a8), |
1233 | P(0x163ac), P(0x163b0), P(0x163b4), P(0x163b8), P(0x163bc), |
1234 | P(0x163c0), P(0x163c4), P(0x163c8), P(0x163cc), P(0x163d0), |
1235 | P(0x163d4), P(0x16c40), P(0x16c44), P(0x04014), P(0x04090), |
1236 | P(0x040a4), P(0x07010), P(0x07020), P(0x07034), P(0x07038), |
1237 | P(0x07048) |
1238 | }; |
1239 | |
1240 | static const uint32_t ar9485_1_1_cm_vals[] = { |
1241 | 0x00000000, 0x00020085, 0x00000005, 0x00000000, 0x00000000, |
1242 | 0x00000008, 0x00000010, 0x00000000, 0x002ffc0f, 0x002ffc0f, |
1243 | 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, |
1244 | 0x002ffc0f, 0x002ffc0f, 0x002ffc0f, 0x00000100, 0x00000000, |
1245 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1246 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1247 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1248 | 0xffffffff, 0x00000000, 0x00000000, 0x000fc78f, 0x0000000f, |
1249 | 0x00000000, 0x00000310, 0x00000020, 0x00000000, 0x0000000f, |
1250 | 0x00000000, 0x02ff0000, 0x0e070605, 0x0000000d, 0x00000000, |
1251 | 0x00000000, 0x00000000, 0x00000000, 0x2a800000, 0x06900168, |
1252 | 0x13881c22, 0x01f40000, 0x00252500, 0x00a00000, 0x00400000, |
1253 | 0x00000000, 0xffffffff, 0x0000ffff, 0x3f3f3f3f, 0x00000000, |
1254 | 0x00000000, 0x00000000, 0x00020000, 0x00000000, 0x00000052, |
1255 | 0x00000000, 0x00000000, 0x000007ff, 0x000000aa, 0x00003210, |
1256 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1257 | 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, |
1258 | 0x18486200, 0x33332210, 0x00000000, 0x00020000, 0x00000000, |
1259 | 0x33332210, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1260 | 0x00000000, 0x00000000, 0x00100000, 0x0010f400, 0x00000800, |
1261 | 0x0001e800, 0x00000000, 0x00000000, 0x00000000, 0x40000000, |
1262 | 0x00080922, 0x9ca00010, 0xffffffff, 0x0000ffff, 0x00000000, |
1263 | 0x40000000, 0x003e4180, 0x00000004, 0x0000002c, 0x0000002c, |
1264 | 0x000000ff, 0x00000000, 0x00000000, 0x00000000, 0x00000140, |
1265 | 0x00000000, 0x0000010d, 0x00000000, 0x00000007, 0x00000302, |
1266 | 0x00000700, 0x00ff0000, 0x02400000, 0x000107ff, 0xa248105b, |
1267 | 0x008f0000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, |
1268 | 0x00000000, 0x000000ff, 0x00000000, 0x00000000, 0xffffffff, |
1269 | 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, |
1270 | 0x00000000, 0x0000fa14, 0x000f0c00, 0x33332210, 0x33332210, |
1271 | 0x33332210, 0x33332210, 0x00000000, 0x00000000, 0x00000000, |
1272 | 0x00000000, 0x00000200, 0x000301ff, 0x00000000, 0x00000000, |
1273 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1274 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1275 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xafe68e30, |
1276 | 0xfd14e000, 0x9c0a8f6b, 0x04800000, 0x9280c00a, 0x00000000, |
1277 | 0x00020028, 0x5f3ca3de, 0x0108ecff, 0x14750600, 0x201fff00, |
1278 | 0x00001042, 0x00200400, 0x52440bbe, 0x004b6a8e, 0x00000820, |
1279 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03200000, |
1280 | 0x00000000, 0x00000000, 0x00046384, 0x05b6b440, 0x00b6b440, |
1281 | 0xc080a333, 0x40206c10, 0x009c4060, 0x1883800a, 0x01834061, |
1282 | 0x00c00400, 0x00000000, 0x00000000, 0x0038233c, 0x9927b515, |
1283 | 0x12ef0200, 0x06336f77, 0x6af6532f, 0x0cc80c00, 0x0d261820, |
1284 | 0x00001004, 0x00ff03f1, 0x80be4788, 0x0001efb5, 0x40000014, |
1285 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10002310, |
1286 | 0x00000000, 0x0c000000, 0x00000001, 0x00000001, 0x00000000, |
1287 | 0x18c43433, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1288 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1289 | 0x00000000, 0x00000000, 0x0000a000, 0x00000000, 0x00000000, |
1290 | 0x00000001, 0x00000444, 0x001f0e0f, 0x0075393f, 0xb79f6427, |
1291 | 0x000000ff, 0x3b3b3b3b, 0x2f2f2f2f, 0x20202020, 0x22222220, |
1292 | 0x20200020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, |
1293 | 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, |
1294 | 0x00000000, 0x00000006, 0x0cdbd380, 0x000f0f01, 0x8fa91f01, |
1295 | 0x00000000, 0x0e79e5c6, 0x00820820, 0x1ce739cf, 0x2d0019ce, |
1296 | 0x1ce739ce, 0x000001ce, 0x1ce739ce, 0x000001ce, 0x1ce739ce, |
1297 | 0x1ce739ce, 0x00000000, 0x00001801, 0x00000000, 0x00000000, |
1298 | 0x00000000, 0x04000000, 0x00000001, 0x00010000, 0xbfad9d74, |
1299 | 0x0048060a, 0x00000637, 0x03020100, 0x09080504, 0x0d0c0b0a, |
1300 | 0x13121110, 0x31301514, 0x35343332, 0x00000036, 0x00000838, |
1301 | 0x00000000, 0xfffffffc, 0x00000000, 0x00000000, 0x00000000, |
1302 | 0x00000004, 0x00000000, 0x36db6db6, 0x6db6db40, 0x73800000, |
1303 | 0x00000000, 0x7f80fff8, 0x000f0278, 0x4db6db8c, 0x6db60000, |
1304 | 0x00080000, 0x0e48048c, 0x14214514, 0x119f081e, 0x24926490, |
1305 | 0xd28b3330, 0xc2108ffe, 0x812fc370, 0x423c8000, 0x92480040, |
1306 | 0x006db6db, 0x0186db60, 0x6db6db6c, 0x6de6fbe0, 0xf7dfcf3c, |
1307 | 0x04cb0001, 0xfff80015, 0x00080010, 0x01884080, 0x00008040, |
1308 | 0x08400000, 0x1bf90f00, 0x00000000, 0x00000000, 0x01000015, |
1309 | 0x00d30000, 0x00318000, 0x50000000, 0x4b96210f, 0x00000000, |
1310 | 0x00000000, 0x00800700, 0x00800700, 0x00800700, 0x00000000, |
1311 | 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, |
1312 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1313 | 0x000000a0, 0x000c0000, 0x14021402, 0x00001402, 0x00000000, |
1314 | 0x00000000, 0x13188278, 0x12000000, 0xba280400, 0x00aa10aa, |
1315 | 0x00a0c9c9, 0x00000022, 0x00000000, 0x00000002, 0x000004c2, |
1316 | 0x00000002 |
1317 | }; |
1318 | |
1319 | static const struct athn_ini ar9485_1_1_ini = { |
1320 | .nregs = __arraycount(ar9485_1_1_regs), |
1321 | .regs = ar9485_1_1_regs, |
1322 | .vals_5g20 = NULL, /* 2GHz only. */ |
1323 | #ifndef IEEE80211_NO_HT |
1324 | .vals_5g40 = NULL, /* 2GHz only. */ |
1325 | .vals_2g40 = ar9485_1_1_vals_2g40, |
1326 | #endif |
1327 | .vals_2g20 = ar9485_1_1_vals_2g20, |
1328 | .ncmregs = __arraycount(ar9485_1_1_cm_regs), |
1329 | .cmregs = ar9485_1_1_cm_regs, |
1330 | .cmvals = ar9485_1_1_cm_vals |
1331 | }; |
1332 | |
1333 | /* |
1334 | * AR9380 2.2 Tx gains. |
1335 | */ |
1336 | static const uint16_t ar9380_2_2_tx_gain_regs[] = { |
1337 | P(0x0a2dc), P(0x0a2e0), P(0x0a2e4), P(0x0a2e8), P(0x0a410), |
1338 | P(0x0a500), P(0x0a504), P(0x0a508), P(0x0a50c), P(0x0a510), |
1339 | P(0x0a514), P(0x0a518), P(0x0a51c), P(0x0a520), P(0x0a524), |
1340 | P(0x0a528), P(0x0a52c), P(0x0a530), P(0x0a534), P(0x0a538), |
1341 | P(0x0a53c), P(0x0a540), P(0x0a544), P(0x0a548), P(0x0a54c), |
1342 | P(0x0a550), P(0x0a554), P(0x0a558), P(0x0a55c), P(0x0a560), |
1343 | P(0x0a564), P(0x0a568), P(0x0a56c), P(0x0a570), P(0x0a574), |
1344 | P(0x0a578), P(0x0a57c), P(0x0a580), P(0x0a584), P(0x0a588), |
1345 | P(0x0a58c), P(0x0a590), P(0x0a594), P(0x0a598), P(0x0a59c), |
1346 | P(0x0a5a0), P(0x0a5a4), P(0x0a5a8), P(0x0a5ac), P(0x0a5b0), |
1347 | P(0x0a5b4), P(0x0a5b8), P(0x0a5bc), P(0x0a5c0), P(0x0a5c4), |
1348 | P(0x0a5c8), P(0x0a5cc), P(0x0a5d0), P(0x0a5d4), P(0x0a5d8), |
1349 | P(0x0a5dc), P(0x0a5e0), P(0x0a5e4), P(0x0a5e8), P(0x0a5ec), |
1350 | P(0x0a5f0), P(0x0a5f4), P(0x0a5f8), P(0x0a5fc), P(0x0a600), |
1351 | P(0x0a604), P(0x0a608), P(0x0a60c), P(0x0a610), P(0x0a614), |
1352 | P(0x0a618), P(0x0a61c), P(0x0a620), P(0x0a624), P(0x0a628), |
1353 | P(0x0a62c), P(0x0a630), P(0x0a634), P(0x0a638), P(0x0a63c), |
1354 | P(0x0b2dc), P(0x0b2e0), P(0x0b2e4), P(0x0b2e8), P(0x0c2dc), |
1355 | P(0x0c2e0), P(0x0c2e4), P(0x0c2e8), P(0x16044), P(0x16048), |
1356 | P(0x16068), P(0x16444), P(0x16448), P(0x16468), P(0x16844), |
1357 | P(0x16848), P(0x16868) |
1358 | }; |
1359 | |
1360 | static const uint32_t ar9380_2_2_tx_gain_vals_5g[] = { |
1361 | 0x00033800, 0x0003c000, 0x03fc0000, 0x00000000, 0x000050d9, |
1362 | 0x00000000, 0x06000003, 0x0a000020, 0x10000023, 0x16000220, |
1363 | 0x1c000223, 0x21002220, 0x27002223, 0x2b022220, 0x2f022222, |
1364 | 0x34022225, 0x3a02222a, 0x3e02222c, 0x4202242a, 0x4702244a, |
1365 | 0x4b02244c, 0x4e02246c, 0x52022470, 0x55022490, 0x59022492, |
1366 | 0x5d022692, 0x61022892, 0x65024890, 0x69024892, 0x6e024c92, |
1367 | 0x74026e92, 0x74026e92, 0x74026e92, 0x74026e92, 0x74026e92, |
1368 | 0x74026e92, 0x74026e92, 0x00800000, 0x06800003, 0x0a800020, |
1369 | 0x10800023, 0x16800220, 0x1c800223, 0x21802220, 0x27802223, |
1370 | 0x2b822220, 0x2f822222, 0x34822225, 0x3a82222a, 0x3e82222c, |
1371 | 0x4282242a, 0x4782244a, 0x4b82244c, 0x4e82246c, 0x52822470, |
1372 | 0x55822490, 0x59822492, 0x5d822692, 0x61822892, 0x65824890, |
1373 | 0x69824892, 0x6e824c92, 0x74826e92, 0x74826e92, 0x74826e92, |
1374 | 0x74826e92, 0x74826e92, 0x74826e92, 0x74826e92, 0x00000000, |
1375 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02004000, |
1376 | 0x02004801, 0x02808a02, 0x0380ce03, 0x04411104, 0x04411104, |
1377 | 0x04411104, 0x04411104, 0x04411104, 0x04411104, 0x04411104, |
1378 | 0x00033800, 0x0003c000, 0x03fc0000, 0x00000000, 0x00033800, |
1379 | 0x0003c000, 0x03fc0000, 0x00000000, 0x012492d4, 0x62480001, |
1380 | 0x6db6db6c, 0x012492d4, 0x62480001, 0x6db6db6c, 0x012492d4, |
1381 | 0x62480001, 0x6db6db6c |
1382 | }; |
1383 | |
1384 | static const uint32_t ar9380_2_2_tx_gain_vals_2g[] = { |
1385 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x000050d9, |
1386 | 0x00000000, 0x04000002, 0x08000004, 0x0b000200, 0x0f000202, |
1387 | 0x12000400, 0x16000402, 0x19000404, 0x1c000603, 0x21000a02, |
1388 | 0x25000a04, 0x28000a20, 0x2c000e20, 0x30000e22, 0x34000e24, |
1389 | 0x38001640, 0x3c001660, 0x3f001861, 0x43001a81, 0x47001a83, |
1390 | 0x4a001c84, 0x4e001ce3, 0x52001ce5, 0x56001ce9, 0x5a001ceb, |
1391 | 0x5d001eec, 0x5d001eec, 0x5d001eec, 0x5d001eec, 0x5d001eec, |
1392 | 0x5d001eec, 0x5d001eec, 0x00800000, 0x04800002, 0x08800004, |
1393 | 0x0b800200, 0x0f800202, 0x12800400, 0x16800402, 0x19800404, |
1394 | 0x1c800603, 0x21800a02, 0x25800a04, 0x28800a20, 0x2c800e20, |
1395 | 0x30800e22, 0x34800e24, 0x38801640, 0x3c801660, 0x3f801861, |
1396 | 0x43801a81, 0x47801a83, 0x4a801c84, 0x4e801ce3, 0x52801ce5, |
1397 | 0x56801ce9, 0x5a801ceb, 0x5d801eec, 0x5d801eec, 0x5d801eec, |
1398 | 0x5d801eec, 0x5d801eec, 0x5d801eec, 0x5d801eec, 0x00000000, |
1399 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01404000, |
1400 | 0x01404501, 0x02008501, 0x0280ca03, 0x03010c04, 0x04014c04, |
1401 | 0x04015005, 0x04015005, 0x04015005, 0x04015005, 0x04015005, |
1402 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x00637800, |
1403 | 0x03838000, 0x03fc0000, 0x00000000, 0x012492d4, 0x62480001, |
1404 | 0x6db6db6c, 0x012492d4, 0x62480001, 0x6db6db6c, 0x012492d4, |
1405 | 0x62480001, 0x6db6db6c |
1406 | }; |
1407 | |
1408 | static const struct athn_gain ar9380_2_2_tx_gain = { |
1409 | __arraycount(ar9380_2_2_tx_gain_regs), |
1410 | ar9380_2_2_tx_gain_regs, |
1411 | ar9380_2_2_tx_gain_vals_5g, |
1412 | ar9380_2_2_tx_gain_vals_2g |
1413 | }; |
1414 | |
1415 | /* |
1416 | * AR9380 2.2 high ob/db Tx gains. |
1417 | */ |
1418 | static const uint32_t ar9380_2_2_tx_gain_high_ob_db_vals_5g[] = { |
1419 | 0x01feee00, 0x0000f000, 0x01ff0000, 0x00000000, 0x000050d8, |
1420 | 0x00002220, 0x04002222, 0x09002421, 0x0d002621, 0x13004620, |
1421 | 0x19004a20, 0x1d004e20, 0x21005420, 0x26005e20, 0x2b005e40, |
1422 | 0x2f005e42, 0x33005e44, 0x38005e65, 0x3c005e69, 0x40005e6b, |
1423 | 0x44005e6d, 0x49005e72, 0x4e005eb2, 0x53005f12, 0x59025eb2, |
1424 | 0x5e025f12, 0x61027f12, 0x6702bf12, 0x6b02bf14, 0x6f02bf16, |
1425 | 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, |
1426 | 0x6f02bf16, 0x6f02bf16, 0x00802220, 0x04802222, 0x09802421, |
1427 | 0x0d802621, 0x13804620, 0x19804a20, 0x1d804e20, 0x21805420, |
1428 | 0x26805e20, 0x2b805e40, 0x2f805e42, 0x33805e44, 0x38805e65, |
1429 | 0x3c805e69, 0x40805e6b, 0x44805e6d, 0x49805e72, 0x4e805eb2, |
1430 | 0x53805f12, 0x59825eb2, 0x5e825f12, 0x61827f12, 0x6782bf12, |
1431 | 0x6b82bf14, 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, |
1432 | 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, 0x00000000, |
1433 | 0x00000000, 0x00000000, 0x00000000, 0x00804000, 0x00804201, |
1434 | 0x0280c802, 0x0280ca03, 0x04c15104, 0x04c15305, 0x04c15305, |
1435 | 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, |
1436 | 0x01feee00, 0x0000f000, 0x01ff0000, 0x00000000, 0x01feee00, |
1437 | 0x0000f000, 0x01ff0000, 0x00000000, 0x056db2e4, 0x8e480001, |
1438 | 0x6db6db6c, 0x056db2e4, 0x8e480001, 0x6db6db6c, 0x056db2e4, |
1439 | 0x8e480001, 0x6db6db6c |
1440 | }; |
1441 | |
1442 | static const uint32_t ar9380_2_2_tx_gain_high_ob_db_vals_2g[] = { |
1443 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x000050d9, |
1444 | 0x00000000, 0x04000002, 0x08000004, 0x0b000200, 0x0f000202, |
1445 | 0x11000400, 0x15000402, 0x19000404, 0x1b000603, 0x1f000a02, |
1446 | 0x23000a04, 0x26000a20, 0x2a000e20, 0x2e000e22, 0x31000e24, |
1447 | 0x34001640, 0x38001660, 0x3b001861, 0x3e001a81, 0x42001a83, |
1448 | 0x44001c84, 0x48001ce3, 0x4c001ce5, 0x50001ce9, 0x54001ceb, |
1449 | 0x56001eec, 0x56001eec, 0x56001eec, 0x56001eec, 0x56001eec, |
1450 | 0x56001eec, 0x56001eec, 0x00800000, 0x04800002, 0x08800004, |
1451 | 0x0b800200, 0x0f800202, 0x11800400, 0x15800402, 0x19800404, |
1452 | 0x1b800603, 0x1f800a02, 0x23800a04, 0x26800a20, 0x2a800e20, |
1453 | 0x2e800e22, 0x31800e24, 0x34801640, 0x38801660, 0x3b801861, |
1454 | 0x3e801a81, 0x42801a83, 0x44801c84, 0x48801ce3, 0x4c801ce5, |
1455 | 0x50801ce9, 0x54801ceb, 0x56801eec, 0x56801eec, 0x56801eec, |
1456 | 0x56801eec, 0x56801eec, 0x56801eec, 0x56801eec, 0x00000000, |
1457 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01404000, |
1458 | 0x01404501, 0x02008501, 0x0280ca03, 0x03010c04, 0x04014c04, |
1459 | 0x04015005, 0x04015005, 0x04015005, 0x04015005, 0x04015005, |
1460 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x00637800, |
1461 | 0x03838000, 0x03fc0000, 0x00000000, 0x056db2e4, 0x8e480001, |
1462 | 0x6db6db6c, 0x056db2e4, 0x8e480001, 0x6db6db6c, 0x056db2e4, |
1463 | 0x8e480001, 0x6db6db6c |
1464 | }; |
1465 | |
1466 | static const struct athn_gain ar9380_2_2_tx_gain_high_ob_db = { |
1467 | __arraycount(ar9380_2_2_tx_gain_regs), |
1468 | ar9380_2_2_tx_gain_regs, |
1469 | ar9380_2_2_tx_gain_high_ob_db_vals_5g, |
1470 | ar9380_2_2_tx_gain_high_ob_db_vals_2g |
1471 | }; |
1472 | |
1473 | /* |
1474 | * AR9380 2.2 low ob/db Tx gains. |
1475 | */ |
1476 | static const uint32_t ar9380_2_2_tx_gain_low_ob_db_vals_5g[] = { |
1477 | 0x0380c7fc, 0x0000f800, 0x03ff0000, 0x00000000, 0x000050d9, |
1478 | 0x00000000, 0x06000003, 0x0a000020, 0x10000023, 0x16000220, |
1479 | 0x1c000223, 0x21002220, 0x27002223, 0x2b022220, 0x2f022222, |
1480 | 0x34022225, 0x3a02222a, 0x3e02222c, 0x4202242a, 0x4702244a, |
1481 | 0x4b02244c, 0x4e02246c, 0x5302266c, 0x5702286c, 0x5c02486b, |
1482 | 0x61024a6c, 0x66026a6c, 0x6b026e6c, 0x7002708c, 0x7302b08a, |
1483 | 0x7702b08c, 0x7702b08c, 0x7702b08c, 0x7702b08c, 0x7702b08c, |
1484 | 0x7702b08c, 0x7702b08c, 0x00800000, 0x06800003, 0x0a800020, |
1485 | 0x10800023, 0x16800220, 0x1c800223, 0x21802220, 0x27802223, |
1486 | 0x2b822220, 0x2f822222, 0x34822225, 0x3a82222a, 0x3e82222c, |
1487 | 0x4282242a, 0x4782244a, 0x4b82244c, 0x4e82246c, 0x5382266c, |
1488 | 0x5782286c, 0x5c82486b, 0x61824a6c, 0x66826a6c, 0x6b826e6c, |
1489 | 0x7082708c, 0x7382b08a, 0x7782b08c, 0x7782b08c, 0x7782b08c, |
1490 | 0x7782b08c, 0x7782b08c, 0x7782b08c, 0x7782b08c, 0x00000000, |
1491 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01404000, |
1492 | 0x01404501, 0x02008802, 0x0300cc03, 0x0300cc03, 0x0300cc03, |
1493 | 0x03810c03, 0x03810e04, 0x03810e04, 0x03810e04, 0x03810e04, |
1494 | 0x0380c7fc, 0x0000f800, 0x03ff0000, 0x00000000, 0x0380c7fc, |
1495 | 0x0000f800, 0x03ff0000, 0x00000000, 0x012492d4, 0x66480001, |
1496 | 0x6db6db6c, 0x012492d4, 0x66480001, 0x6db6db6c, 0x012492d4, |
1497 | 0x66480001, 0x6db6db6c |
1498 | }; |
1499 | |
1500 | static const uint32_t ar9380_2_2_tx_gain_low_ob_db_vals_2g[] = { |
1501 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x000050d9, |
1502 | 0x00000000, 0x04000002, 0x08000004, 0x0b000200, 0x0f000202, |
1503 | 0x12000400, 0x16000402, 0x19000404, 0x1c000603, 0x21000a02, |
1504 | 0x25000a04, 0x28000a20, 0x2c000e20, 0x30000e22, 0x34000e24, |
1505 | 0x38001640, 0x3c001660, 0x3f001861, 0x43001a81, 0x47001a83, |
1506 | 0x4a001c84, 0x4e001ce3, 0x52001ce5, 0x56001ce9, 0x5a001ceb, |
1507 | 0x5d001eec, 0x5d001eec, 0x5d001eec, 0x5d001eec, 0x5d001eec, |
1508 | 0x5d001eec, 0x5d001eec, 0x00800000, 0x04800002, 0x08800004, |
1509 | 0x0b800200, 0x0f800202, 0x12800400, 0x16800402, 0x19800404, |
1510 | 0x1c800603, 0x21800a02, 0x25800a04, 0x28800a20, 0x2c800e20, |
1511 | 0x30800e22, 0x34800e24, 0x38801640, 0x3c801660, 0x3f801861, |
1512 | 0x43801a81, 0x47801a83, 0x4a801c84, 0x4e801ce3, 0x52801ce5, |
1513 | 0x56801ce9, 0x5a801ceb, 0x5d801eec, 0x5d801eec, 0x5d801eec, |
1514 | 0x5d801eec, 0x5d801eec, 0x5d801eec, 0x5d801eec, 0x00000000, |
1515 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01404000, |
1516 | 0x01404501, 0x02008501, 0x0280ca03, 0x03010c04, 0x04014c04, |
1517 | 0x04015005, 0x04015005, 0x04015005, 0x04015005, 0x04015005, |
1518 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x00637800, |
1519 | 0x03838000, 0x03fc0000, 0x00000000, 0x012492d4, 0x66480001, |
1520 | 0x6db6db6c, 0x012492d4, 0x66480001, 0x6db6db6c, 0x012492d4, |
1521 | 0x66480001, 0x6db6db6c |
1522 | }; |
1523 | |
1524 | static const struct athn_gain ar9380_2_2_tx_gain_low_ob_db = { |
1525 | __arraycount(ar9380_2_2_tx_gain_regs), |
1526 | ar9380_2_2_tx_gain_regs, |
1527 | ar9380_2_2_tx_gain_low_ob_db_vals_5g, |
1528 | ar9380_2_2_tx_gain_low_ob_db_vals_2g |
1529 | }; |
1530 | |
1531 | /* |
1532 | * AR9380 2.2 high power Tx gains. |
1533 | */ |
1534 | static const uint32_t ar9380_2_2_tx_gain_high_power_vals_5g[] = { |
1535 | 0x0380c7fc, 0x0000f800, 0x03ff0000, 0x00000000, 0x000050d8, |
1536 | 0x00002220, 0x04002222, 0x09002421, 0x0d002621, 0x13004620, |
1537 | 0x19004a20, 0x1d004e20, 0x21005420, 0x26005e20, 0x2b005e40, |
1538 | 0x2f005e42, 0x33005e44, 0x38005e65, 0x3c005e69, 0x40005e6b, |
1539 | 0x44005e6d, 0x49005e72, 0x4e005eb2, 0x53005f12, 0x59025eb2, |
1540 | 0x5e025f12, 0x61027f12, 0x6702bf12, 0x6b02bf14, 0x6f02bf16, |
1541 | 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, |
1542 | 0x6f02bf16, 0x6f02bf16, 0x00802220, 0x04802222, 0x09802421, |
1543 | 0x0d802621, 0x13804620, 0x19804a20, 0x1d804e20, 0x21805420, |
1544 | 0x26805e20, 0x2b805e40, 0x2f805e42, 0x33805e44, 0x38805e65, |
1545 | 0x3c805e69, 0x40805e6b, 0x44805e6d, 0x49805e72, 0x4e805eb2, |
1546 | 0x53805f12, 0x59825eb2, 0x5e825f12, 0x61827f12, 0x6782bf12, |
1547 | 0x6b82bf14, 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, |
1548 | 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, 0x6f82bf16, 0x00000000, |
1549 | 0x00000000, 0x00000000, 0x00000000, 0x00804000, 0x00804201, |
1550 | 0x0280c802, 0x0280ca03, 0x04c15104, 0x04c15305, 0x04c15305, |
1551 | 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, |
1552 | 0x0380c7fc, 0x0000f800, 0x03ff0000, 0x00000000, 0x0380c7fc, |
1553 | 0x0000f800, 0x03ff0000, 0x00000000, 0x056db2e6, 0xae480001, |
1554 | 0x6eb6db6c, 0x056db2e6, 0xae480001, 0x6eb6db6c, 0x056db2e6, |
1555 | 0xae480001, 0x6eb6db6c |
1556 | }; |
1557 | |
1558 | static const uint32_t ar9380_2_2_tx_gain_high_power_vals_2g[] = { |
1559 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x000050d9, |
1560 | 0x00000000, 0x04000002, 0x08000004, 0x0b000200, 0x0f000202, |
1561 | 0x11000400, 0x15000402, 0x19000404, 0x1b000603, 0x1f000a02, |
1562 | 0x23000a04, 0x26000a20, 0x2a000e20, 0x2e000e22, 0x31000e24, |
1563 | 0x34001640, 0x38001660, 0x3b001861, 0x3e001a81, 0x42001a83, |
1564 | 0x44001c84, 0x48001ce3, 0x4c001ce5, 0x50001ce9, 0x54001ceb, |
1565 | 0x56001eec, 0x56001eec, 0x56001eec, 0x56001eec, 0x56001eec, |
1566 | 0x56001eec, 0x56001eec, 0x00800000, 0x04800002, 0x08800004, |
1567 | 0x0b800200, 0x0f800202, 0x11800400, 0x15800402, 0x19800404, |
1568 | 0x1b800603, 0x1f800a02, 0x23800a04, 0x26800a20, 0x2a800e20, |
1569 | 0x2e800e22, 0x31800e24, 0x34801640, 0x38801660, 0x3b801861, |
1570 | 0x3e801a81, 0x42801a83, 0x44801c84, 0x48801ce3, 0x4c801ce5, |
1571 | 0x50801ce9, 0x54801ceb, 0x56801eec, 0x56801eec, 0x56801eec, |
1572 | 0x56801eec, 0x56801eec, 0x56801eec, 0x56801eec, 0x00000000, |
1573 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01404000, |
1574 | 0x01404501, 0x02008501, 0x0280ca03, 0x03010c04, 0x04014c04, |
1575 | 0x04015005, 0x04015005, 0x04015005, 0x04015005, 0x04015005, |
1576 | 0x00637800, 0x03838000, 0x03fc0000, 0x00000000, 0x00637800, |
1577 | 0x03838000, 0x03fc0000, 0x00000000, 0x056db2e6, 0xae480001, |
1578 | 0x6eb6db6c, 0x056db2e6, 0xae480001, 0x6eb6db6c, 0x056db2e6, |
1579 | 0xae480001, 0x6eb6db6c |
1580 | }; |
1581 | |
1582 | static const struct athn_gain ar9380_2_2_tx_gain_high_power = { |
1583 | __arraycount(ar9380_2_2_tx_gain_regs), |
1584 | ar9380_2_2_tx_gain_regs, |
1585 | ar9380_2_2_tx_gain_high_power_vals_5g, |
1586 | ar9380_2_2_tx_gain_high_power_vals_2g |
1587 | }; |
1588 | |
1589 | /* |
1590 | * AR9485 1.1 Tx gains. |
1591 | */ |
1592 | static const uint16_t ar9485_1_1_tx_gain_regs[] = { |
1593 | P(0x098bc), P(0x0a410), P(0x0a458), P(0x0a500), P(0x0a504), |
1594 | P(0x0a508), P(0x0a50c), P(0x0a510), P(0x0a514), P(0x0a518), |
1595 | P(0x0a51c), P(0x0a520), P(0x0a524), P(0x0a528), P(0x0a52c), |
1596 | P(0x0a530), P(0x0a534), P(0x0a538), P(0x0a53c), P(0x0a540), |
1597 | P(0x0a544), P(0x0a548), P(0x0a54c), P(0x0a550), P(0x0a554), |
1598 | P(0x0a558), P(0x0a55c), P(0x0a560), P(0x0a564), P(0x0a568), |
1599 | P(0x0a56c), P(0x0a570), P(0x0a574), P(0x0a578), P(0x0a57c), |
1600 | P(0x0b500), P(0x0b504), P(0x0b508), P(0x0b50c), P(0x0b510), |
1601 | P(0x0b514), P(0x0b518), P(0x0b51c), P(0x0b520), P(0x0b524), |
1602 | P(0x0b528), P(0x0b52c), P(0x0b530), P(0x0b534), P(0x0b538), |
1603 | P(0x0b53c), P(0x0b540), P(0x0b544), P(0x0b548), P(0x0b54c), |
1604 | P(0x0b550), P(0x0b554), P(0x0b558), P(0x0b55c), P(0x0b560), |
1605 | P(0x0b564), P(0x0b568), P(0x0b56c), P(0x0b570), P(0x0b574), |
1606 | P(0x0b578), P(0x0b57c), P(0x16044), P(0x16048), |
1607 | }; |
1608 | |
1609 | static const uint32_t ar9485_1_1_tx_gain_vals_2g[] = { |
1610 | 0x00000002, 0x000050d8, 0x00000000, 0x00000000, 0x04000002, |
1611 | 0x08000004, 0x0d000200, 0x11000202, 0x15000400, 0x19000402, |
1612 | 0x1d000404, 0x21000603, 0x25000605, 0x2a000a03, 0x2c000a04, |
1613 | 0x34000e20, 0x35000e21, 0x43000e62, 0x45000e63, 0x49000e65, |
1614 | 0x4b000e66, 0x4d001645, 0x51001865, 0x55001a86, 0x57001ce9, |
1615 | 0x5a001ceb, 0x5e001eeb, 0x5e001eeb, 0x5e001eeb, 0x5e001eeb, |
1616 | 0x5e001eeb, 0x5e001eeb, 0x5e001eeb, 0x5e001eeb, 0x5e001eeb, |
1617 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1618 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1619 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1620 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1621 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1622 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1623 | 0x00000000, 0x00000000, 0x05d6b2db, 0x6c924260 |
1624 | }; |
1625 | |
1626 | static const struct athn_gain ar9485_1_1_tx_gain = { |
1627 | __arraycount(ar9485_1_1_tx_gain_regs), |
1628 | ar9485_1_1_tx_gain_regs, |
1629 | NULL, /* 2GHz only. */ |
1630 | ar9485_1_1_tx_gain_vals_2g |
1631 | }; |
1632 | |
1633 | /* |
1634 | * AR9380 2.2 Rx gains. |
1635 | */ |
1636 | static const uint16_t ar9380_2_2_rx_gain_regs[] = { |
1637 | P(0x0a000), P(0x0a004), P(0x0a008), P(0x0a00c), P(0x0a010), |
1638 | P(0x0a014), P(0x0a018), P(0x0a01c), P(0x0a020), P(0x0a024), |
1639 | P(0x0a028), P(0x0a02c), P(0x0a030), P(0x0a034), P(0x0a038), |
1640 | P(0x0a03c), P(0x0a040), P(0x0a044), P(0x0a048), P(0x0a04c), |
1641 | P(0x0a050), P(0x0a054), P(0x0a058), P(0x0a05c), P(0x0a060), |
1642 | P(0x0a064), P(0x0a068), P(0x0a06c), P(0x0a070), P(0x0a074), |
1643 | P(0x0a078), P(0x0a07c), P(0x0a080), P(0x0a084), P(0x0a088), |
1644 | P(0x0a08c), P(0x0a090), P(0x0a094), P(0x0a098), P(0x0a09c), |
1645 | P(0x0a0a0), P(0x0a0a4), P(0x0a0a8), P(0x0a0ac), P(0x0a0b0), |
1646 | P(0x0a0b4), P(0x0a0b8), P(0x0a0bc), P(0x0a0c0), P(0x0a0c4), |
1647 | P(0x0a0c8), P(0x0a0cc), P(0x0a0d0), P(0x0a0d4), P(0x0a0d8), |
1648 | P(0x0a0dc), P(0x0a0e0), P(0x0a0e4), P(0x0a0e8), P(0x0a0ec), |
1649 | P(0x0a0f0), P(0x0a0f4), P(0x0a0f8), P(0x0a0fc), P(0x0a100), |
1650 | P(0x0a104), P(0x0a108), P(0x0a10c), P(0x0a110), P(0x0a114), |
1651 | P(0x0a118), P(0x0a11c), P(0x0a120), P(0x0a124), P(0x0a128), |
1652 | P(0x0a12c), P(0x0a130), P(0x0a134), P(0x0a138), P(0x0a13c), |
1653 | P(0x0a140), P(0x0a144), P(0x0a148), P(0x0a14c), P(0x0a150), |
1654 | P(0x0a154), P(0x0a158), P(0x0a15c), P(0x0a160), P(0x0a164), |
1655 | P(0x0a168), P(0x0a16c), P(0x0a170), P(0x0a174), P(0x0a178), |
1656 | P(0x0a17c), P(0x0a180), P(0x0a184), P(0x0a188), P(0x0a18c), |
1657 | P(0x0a190), P(0x0a194), P(0x0a198), P(0x0a19c), P(0x0a1a0), |
1658 | P(0x0a1a4), P(0x0a1a8), P(0x0a1ac), P(0x0a1b0), P(0x0a1b4), |
1659 | P(0x0a1b8), P(0x0a1bc), P(0x0a1c0), P(0x0a1c4), P(0x0a1c8), |
1660 | P(0x0a1cc), P(0x0a1d0), P(0x0a1d4), P(0x0a1d8), P(0x0a1dc), |
1661 | P(0x0a1e0), P(0x0a1e4), P(0x0a1e8), P(0x0a1ec), P(0x0a1f0), |
1662 | P(0x0a1f4), P(0x0a1f8), P(0x0a1fc), P(0x0b000), P(0x0b004), |
1663 | P(0x0b008), P(0x0b00c), P(0x0b010), P(0x0b014), P(0x0b018), |
1664 | P(0x0b01c), P(0x0b020), P(0x0b024), P(0x0b028), P(0x0b02c), |
1665 | P(0x0b030), P(0x0b034), P(0x0b038), P(0x0b03c), P(0x0b040), |
1666 | P(0x0b044), P(0x0b048), P(0x0b04c), P(0x0b050), P(0x0b054), |
1667 | P(0x0b058), P(0x0b05c), P(0x0b060), P(0x0b064), P(0x0b068), |
1668 | P(0x0b06c), P(0x0b070), P(0x0b074), P(0x0b078), P(0x0b07c), |
1669 | P(0x0b080), P(0x0b084), P(0x0b088), P(0x0b08c), P(0x0b090), |
1670 | P(0x0b094), P(0x0b098), P(0x0b09c), P(0x0b0a0), P(0x0b0a4), |
1671 | P(0x0b0a8), P(0x0b0ac), P(0x0b0b0), P(0x0b0b4), P(0x0b0b8), |
1672 | P(0x0b0bc), P(0x0b0c0), P(0x0b0c4), P(0x0b0c8), P(0x0b0cc), |
1673 | P(0x0b0d0), P(0x0b0d4), P(0x0b0d8), P(0x0b0dc), P(0x0b0e0), |
1674 | P(0x0b0e4), P(0x0b0e8), P(0x0b0ec), P(0x0b0f0), P(0x0b0f4), |
1675 | P(0x0b0f8), P(0x0b0fc), P(0x0b100), P(0x0b104), P(0x0b108), |
1676 | P(0x0b10c), P(0x0b110), P(0x0b114), P(0x0b118), P(0x0b11c), |
1677 | P(0x0b120), P(0x0b124), P(0x0b128), P(0x0b12c), P(0x0b130), |
1678 | P(0x0b134), P(0x0b138), P(0x0b13c), P(0x0b140), P(0x0b144), |
1679 | P(0x0b148), P(0x0b14c), P(0x0b150), P(0x0b154), P(0x0b158), |
1680 | P(0x0b15c), P(0x0b160), P(0x0b164), P(0x0b168), P(0x0b16c), |
1681 | P(0x0b170), P(0x0b174), P(0x0b178), P(0x0b17c), P(0x0b180), |
1682 | P(0x0b184), P(0x0b188), P(0x0b18c), P(0x0b190), P(0x0b194), |
1683 | P(0x0b198), P(0x0b19c), P(0x0b1a0), P(0x0b1a4), P(0x0b1a8), |
1684 | P(0x0b1ac), P(0x0b1b0), P(0x0b1b4), P(0x0b1b8), P(0x0b1bc), |
1685 | P(0x0b1c0), P(0x0b1c4), P(0x0b1c8), P(0x0b1cc), P(0x0b1d0), |
1686 | P(0x0b1d4), P(0x0b1d8), P(0x0b1dc), P(0x0b1e0), P(0x0b1e4), |
1687 | P(0x0b1e8), P(0x0b1ec), P(0x0b1f0), P(0x0b1f4), P(0x0b1f8), |
1688 | P(0x0b1fc) |
1689 | }; |
1690 | |
1691 | static const uint32_t ar9380_2_2_rx_gain_vals[] = { |
1692 | 0x00010000, 0x00030002, 0x00050004, 0x00810080, 0x00830082, |
1693 | 0x01810180, 0x01830182, 0x01850184, 0x01890188, 0x018b018a, |
1694 | 0x018d018c, 0x01910190, 0x01930192, 0x01950194, 0x038a0196, |
1695 | 0x038c038b, 0x0390038d, 0x03920391, 0x03940393, 0x03960395, |
1696 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1697 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1698 | 0x00000000, 0x00000000, 0x22222229, 0x1d1d1d1d, 0x1d1d1d1d, |
1699 | 0x1d1d1d1d, 0x171d1d1d, 0x11111717, 0x00030311, 0x00000000, |
1700 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1701 | 0x00000000, 0x00000000, 0x00000000, 0x001f0000, 0x01000101, |
1702 | 0x011e011f, 0x011c011d, 0x02030204, 0x02010202, 0x021f0200, |
1703 | 0x0302021e, 0x03000301, 0x031e031f, 0x0402031d, 0x04000401, |
1704 | 0x041e041f, 0x0502041d, 0x05000501, 0x051e051f, 0x06010602, |
1705 | 0x061f0600, 0x061d061e, 0x07020703, 0x07000701, 0x00000000, |
1706 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1707 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1708 | 0x001f0000, 0x01000101, 0x011e011f, 0x011c011d, 0x02030204, |
1709 | 0x02010202, 0x021f0200, 0x0302021e, 0x03000301, 0x031e031f, |
1710 | 0x0402031d, 0x04000401, 0x041e041f, 0x0502041d, 0x05000501, |
1711 | 0x051e051f, 0x06010602, 0x061f0600, 0x061d061e, 0x07020703, |
1712 | 0x07000701, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1713 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1714 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1715 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1716 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000396, |
1717 | 0x00000396, 0x00000396, 0x00000196, 0x00010000, 0x00030002, |
1718 | 0x00050004, 0x00810080, 0x00830082, 0x01810180, 0x01830182, |
1719 | 0x01850184, 0x02810280, 0x02830282, 0x02850284, 0x02890288, |
1720 | 0x028b028a, 0x0388028c, 0x038a0389, 0x038c038b, 0x0390038d, |
1721 | 0x03920391, 0x03940393, 0x03960395, 0x00000000, 0x00000000, |
1722 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1723 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1724 | 0x2a2d2f32, 0x21232328, 0x19191c1e, 0x12141417, 0x07070e0e, |
1725 | 0x03030305, 0x00000003, 0x00000000, 0x00000000, 0x00000000, |
1726 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1727 | 0x00000000, 0x003f0020, 0x00400041, 0x0140005f, 0x0160015f, |
1728 | 0x017e017f, 0x02410242, 0x025f0240, 0x027f0260, 0x0341027e, |
1729 | 0x035f0340, 0x037f0360, 0x04400441, 0x0460045f, 0x0541047f, |
1730 | 0x055f0540, 0x057f0560, 0x06400641, 0x0660065f, 0x067e067f, |
1731 | 0x07410742, 0x075f0740, 0x077f0760, 0x07800781, 0x07a0079f, |
1732 | 0x07c107bf, 0x000007c0, 0x00000000, 0x00000000, 0x00000000, |
1733 | 0x00000000, 0x00000000, 0x00000000, 0x003f0020, 0x00400041, |
1734 | 0x0140005f, 0x0160015f, 0x017e017f, 0x02410242, 0x025f0240, |
1735 | 0x027f0260, 0x0341027e, 0x035f0340, 0x037f0360, 0x04400441, |
1736 | 0x0460045f, 0x0541047f, 0x055f0540, 0x057f0560, 0x06400641, |
1737 | 0x0660065f, 0x067e067f, 0x07410742, 0x075f0740, 0x077f0760, |
1738 | 0x07800781, 0x07a0079f, 0x07c107bf, 0x000007c0, 0x00000000, |
1739 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1740 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1741 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1742 | 0x00000000, 0x00000000, 0x00000396, 0x00000396, 0x00000396, |
1743 | 0x00000196 |
1744 | }; |
1745 | |
1746 | static const struct athn_gain ar9380_2_2_rx_gain = { |
1747 | __arraycount(ar9380_2_2_rx_gain_regs), |
1748 | ar9380_2_2_rx_gain_regs, |
1749 | ar9380_2_2_rx_gain_vals, |
1750 | ar9380_2_2_rx_gain_vals |
1751 | }; |
1752 | |
1753 | /* |
1754 | * AR9380 2.2 without external low-noise amplifier Rx gains. |
1755 | */ |
1756 | static const uint32_t ar9380_2_2_rx_gain_wo_xlna_vals[] = { |
1757 | 0x00010000, 0x00030002, 0x00050004, 0x00810080, 0x00830082, |
1758 | 0x01810180, 0x01830182, 0x01850184, 0x01890188, 0x018b018a, |
1759 | 0x018d018c, 0x03820190, 0x03840383, 0x03880385, 0x038a0389, |
1760 | 0x038c038b, 0x0390038d, 0x03920391, 0x03940393, 0x03960395, |
1761 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1762 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1763 | 0x00000000, 0x00000000, 0x29292929, 0x29292929, 0x29292929, |
1764 | 0x29292929, 0x22292929, 0x1d1d2222, 0x0c111117, 0x00030303, |
1765 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1766 | 0x00000000, 0x00000000, 0x00000000, 0x001f0000, 0x01000101, |
1767 | 0x011e011f, 0x011c011d, 0x02030204, 0x02010202, 0x021f0200, |
1768 | 0x0302021e, 0x03000301, 0x031e031f, 0x0402031d, 0x04000401, |
1769 | 0x041e041f, 0x0502041d, 0x05000501, 0x051e051f, 0x06010602, |
1770 | 0x061f0600, 0x061d061e, 0x07020703, 0x07000701, 0x00000000, |
1771 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1772 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1773 | 0x001f0000, 0x01000101, 0x011e011f, 0x011c011d, 0x02030204, |
1774 | 0x02010202, 0x021f0200, 0x0302021e, 0x03000301, 0x031e031f, |
1775 | 0x0402031d, 0x04000401, 0x041e041f, 0x0502041d, 0x05000501, |
1776 | 0x051e051f, 0x06010602, 0x061f0600, 0x061d061e, 0x07020703, |
1777 | 0x07000701, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1778 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1779 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1780 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1781 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000396, |
1782 | 0x00000396, 0x00000396, 0x00000196, 0x00010000, 0x00030002, |
1783 | 0x00050004, 0x00810080, 0x00830082, 0x01810180, 0x01830182, |
1784 | 0x01850184, 0x02810280, 0x02830282, 0x02850284, 0x02890288, |
1785 | 0x028b028a, 0x0388028c, 0x038a0389, 0x038c038b, 0x0390038d, |
1786 | 0x03920391, 0x03940393, 0x03960395, 0x00000000, 0x00000000, |
1787 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1788 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1789 | 0x32323232, 0x2f2f3232, 0x23282a2d, 0x1c1e2123, 0x14171919, |
1790 | 0x0e0e1214, 0x03050707, 0x00030303, 0x00000000, 0x00000000, |
1791 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1792 | 0x00000000, 0x003f0020, 0x00400041, 0x0140005f, 0x0160015f, |
1793 | 0x017e017f, 0x02410242, 0x025f0240, 0x027f0260, 0x0341027e, |
1794 | 0x035f0340, 0x037f0360, 0x04400441, 0x0460045f, 0x0541047f, |
1795 | 0x055f0540, 0x057f0560, 0x06400641, 0x0660065f, 0x067e067f, |
1796 | 0x07410742, 0x075f0740, 0x077f0760, 0x07800781, 0x07a0079f, |
1797 | 0x07c107bf, 0x000007c0, 0x00000000, 0x00000000, 0x00000000, |
1798 | 0x00000000, 0x00000000, 0x00000000, 0x003f0020, 0x00400041, |
1799 | 0x0140005f, 0x0160015f, 0x017e017f, 0x02410242, 0x025f0240, |
1800 | 0x027f0260, 0x0341027e, 0x035f0340, 0x037f0360, 0x04400441, |
1801 | 0x0460045f, 0x0541047f, 0x055f0540, 0x057f0560, 0x06400641, |
1802 | 0x0660065f, 0x067e067f, 0x07410742, 0x075f0740, 0x077f0760, |
1803 | 0x07800781, 0x07a0079f, 0x07c107bf, 0x000007c0, 0x00000000, |
1804 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1805 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1806 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1807 | 0x00000000, 0x00000000, 0x00000396, 0x00000396, 0x00000396, |
1808 | 0x00000196 |
1809 | }; |
1810 | |
1811 | static const struct athn_gain ar9380_2_2_rx_gain_wo_xlna = { |
1812 | __arraycount(ar9380_2_2_rx_gain_regs), |
1813 | ar9380_2_2_rx_gain_regs, |
1814 | ar9380_2_2_rx_gain_wo_xlna_vals, |
1815 | ar9380_2_2_rx_gain_wo_xlna_vals |
1816 | }; |
1817 | |
1818 | /* |
1819 | * AR9485 1.1 Rx gains. |
1820 | */ |
1821 | static const uint16_t ar9485_1_1_rx_gain_regs[] = { |
1822 | P(0x0a000), P(0x0a004), P(0x0a008), P(0x0a00c), P(0x0a010), |
1823 | P(0x0a014), P(0x0a018), P(0x0a01c), P(0x0a020), P(0x0a024), |
1824 | P(0x0a028), P(0x0a02c), P(0x0a030), P(0x0a034), P(0x0a038), |
1825 | P(0x0a03c), P(0x0a040), P(0x0a044), P(0x0a048), P(0x0a04c), |
1826 | P(0x0a050), P(0x0a054), P(0x0a058), P(0x0a05c), P(0x0a060), |
1827 | P(0x0a064), P(0x0a068), P(0x0a06c), P(0x0a070), P(0x0a074), |
1828 | P(0x0a078), P(0x0a07c), P(0x0a080), P(0x0a084), P(0x0a088), |
1829 | P(0x0a08c), P(0x0a090), P(0x0a094), P(0x0a098), P(0x0a09c), |
1830 | P(0x0a0a0), P(0x0a0a4), P(0x0a0a8), P(0x0a0ac), P(0x0a0b0), |
1831 | P(0x0a0b4), P(0x0a0b8), P(0x0a0bc), P(0x0a0c0), P(0x0a0c4), |
1832 | P(0x0a0c8), P(0x0a0cc), P(0x0a0d0), P(0x0a0d4), P(0x0a0d8), |
1833 | P(0x0a0dc), P(0x0a0e0), P(0x0a0e4), P(0x0a0e8), P(0x0a0ec), |
1834 | P(0x0a0f0), P(0x0a0f4), P(0x0a0f8), P(0x0a0fc), P(0x0a100), |
1835 | P(0x0a104), P(0x0a108), P(0x0a10c), P(0x0a110), P(0x0a114), |
1836 | P(0x0a118), P(0x0a11c), P(0x0a120), P(0x0a124), P(0x0a128), |
1837 | P(0x0a12c), P(0x0a130), P(0x0a134), P(0x0a138), P(0x0a13c), |
1838 | P(0x0a140), P(0x0a144), P(0x0a148), P(0x0a14c), P(0x0a150), |
1839 | P(0x0a154), P(0x0a158), P(0x0a15c), P(0x0a160), P(0x0a164), |
1840 | P(0x0a168), P(0x0a16c), P(0x0a170), P(0x0a174), P(0x0a178), |
1841 | P(0x0a17c), P(0x0a180), P(0x0a184), P(0x0a188), P(0x0a18c), |
1842 | P(0x0a190), P(0x0a194), P(0x0a198), P(0x0a19c), P(0x0a1a0), |
1843 | P(0x0a1a4), P(0x0a1a8), P(0x0a1ac), P(0x0a1b0), P(0x0a1b4), |
1844 | P(0x0a1b8), P(0x0a1bc), P(0x0a1c0), P(0x0a1c4), P(0x0a1c8), |
1845 | P(0x0a1cc), P(0x0a1d0), P(0x0a1d4), P(0x0a1d8), P(0x0a1dc), |
1846 | P(0x0a1e0), P(0x0a1e4), P(0x0a1e8), P(0x0a1ec), P(0x0a1f0), |
1847 | P(0x0a1f4), P(0x0a1f8), P(0x0a1fc) |
1848 | }; |
1849 | |
1850 | static const uint32_t ar9485_1_1_rx_gain_vals[] = { |
1851 | 0x00060005, 0x00810080, 0x00830082, 0x00850084, 0x01820181, |
1852 | 0x01840183, 0x01880185, 0x018a0189, 0x02850284, 0x02890288, |
1853 | 0x028b028a, 0x03850384, 0x03890388, 0x038b038a, 0x038d038c, |
1854 | 0x03910390, 0x03930392, 0x03950394, 0x00000396, 0x00000000, |
1855 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1856 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1857 | 0x00000000, 0x00000000, 0x28282828, 0x28282828, 0x28282828, |
1858 | 0x28282828, 0x28282828, 0x24242428, 0x171e1e1e, 0x02020b0b, |
1859 | 0x02020202, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1860 | 0x00000000, 0x00000000, 0x00000000, 0x22072208, 0x22052206, |
1861 | 0x22032204, 0x22012202, 0x221f2200, 0x221d221e, 0x33023303, |
1862 | 0x33003301, 0x331e331f, 0x4402331d, 0x44004401, 0x441e441f, |
1863 | 0x55025503, 0x55005501, 0x551e551f, 0x6602551d, 0x66006601, |
1864 | 0x661e661f, 0x7703661d, 0x77017702, 0x00007700, 0x00000000, |
1865 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1866 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1867 | 0x001f0000, 0x111f1100, 0x111d111e, 0x111b111c, 0x22032204, |
1868 | 0x22012202, 0x221f2200, 0x221d221e, 0x33013302, 0x331f3300, |
1869 | 0x4402331e, 0x44004401, 0x441e441f, 0x55015502, 0x551f5500, |
1870 | 0x6602551e, 0x66006601, 0x661e661f, 0x7703661d, 0x77017702, |
1871 | 0x00007700, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1872 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1873 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1874 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, |
1875 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000396, |
1876 | 0x00000396, 0x00000396, 0x00000296 |
1877 | }; |
1878 | |
1879 | static const struct athn_gain ar9485_1_1_rx_gain = { |
1880 | __arraycount(ar9485_1_1_rx_gain_regs), |
1881 | ar9485_1_1_rx_gain_regs, |
1882 | NULL, /* 2GHz only. */ |
1883 | ar9485_1_1_rx_gain_vals |
1884 | }; |
1885 | |
1886 | /* |
1887 | * Serializer/Deserializer programming. |
1888 | */ |
1889 | |
1890 | static const uint32_t ar9380_2_2_serdes_regs[] = { |
1891 | AR_PCIE_SERDES, |
1892 | AR_PCIE_SERDES, |
1893 | AR_PCIE_SERDES2 |
1894 | }; |
1895 | |
1896 | static const uint32_t ar9380_2_2_serdes_vals[] = { |
1897 | 0x08212e5e, |
1898 | 0x0008003b, |
1899 | 0x00000000 |
1900 | }; |
1901 | |
1902 | static const struct athn_serdes ar9380_2_2_serdes = { |
1903 | __arraycount(ar9380_2_2_serdes_vals), |
1904 | ar9380_2_2_serdes_regs, |
1905 | ar9380_2_2_serdes_vals |
1906 | }; |
1907 | |
1908 | static const uint32_t ar9485_1_1_serdes_regs[] = { |
1909 | 0x00018c00, |
1910 | 0x00018c04, |
1911 | 0x00018c08 |
1912 | }; |
1913 | |
1914 | static const uint32_t ar9485_1_1_serdes_vals[] = { |
1915 | 0x18013e5e, |
1916 | 0x000801d8, |
1917 | 0x0000080c |
1918 | }; |
1919 | |
1920 | static const struct athn_serdes ar9485_1_1_serdes = { |
1921 | __arraycount(ar9485_1_1_serdes_vals), |
1922 | ar9485_1_1_serdes_regs, |
1923 | ar9485_1_1_serdes_vals |
1924 | }; |
1925 | |
1926 | #endif /* _ARN9380REG_H_ */ |
1927 | |