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 ar9380_modal_eep_header {
122           uint32_t  antCtrlCommon;
123           uint32_t  antCtrlCommon2;
124           uint16_t  antCtrlChain[AR9380_MAX_CHAINS];
125           uint8_t             xatten1DB[AR9380_MAX_CHAINS];
126           uint8_t             xatten1Margin[AR9380_MAX_CHAINS];
127           int8_t              tempSlope;
128           int8_t              voltSlope;
129           uint8_t             spurChans[AR9380_EEPROM_MODAL_SPURS];
130           int8_t              noiseFloorThreshCh[AR9380_MAX_CHAINS];
131           uint8_t             ob[AR9380_MAX_CHAINS];
132           uint8_t             db_stage2[AR9380_MAX_CHAINS];
133           uint8_t             db_stage3[AR9380_MAX_CHAINS];
134           uint8_t             db_stage4[AR9380_MAX_CHAINS];
135           uint8_t             xpaBiasLvl;
136           uint8_t             txFrameToDataStart;
137           uint8_t             txFrameToPaOn;
138           uint8_t             txClip;
139           int8_t              antennaGain;
140           uint8_t             switchSettling;
141           int8_t              adcDesiredSize;
142           uint8_t             txEndToXpaOff;
143           uint8_t             txEndToRxOn;
144           uint8_t             txFrameToXpaOn;
145           uint8_t             thresh62;
146           uint32_t  papdRateMaskHt20;
147           uint32_t  papdRateMaskHt40;
148           uint8_t             futureModal[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 baseEepHeader;
185           struct    ar9380_modal_eep_header modalHeader2G;
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 modalHeader5G;
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