• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/wireless/b43/
1/*
2
3  Broadcom B43 wireless driver
4  IEEE 802.11n PHY and radio device data tables
5
6  Copyright (c) 2008 Michael Buesch <mb@bu3sch.de>
7
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  GNU General Public License for more details.
17
18  You should have received a copy of the GNU General Public License
19  along with this program; see the file COPYING.  If not, write to
20  the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
21  Boston, MA 02110-1301, USA.
22
23*/
24
25#include "b43.h"
26#include "tables_nphy.h"
27#include "phy_common.h"
28#include "phy_n.h"
29
30
31struct b2055_inittab_entry {
32	/* Value to write if we use the 5GHz band. */
33	u16 ghz5;
34	/* Value to write if we use the 2.4GHz band. */
35	u16 ghz2;
36	/* Flags */
37	u8 flags;
38#define B2055_INITTAB_ENTRY_OK	0x01
39#define B2055_INITTAB_UPLOAD	0x02
40};
41#define UPLOAD		.flags = B2055_INITTAB_ENTRY_OK | B2055_INITTAB_UPLOAD
42#define NOUPLOAD	.flags = B2055_INITTAB_ENTRY_OK
43
44static const struct b2055_inittab_entry b2055_inittab [] = {
45  [B2055_SP_PINPD]		= { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
46  [B2055_C1_SP_RSSI]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
47  [B2055_C1_SP_PDMISC]		= { .ghz5 = 0x0027, .ghz2 = 0x0027, NOUPLOAD, },
48  [B2055_C2_SP_RSSI]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
49  [B2055_C2_SP_PDMISC]		= { .ghz5 = 0x0027, .ghz2 = 0x0027, NOUPLOAD, },
50  [B2055_C1_SP_RXGC1]		= { .ghz5 = 0x007F, .ghz2 = 0x007F, UPLOAD, },
51  [B2055_C1_SP_RXGC2]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, UPLOAD, },
52  [B2055_C2_SP_RXGC1]		= { .ghz5 = 0x007F, .ghz2 = 0x007F, UPLOAD, },
53  [B2055_C2_SP_RXGC2]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, UPLOAD, },
54  [B2055_C1_SP_LPFBWSEL]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
55  [B2055_C2_SP_LPFBWSEL]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
56  [B2055_C1_SP_TXGC1]		= { .ghz5 = 0x004F, .ghz2 = 0x004F, UPLOAD, },
57  [B2055_C1_SP_TXGC2]		= { .ghz5 = 0x0005, .ghz2 = 0x0005, UPLOAD, },
58  [B2055_C2_SP_TXGC1]		= { .ghz5 = 0x004F, .ghz2 = 0x004F, UPLOAD, },
59  [B2055_C2_SP_TXGC2]		= { .ghz5 = 0x0005, .ghz2 = 0x0005, UPLOAD, },
60  [B2055_MASTER1]		= { .ghz5 = 0x00D0, .ghz2 = 0x00D0, NOUPLOAD, },
61  [B2055_MASTER2]		= { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
62  [B2055_PD_LGEN]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
63  [B2055_PD_PLLTS]		= { .ghz5 = 0x0040, .ghz2 = 0x0040, NOUPLOAD, },
64  [B2055_C1_PD_LGBUF]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
65  [B2055_C1_PD_TX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
66  [B2055_C1_PD_RXTX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
67  [B2055_C1_PD_RSSIMISC]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
68  [B2055_C2_PD_LGBUF]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
69  [B2055_C2_PD_TX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
70  [B2055_C2_PD_RXTX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
71  [B2055_C2_PD_RSSIMISC]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
72  [B2055_PWRDET_LGEN]		= { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
73  [B2055_C1_PWRDET_LGBUF]	= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
74  [B2055_C1_PWRDET_RXTX]	= { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
75  [B2055_C2_PWRDET_LGBUF]	= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
76  [B2055_C2_PWRDET_RXTX]	= { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
77  [B2055_RRCCAL_CS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
78  [B2055_RRCCAL_NOPTSEL]	= { .ghz5 = 0x002C, .ghz2 = 0x002C, NOUPLOAD, },
79  [B2055_CAL_MISC]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
80  [B2055_CAL_COUT]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
81  [B2055_CAL_COUT2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
82  [B2055_CAL_CVARCTL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
83  [B2055_CAL_RVARCTL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
84  [B2055_CAL_LPOCTL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
85  [B2055_CAL_TS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
86  [B2055_CAL_RCCALRTS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
87  [B2055_CAL_RCALRTS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
88  [B2055_PADDRV]		= { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
89  [B2055_XOCTL1]		= { .ghz5 = 0x0038, .ghz2 = 0x0038, NOUPLOAD, },
90  [B2055_XOCTL2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
91  [B2055_XOREGUL]		= { .ghz5 = 0x0004, .ghz2 = 0x0004, UPLOAD, },
92  [B2055_XOMISC]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
93  [B2055_PLL_LFC1]		= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
94  [B2055_PLL_CALVTH]		= { .ghz5 = 0x0087, .ghz2 = 0x0087, NOUPLOAD, },
95  [B2055_PLL_LFC2]		= { .ghz5 = 0x0009, .ghz2 = 0x0009, NOUPLOAD, },
96  [B2055_PLL_REF]		= { .ghz5 = 0x0070, .ghz2 = 0x0070, NOUPLOAD, },
97  [B2055_PLL_LFR1]		= { .ghz5 = 0x0011, .ghz2 = 0x0011, NOUPLOAD, },
98  [B2055_PLL_PFDCP]		= { .ghz5 = 0x0018, .ghz2 = 0x0018, UPLOAD, },
99  [B2055_PLL_IDAC_CPOPAMP]	= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
100  [B2055_PLL_CPREG]		= { .ghz5 = 0x0004, .ghz2 = 0x0004, UPLOAD, },
101  [B2055_PLL_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
102  [B2055_RF_PLLMOD0]		= { .ghz5 = 0x009E, .ghz2 = 0x009E, NOUPLOAD, },
103  [B2055_RF_PLLMOD1]		= { .ghz5 = 0x0009, .ghz2 = 0x0009, NOUPLOAD, },
104  [B2055_RF_MMDIDAC1]		= { .ghz5 = 0x00C8, .ghz2 = 0x00C8, UPLOAD, },
105  [B2055_RF_MMDIDAC0]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
106  [B2055_RF_MMDSP]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
107  [B2055_VCO_CAL1]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
108  [B2055_VCO_CAL2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
109  [B2055_VCO_CAL3]		= { .ghz5 = 0x0001, .ghz2 = 0x0001, NOUPLOAD, },
110  [B2055_VCO_CAL4]		= { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
111  [B2055_VCO_CAL5]		= { .ghz5 = 0x0096, .ghz2 = 0x0096, NOUPLOAD, },
112  [B2055_VCO_CAL6]		= { .ghz5 = 0x003E, .ghz2 = 0x003E, NOUPLOAD, },
113  [B2055_VCO_CAL7]		= { .ghz5 = 0x003E, .ghz2 = 0x003E, NOUPLOAD, },
114  [B2055_VCO_CAL8]		= { .ghz5 = 0x0013, .ghz2 = 0x0013, NOUPLOAD, },
115  [B2055_VCO_CAL9]		= { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
116  [B2055_VCO_CAL10]		= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
117  [B2055_VCO_CAL11]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
118  [B2055_VCO_CAL12]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
119  [B2055_VCO_CAL13]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
120  [B2055_VCO_CAL14]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
121  [B2055_VCO_CAL15]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
122  [B2055_VCO_CAL16]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
123  [B2055_VCO_KVCO]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
124  [B2055_VCO_CAPTAIL]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
125  [B2055_VCO_IDACVCO]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
126  [B2055_VCO_REG]		= { .ghz5 = 0x0084, .ghz2 = 0x0084, UPLOAD, },
127  [B2055_PLL_RFVTH]		= { .ghz5 = 0x00C3, .ghz2 = 0x00C3, NOUPLOAD, },
128  [B2055_LGBUF_CENBUF]		= { .ghz5 = 0x008F, .ghz2 = 0x008F, NOUPLOAD, },
129  [B2055_LGEN_TUNE1]		= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
130  [B2055_LGEN_TUNE2]		= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
131  [B2055_LGEN_IDAC1]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
132  [B2055_LGEN_IDAC2]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
133  [B2055_LGEN_BIASC]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
134  [B2055_LGEN_BIASIDAC]		= { .ghz5 = 0x00CC, .ghz2 = 0x00CC, NOUPLOAD, },
135  [B2055_LGEN_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
136  [B2055_LGEN_DIV]		= { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
137  [B2055_LGEN_SPARE2]		= { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
138  [B2055_C1_LGBUF_ATUNE]	= { .ghz5 = 0x00F8, .ghz2 = 0x00F8, NOUPLOAD, },
139  [B2055_C1_LGBUF_GTUNE]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
140  [B2055_C1_LGBUF_DIV]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
141  [B2055_C1_LGBUF_AIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0008, UPLOAD, },
142  [B2055_C1_LGBUF_GIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
143  [B2055_C1_LGBUF_IDACFO]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
144  [B2055_C1_LGBUF_SPARE]	= { .ghz5 = 0x0001, .ghz2 = 0x0001, UPLOAD, },
145  [B2055_C1_RX_RFSPC1]		= { .ghz5 = 0x008A, .ghz2 = 0x008A, NOUPLOAD, },
146  [B2055_C1_RX_RFR1]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
147  [B2055_C1_RX_RFR2]		= { .ghz5 = 0x0083, .ghz2 = 0x0083, NOUPLOAD, },
148  [B2055_C1_RX_RFRCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
149  [B2055_C1_RX_BB_BLCMP]	= { .ghz5 = 0x00A0, .ghz2 = 0x00A0, NOUPLOAD, },
150  [B2055_C1_RX_BB_LPF]		= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
151  [B2055_C1_RX_BB_MIDACHP]	= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
152  [B2055_C1_RX_BB_VGA1IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
153  [B2055_C1_RX_BB_VGA2IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
154  [B2055_C1_RX_BB_VGA3IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
155  [B2055_C1_RX_BB_BUFOCTL]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
156  [B2055_C1_RX_BB_RCCALCTL]	= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
157  [B2055_C1_RX_BB_RSSICTL1]	= { .ghz5 = 0x006A, .ghz2 = 0x006A, UPLOAD, },
158  [B2055_C1_RX_BB_RSSICTL2]	= { .ghz5 = 0x00AB, .ghz2 = 0x00AB, UPLOAD, },
159  [B2055_C1_RX_BB_RSSICTL3]	= { .ghz5 = 0x0013, .ghz2 = 0x0013, UPLOAD, },
160  [B2055_C1_RX_BB_RSSICTL4]	= { .ghz5 = 0x00C1, .ghz2 = 0x00C1, UPLOAD, },
161  [B2055_C1_RX_BB_RSSICTL5]	= { .ghz5 = 0x00AA, .ghz2 = 0x00AA, UPLOAD, },
162  [B2055_C1_RX_BB_REG]		= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
163  [B2055_C1_RX_BB_SPARE1]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
164  [B2055_C1_RX_TXBBRCAL]	= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
165  [B2055_C1_TX_RF_SPGA]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
166  [B2055_C1_TX_RF_SPAD]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
167  [B2055_C1_TX_RF_CNTPGA1]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
168  [B2055_C1_TX_RF_CNTPAD1]	= { .ghz5 = 0x0055, .ghz2 = 0x0055, NOUPLOAD, },
169  [B2055_C1_TX_RF_PGAIDAC]	= { .ghz5 = 0x0097, .ghz2 = 0x0097, UPLOAD, },
170  [B2055_C1_TX_PGAPADTN]	= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
171  [B2055_C1_TX_PADIDAC1]	= { .ghz5 = 0x0014, .ghz2 = 0x0014, UPLOAD, },
172  [B2055_C1_TX_PADIDAC2]	= { .ghz5 = 0x0033, .ghz2 = 0x0033, NOUPLOAD, },
173  [B2055_C1_TX_MXBGTRIM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
174  [B2055_C1_TX_RF_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
175  [B2055_C1_TX_RF_PADTSSI1]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
176  [B2055_C1_TX_RF_PADTSSI2]	= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
177  [B2055_C1_TX_RF_SPARE]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
178  [B2055_C1_TX_RF_IQCAL1]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
179  [B2055_C1_TX_RF_IQCAL2]	= { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
180  [B2055_C1_TXBB_RCCAL]		= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
181  [B2055_C1_TXBB_LPF1]		= { .ghz5 = 0x0028, .ghz2 = 0x0028, NOUPLOAD, },
182  [B2055_C1_TX_VOSCNCL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
183  [B2055_C1_TX_LPF_MXGMIDAC]	= { .ghz5 = 0x004A, .ghz2 = 0x004A, NOUPLOAD, },
184  [B2055_C1_TX_BB_MXGM]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
185  [B2055_C2_LGBUF_ATUNE]	= { .ghz5 = 0x00F8, .ghz2 = 0x00F8, NOUPLOAD, },
186  [B2055_C2_LGBUF_GTUNE]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
187  [B2055_C2_LGBUF_DIV]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
188  [B2055_C2_LGBUF_AIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0008, UPLOAD, },
189  [B2055_C2_LGBUF_GIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
190  [B2055_C2_LGBUF_IDACFO]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
191  [B2055_C2_LGBUF_SPARE]	= { .ghz5 = 0x0001, .ghz2 = 0x0001, UPLOAD, },
192  [B2055_C2_RX_RFSPC1]		= { .ghz5 = 0x008A, .ghz2 = 0x008A, NOUPLOAD, },
193  [B2055_C2_RX_RFR1]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
194  [B2055_C2_RX_RFR2]		= { .ghz5 = 0x0083, .ghz2 = 0x0083, NOUPLOAD, },
195  [B2055_C2_RX_RFRCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
196  [B2055_C2_RX_BB_BLCMP]	= { .ghz5 = 0x00A0, .ghz2 = 0x00A0, NOUPLOAD, },
197  [B2055_C2_RX_BB_LPF]		= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
198  [B2055_C2_RX_BB_MIDACHP]	= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
199  [B2055_C2_RX_BB_VGA1IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
200  [B2055_C2_RX_BB_VGA2IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
201  [B2055_C2_RX_BB_VGA3IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
202  [B2055_C2_RX_BB_BUFOCTL]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
203  [B2055_C2_RX_BB_RCCALCTL]	= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
204  [B2055_C2_RX_BB_RSSICTL1]	= { .ghz5 = 0x006A, .ghz2 = 0x006A, UPLOAD, },
205  [B2055_C2_RX_BB_RSSICTL2]	= { .ghz5 = 0x00AB, .ghz2 = 0x00AB, UPLOAD, },
206  [B2055_C2_RX_BB_RSSICTL3]	= { .ghz5 = 0x0013, .ghz2 = 0x0013, UPLOAD, },
207  [B2055_C2_RX_BB_RSSICTL4]	= { .ghz5 = 0x00C1, .ghz2 = 0x00C1, UPLOAD, },
208  [B2055_C2_RX_BB_RSSICTL5]	= { .ghz5 = 0x00AA, .ghz2 = 0x00AA, UPLOAD, },
209  [B2055_C2_RX_BB_REG]		= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
210  [B2055_C2_RX_BB_SPARE1]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
211  [B2055_C2_RX_TXBBRCAL]	= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
212  [B2055_C2_TX_RF_SPGA]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
213  [B2055_C2_TX_RF_SPAD]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
214  [B2055_C2_TX_RF_CNTPGA1]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
215  [B2055_C2_TX_RF_CNTPAD1]	= { .ghz5 = 0x0055, .ghz2 = 0x0055, NOUPLOAD, },
216  [B2055_C2_TX_RF_PGAIDAC]	= { .ghz5 = 0x0097, .ghz2 = 0x0097, UPLOAD, },
217  [B2055_C2_TX_PGAPADTN]	= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
218  [B2055_C2_TX_PADIDAC1]	= { .ghz5 = 0x0014, .ghz2 = 0x0014, UPLOAD, },
219  [B2055_C2_TX_PADIDAC2]	= { .ghz5 = 0x0033, .ghz2 = 0x0033, NOUPLOAD, },
220  [B2055_C2_TX_MXBGTRIM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
221  [B2055_C2_TX_RF_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
222  [B2055_C2_TX_RF_PADTSSI1]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
223  [B2055_C2_TX_RF_PADTSSI2]	= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
224  [B2055_C2_TX_RF_SPARE]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
225  [B2055_C2_TX_RF_IQCAL1]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
226  [B2055_C2_TX_RF_IQCAL2]	= { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
227  [B2055_C2_TXBB_RCCAL]		= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
228  [B2055_C2_TXBB_LPF1]		= { .ghz5 = 0x0028, .ghz2 = 0x0028, NOUPLOAD, },
229  [B2055_C2_TX_VOSCNCL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
230  [B2055_C2_TX_LPF_MXGMIDAC]	= { .ghz5 = 0x004A, .ghz2 = 0x004A, NOUPLOAD, },
231  [B2055_C2_TX_BB_MXGM]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
232  [B2055_PRG_GCHP21]		= { .ghz5 = 0x0071, .ghz2 = 0x0071, NOUPLOAD, },
233  [B2055_PRG_GCHP22]		= { .ghz5 = 0x0072, .ghz2 = 0x0072, NOUPLOAD, },
234  [B2055_PRG_GCHP23]		= { .ghz5 = 0x0073, .ghz2 = 0x0073, NOUPLOAD, },
235  [B2055_PRG_GCHP24]		= { .ghz5 = 0x0074, .ghz2 = 0x0074, NOUPLOAD, },
236  [B2055_PRG_GCHP25]		= { .ghz5 = 0x0075, .ghz2 = 0x0075, NOUPLOAD, },
237  [B2055_PRG_GCHP26]		= { .ghz5 = 0x0076, .ghz2 = 0x0076, NOUPLOAD, },
238  [B2055_PRG_GCHP27]		= { .ghz5 = 0x0077, .ghz2 = 0x0077, NOUPLOAD, },
239  [B2055_PRG_GCHP28]		= { .ghz5 = 0x0078, .ghz2 = 0x0078, NOUPLOAD, },
240  [B2055_PRG_GCHP29]		= { .ghz5 = 0x0079, .ghz2 = 0x0079, NOUPLOAD, },
241  [B2055_PRG_GCHP30]		= { .ghz5 = 0x007A, .ghz2 = 0x007A, NOUPLOAD, },
242  [0xC7]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
243  [0xC8]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
244  [0xC9]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
245  [0xCA]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
246  [0xCB]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
247  [0xCC]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
248  [B2055_C1_LNA_GAINBST]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
249  [0xCE]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
250  [0xCF]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
251  [0xD0]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
252  [0xD1]			= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
253  [B2055_C1_B0NB_RSSIVCM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
254  [0xD3]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
255  [0xD4]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
256  [0xD5]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
257  [B2055_C1_GENSPARE2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
258  [0xD7]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
259  [0xD8]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
260  [B2055_C2_LNA_GAINBST]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
261  [0xDA]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
262  [0xDB]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
263  [0xDC]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
264  [0xDD]			= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
265  [B2055_C2_B0NB_RSSIVCM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
266  [0xDF]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
267  [0xE0]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
268  [0xE1]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
269  [B2055_C2_GENSPARE2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
270};
271
272
273void b2055_upload_inittab(struct b43_wldev *dev,
274			  bool ghz5, bool ignore_uploadflag)
275{
276	const struct b2055_inittab_entry *e;
277	unsigned int i;
278	u16 value;
279
280	for (i = 0; i < ARRAY_SIZE(b2055_inittab); i++) {
281		e = &(b2055_inittab[i]);
282		if (!(e->flags & B2055_INITTAB_ENTRY_OK))
283			continue;
284		if ((e->flags & B2055_INITTAB_UPLOAD) || ignore_uploadflag) {
285			if (ghz5)
286				value = e->ghz5;
287			else
288				value = e->ghz2;
289			b43_radio_write16(dev, i, value);
290		}
291	}
292}
293
294
295#define RADIOREGS(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, \
296		  r12, r13, r14, r15, r16, r17, r18, r19, r20, r21) \
297	.radio_pll_ref		= r0,	\
298	.radio_rf_pllmod0	= r1,	\
299	.radio_rf_pllmod1	= r2,	\
300	.radio_vco_captail	= r3,	\
301	.radio_vco_cal1		= r4,	\
302	.radio_vco_cal2		= r5,	\
303	.radio_pll_lfc1		= r6,	\
304	.radio_pll_lfr1		= r7,	\
305	.radio_pll_lfc2		= r8,	\
306	.radio_lgbuf_cenbuf	= r9,	\
307	.radio_lgen_tune1	= r10,	\
308	.radio_lgen_tune2	= r11,	\
309	.radio_c1_lgbuf_atune	= r12,	\
310	.radio_c1_lgbuf_gtune	= r13,	\
311	.radio_c1_rx_rfr1	= r14,	\
312	.radio_c1_tx_pgapadtn	= r15,	\
313	.radio_c1_tx_mxbgtrim	= r16,	\
314	.radio_c2_lgbuf_atune	= r17,	\
315	.radio_c2_lgbuf_gtune	= r18,	\
316	.radio_c2_rx_rfr1	= r19,	\
317	.radio_c2_tx_pgapadtn	= r20,	\
318	.radio_c2_tx_mxbgtrim	= r21
319
320#define PHYREGS(r0, r1, r2, r3, r4, r5)	\
321	.phy_regs.phy_bw1a	= r0,	\
322	.phy_regs.phy_bw2	= r1,	\
323	.phy_regs.phy_bw3	= r2,	\
324	.phy_regs.phy_bw4	= r3,	\
325	.phy_regs.phy_bw5	= r4,	\
326	.phy_regs.phy_bw6	= r5
327
328static const struct b43_nphy_channeltab_entry_rev2 b43_nphy_channeltab[] = {
329  {	.channel		= 184,
330	.freq			= 4920, /* MHz */
331	.unk2			= 3280,
332	RADIOREGS(0x71, 0x01, 0xEC, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
333		  0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F,
334		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
335	PHYREGS(0xB407, 0xB007, 0xAC07, 0x1402, 0x1502, 0x1602),
336  },
337  {	.channel		= 186,
338	.freq			= 4930, /* MHz */
339	.unk2			= 3287,
340	RADIOREGS(0x71, 0x01, 0xED, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
341		  0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F,
342		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
343	PHYREGS(0xB807, 0xB407, 0xB007, 0x1302, 0x1402, 0x1502),
344  },
345  {	.channel		= 188,
346	.freq			= 4940, /* MHz */
347	.unk2			= 3293,
348	RADIOREGS(0x71, 0x01, 0xEE, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
349		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
350		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
351	PHYREGS(0xBC07, 0xB807, 0xB407, 0x1202, 0x1302, 0x1402),
352  },
353  {	.channel		= 190,
354	.freq			= 4950, /* MHz */
355	.unk2			= 3300,
356	RADIOREGS(0x71, 0x01, 0xEF, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
357		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
358		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
359	PHYREGS(0xC007, 0xBC07, 0xB807, 0x1102, 0x1202, 0x1302),
360  },
361  {	.channel		= 192,
362	.freq			= 4960, /* MHz */
363	.unk2			= 3307,
364	RADIOREGS(0x71, 0x01, 0xF0, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
365		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
366		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
367	PHYREGS(0xC407, 0xC007, 0xBC07, 0x0F02, 0x1102, 0x1202),
368  },
369  {	.channel		= 194,
370	.freq			= 4970, /* MHz */
371	.unk2			= 3313,
372	RADIOREGS(0x71, 0x01, 0xF1, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
373		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
374		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
375	PHYREGS(0xC807, 0xC407, 0xC007, 0x0E02, 0x0F02, 0x1102),
376  },
377  {	.channel		= 196,
378	.freq			= 4980, /* MHz */
379	.unk2			= 3320,
380	RADIOREGS(0x71, 0x01, 0xF2, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
381		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
382		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
383	PHYREGS(0xCC07, 0xC807, 0xC407, 0x0D02, 0x0E02, 0x0F02),
384  },
385  {	.channel		= 198,
386	.freq			= 4990, /* MHz */
387	.unk2			= 3327,
388	RADIOREGS(0x71, 0x01, 0xF3, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
389		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
390		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
391	PHYREGS(0xD007, 0xCC07, 0xC807, 0x0C02, 0x0D02, 0x0E02),
392  },
393  {	.channel		= 200,
394	.freq			= 5000, /* MHz */
395	.unk2			= 3333,
396	RADIOREGS(0x71, 0x01, 0xF4, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
397		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
398		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
399	PHYREGS(0xD407, 0xD007, 0xCC07, 0x0B02, 0x0C02, 0x0D02),
400  },
401  {	.channel		= 202,
402	.freq			= 5010, /* MHz */
403	.unk2			= 3340,
404	RADIOREGS(0x71, 0x01, 0xF5, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
405		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
406		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
407	PHYREGS(0xD807, 0xD407, 0xD007, 0x0A02, 0x0B02, 0x0C02),
408  },
409  {	.channel		= 204,
410	.freq			= 5020, /* MHz */
411	.unk2			= 3347,
412	RADIOREGS(0x71, 0x01, 0xF6, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
413		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
414		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
415	PHYREGS(0xDC07, 0xD807, 0xD407, 0x0902, 0x0A02, 0x0B02),
416  },
417  {	.channel		= 206,
418	.freq			= 5030, /* MHz */
419	.unk2			= 3353,
420	RADIOREGS(0x71, 0x01, 0xF7, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
421		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
422		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
423	PHYREGS(0xE007, 0xDC07, 0xD807, 0x0802, 0x0902, 0x0A02),
424  },
425  {	.channel		= 208,
426	.freq			= 5040, /* MHz */
427	.unk2			= 3360,
428	RADIOREGS(0x71, 0x01, 0xF8, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
429		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
430		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
431	PHYREGS(0xE407, 0xE007, 0xDC07, 0x0702, 0x0802, 0x0902),
432  },
433  {	.channel		= 210,
434	.freq			= 5050, /* MHz */
435	.unk2			= 3367,
436	RADIOREGS(0x71, 0x01, 0xF9, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
437		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
438		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
439	PHYREGS(0xE807, 0xE407, 0xE007, 0x0602, 0x0702, 0x0802),
440  },
441  {	.channel		= 212,
442	.freq			= 5060, /* MHz */
443	.unk2			= 3373,
444	RADIOREGS(0x71, 0x01, 0xFA, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
445		  0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F,
446		  0x8E, 0xFF, 0x00, 0x0E, 0x0F, 0x8E),
447	PHYREGS(0xEC07, 0xE807, 0xE407, 0x0502, 0x0602, 0x0702),
448  },
449  {	.channel		= 214,
450	.freq			= 5070, /* MHz */
451	.unk2			= 3380,
452	RADIOREGS(0x71, 0x01, 0xFB, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
453		  0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F,
454		  0x8E, 0xFF, 0x00, 0x0E, 0x0F, 0x8E),
455	PHYREGS(0xF007, 0xEC07, 0xE807, 0x0402, 0x0502, 0x0602),
456  },
457  {	.channel		= 216,
458	.freq			= 5080, /* MHz */
459	.unk2			= 3387,
460	RADIOREGS(0x71, 0x01, 0xFC, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
461		  0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F,
462		  0x8D, 0xEE, 0x00, 0x0E, 0x0F, 0x8D),
463	PHYREGS(0xF407, 0xF007, 0xEC07, 0x0302, 0x0402, 0x0502),
464  },
465  {	.channel		= 218,
466	.freq			= 5090, /* MHz */
467	.unk2			= 3393,
468	RADIOREGS(0x71, 0x01, 0xFD, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
469		  0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F,
470		  0x8D, 0xEE, 0x00, 0x0E, 0x0F, 0x8D),
471	PHYREGS(0xF807, 0xF407, 0xF007, 0x0202, 0x0302, 0x0402),
472  },
473  {	.channel		= 220,
474	.freq			= 5100, /* MHz */
475	.unk2			= 3400,
476	RADIOREGS(0x71, 0x01, 0xFE, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
477		  0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F,
478		  0x8D, 0xEE, 0x00, 0x0D, 0x0F, 0x8D),
479	PHYREGS(0xFC07, 0xF807, 0xF407, 0x0102, 0x0202, 0x0302),
480  },
481  {	.channel		= 222,
482	.freq			= 5110, /* MHz */
483	.unk2			= 3407,
484	RADIOREGS(0x71, 0x01, 0xFF, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
485		  0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F,
486		  0x8D, 0xEE, 0x00, 0x0D, 0x0F, 0x8D),
487	PHYREGS(0x0008, 0xFC07, 0xF807, 0x0002, 0x0102, 0x0202),
488  },
489  {	.channel		= 224,
490	.freq			= 5120, /* MHz */
491	.unk2			= 3413,
492	RADIOREGS(0x71, 0x02, 0x00, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
493		  0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F,
494		  0x8C, 0xDD, 0x00, 0x0D, 0x0F, 0x8C),
495	PHYREGS(0x0408, 0x0008, 0xFC07, 0xFF01, 0x0002, 0x0102),
496  },
497  {	.channel		= 226,
498	.freq			= 5130, /* MHz */
499	.unk2			= 3420,
500	RADIOREGS(0x71, 0x02, 0x01, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
501		  0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F,
502		  0x8C, 0xDD, 0x00, 0x0D, 0x0F, 0x8C),
503	PHYREGS(0x0808, 0x0408, 0x0008, 0xFE01, 0xFF01, 0x0002),
504  },
505  {	.channel		= 228,
506	.freq			= 5140, /* MHz */
507	.unk2			= 3427,
508	RADIOREGS(0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
509		  0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E,
510		  0x8B, 0xDD, 0x00, 0x0C, 0x0E, 0x8B),
511	PHYREGS(0x0C08, 0x0808, 0x0408, 0xFD01, 0xFE01, 0xFF01),
512  },
513  {	.channel		= 32,
514	.freq			= 5160, /* MHz */
515	.unk2			= 3440,
516	RADIOREGS(0x71, 0x02, 0x04, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
517		  0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D,
518		  0x8A, 0xCC, 0x00, 0x0B, 0x0D, 0x8A),
519	PHYREGS(0x1408, 0x1008, 0x0C08, 0xFB01, 0xFC01, 0xFD01),
520  },
521  {	.channel		= 34,
522	.freq			= 5170, /* MHz */
523	.unk2			= 3447,
524	RADIOREGS(0x71, 0x02, 0x05, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
525		  0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D,
526		  0x8A, 0xCC, 0x00, 0x0B, 0x0D, 0x8A),
527	PHYREGS(0x1808, 0x1408, 0x1008, 0xFA01, 0xFB01, 0xFC01),
528  },
529  {	.channel		= 36,
530	.freq			= 5180, /* MHz */
531	.unk2			= 3453,
532	RADIOREGS(0x71, 0x02, 0x06, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
533		  0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C,
534		  0x89, 0xCC, 0x00, 0x0B, 0x0C, 0x89),
535	PHYREGS(0x1C08, 0x1808, 0x1408, 0xF901, 0xFA01, 0xFB01),
536  },
537  {	.channel		= 38,
538	.freq			= 5190, /* MHz */
539	.unk2			= 3460,
540	RADIOREGS(0x71, 0x02, 0x07, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
541		  0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C,
542		  0x89, 0xCC, 0x00, 0x0B, 0x0C, 0x89),
543	PHYREGS(0x2008, 0x1C08, 0x1808, 0xF801, 0xF901, 0xFA01),
544  },
545  {	.channel		= 40,
546	.freq			= 5200, /* MHz */
547	.unk2			= 3467,
548	RADIOREGS(0x71, 0x02, 0x08, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
549		  0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B,
550		  0x89, 0xBB, 0x00, 0x0A, 0x0B, 0x89),
551	PHYREGS(0x2408, 0x2008, 0x1C08, 0xF701, 0xF801, 0xF901),
552  },
553  {	.channel		= 42,
554	.freq			= 5210, /* MHz */
555	.unk2			= 3473,
556	RADIOREGS(0x71, 0x02, 0x09, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
557		  0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B,
558		  0x89, 0xBB, 0x00, 0x0A, 0x0B, 0x89),
559	PHYREGS(0x2808, 0x2408, 0x2008, 0xF601, 0xF701, 0xF801),
560  },
561  {	.channel		= 44,
562	.freq			= 5220, /* MHz */
563	.unk2			= 3480,
564	RADIOREGS(0x71, 0x02, 0x0A, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
565		  0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A,
566		  0x88, 0xBB, 0x00, 0x09, 0x0A, 0x88),
567	PHYREGS(0x2C08, 0x2808, 0x2408, 0xF501, 0xF601, 0xF701),
568  },
569  {	.channel		= 46,
570	.freq			= 5230, /* MHz */
571	.unk2			= 3487,
572	RADIOREGS(0x71, 0x02, 0x0B, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
573		  0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A,
574		  0x88, 0xBB, 0x00, 0x09, 0x0A, 0x88),
575	PHYREGS(0x3008, 0x2C08, 0x2808, 0xF401, 0xF501, 0xF601),
576  },
577  {	.channel		= 48,
578	.freq			= 5240, /* MHz */
579	.unk2			= 3493,
580	RADIOREGS(0x71, 0x02, 0x0C, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
581		  0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A,
582		  0x87, 0xAA, 0x00, 0x09, 0x0A, 0x87),
583	PHYREGS(0x3408, 0x3008, 0x2C08, 0xF301, 0xF401, 0xF501),
584  },
585  {	.channel		= 50,
586	.freq			= 5250, /* MHz */
587	.unk2			= 3500,
588	RADIOREGS(0x71, 0x02, 0x0D, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
589		  0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A,
590		  0x87, 0xAA, 0x00, 0x09, 0x0A, 0x87),
591	PHYREGS(0x3808, 0x3408, 0x3008, 0xF201, 0xF301, 0xF401),
592  },
593  {	.channel		= 52,
594	.freq			= 5260, /* MHz */
595	.unk2			= 3507,
596	RADIOREGS(0x71, 0x02, 0x0E, 0x0A, 0x98, 0x01, 0x04, 0x0A,
597		  0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09,
598		  0x87, 0xAA, 0x00, 0x08, 0x09, 0x87),
599	PHYREGS(0x3C08, 0x3808, 0x3408, 0xF101, 0xF201, 0xF301),
600  },
601  {	.channel		= 54,
602	.freq			= 5270, /* MHz */
603	.unk2			= 3513,
604	RADIOREGS(0x71, 0x02, 0x0F, 0x0A, 0x98, 0x01, 0x04, 0x0A,
605		  0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09,
606		  0x87, 0xAA, 0x00, 0x08, 0x09, 0x87),
607	PHYREGS(0x4008, 0x3C08, 0x3808, 0xF001, 0xF101, 0xF201),
608  },
609  {	.channel		= 56,
610	.freq			= 5280, /* MHz */
611	.unk2			= 3520,
612	RADIOREGS(0x71, 0x02, 0x10, 0x09, 0x91, 0x01, 0x04, 0x0A,
613		  0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08,
614		  0x86, 0x99, 0x00, 0x08, 0x08, 0x86),
615	PHYREGS(0x4408, 0x4008, 0x3C08, 0xF001, 0xF001, 0xF101),
616  },
617  {	.channel		= 58,
618	.freq			= 5290, /* MHz */
619	.unk2			= 3527,
620	RADIOREGS(0x71, 0x02, 0x11, 0x09, 0x91, 0x01, 0x04, 0x0A,
621		  0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08,
622		  0x86, 0x99, 0x00, 0x08, 0x08, 0x86),
623	PHYREGS(0x4808, 0x4408, 0x4008, 0xEF01, 0xF001, 0xF001),
624  },
625  {	.channel		= 60,
626	.freq			= 5300, /* MHz */
627	.unk2			= 3533,
628	RADIOREGS(0x71, 0x02, 0x12, 0x09, 0x8A, 0x01, 0x04, 0x0A,
629		  0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07,
630		  0x85, 0x99, 0x00, 0x08, 0x07, 0x85),
631	PHYREGS(0x4C08, 0x4808, 0x4408, 0xEE01, 0xEF01, 0xF001),
632  },
633  {	.channel		= 62,
634	.freq			= 5310, /* MHz */
635	.unk2			= 3540,
636	RADIOREGS(0x71, 0x02, 0x13, 0x09, 0x8A, 0x01, 0x04, 0x0A,
637		  0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07,
638		  0x85, 0x99, 0x00, 0x08, 0x07, 0x85),
639	PHYREGS(0x5008, 0x4C08, 0x4808, 0xED01, 0xEE01, 0xEF01),
640  },
641  {	.channel		= 64,
642	.freq			= 5320, /* MHz */
643	.unk2			= 3547,
644	RADIOREGS(0x71, 0x02, 0x14, 0x09, 0x83, 0x01, 0x04, 0x0A,
645		  0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07,
646		  0x84, 0x88, 0x00, 0x07, 0x07, 0x84),
647	PHYREGS(0x5408, 0x5008, 0x4C08, 0xEC01, 0xED01, 0xEE01),
648  },
649  {	.channel		= 66,
650	.freq			= 5330, /* MHz */
651	.unk2			= 3553,
652	RADIOREGS(0x71, 0x02, 0x15, 0x09, 0x83, 0x01, 0x04, 0x0A,
653		  0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07,
654		  0x84, 0x88, 0x00, 0x07, 0x07, 0x84),
655	PHYREGS(0x5808, 0x5408, 0x5008, 0xEB01, 0xEC01, 0xED01),
656  },
657  {	.channel		= 68,
658	.freq			= 5340, /* MHz */
659	.unk2			= 3560,
660	RADIOREGS(0x71, 0x02, 0x16, 0x08, 0x7C, 0x01, 0x04, 0x0A,
661		  0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06,
662		  0x84, 0x88, 0x00, 0x07, 0x06, 0x84),
663	PHYREGS(0x5C08, 0x5808, 0x5408, 0xEA01, 0xEB01, 0xEC01),
664  },
665  {	.channel		= 70,
666	.freq			= 5350, /* MHz */
667	.unk2			= 3567,
668	RADIOREGS(0x71, 0x02, 0x17, 0x08, 0x7C, 0x01, 0x04, 0x0A,
669		  0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06,
670		  0x84, 0x88, 0x00, 0x07, 0x06, 0x84),
671	PHYREGS(0x6008, 0x5C08, 0x5808, 0xE901, 0xEA01, 0xEB01),
672  },
673  {	.channel		= 72,
674	.freq			= 5360, /* MHz */
675	.unk2			= 3573,
676	RADIOREGS(0x71, 0x02, 0x18, 0x08, 0x75, 0x01, 0x04, 0x0A,
677		  0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05,
678		  0x83, 0x77, 0x00, 0x06, 0x05, 0x83),
679	PHYREGS(0x6408, 0x6008, 0x5C08, 0xE801, 0xE901, 0xEA01),
680  },
681  {	.channel		= 74,
682	.freq			= 5370, /* MHz */
683	.unk2			= 3580,
684	RADIOREGS(0x71, 0x02, 0x19, 0x08, 0x75, 0x01, 0x04, 0x0A,
685		  0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05,
686		  0x83, 0x77, 0x00, 0x06, 0x05, 0x83),
687	PHYREGS(0x6808, 0x6408, 0x6008, 0xE701, 0xE801, 0xE901),
688  },
689  {	.channel		= 76,
690	.freq			= 5380, /* MHz */
691	.unk2			= 3587,
692	RADIOREGS(0x71, 0x02, 0x1A, 0x08, 0x6E, 0x01, 0x04, 0x0A,
693		  0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04,
694		  0x82, 0x77, 0x00, 0x06, 0x04, 0x82),
695	PHYREGS(0x6C08, 0x6808, 0x6408, 0xE601, 0xE701, 0xE801),
696  },
697  {	.channel		= 78,
698	.freq			= 5390, /* MHz */
699	.unk2			= 3593,
700	RADIOREGS(0x71, 0x02, 0x1B, 0x08, 0x6E, 0x01, 0x04, 0x0A,
701		  0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04,
702		  0x82, 0x77, 0x00, 0x06, 0x04, 0x82),
703	PHYREGS(0x7008, 0x6C08, 0x6808, 0xE501, 0xE601, 0xE701),
704  },
705  {	.channel		= 80,
706	.freq			= 5400, /* MHz */
707	.unk2			= 3600,
708	RADIOREGS(0x71, 0x02, 0x1C, 0x07, 0x67, 0x01, 0x04, 0x0A,
709		  0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04,
710		  0x81, 0x66, 0x00, 0x05, 0x04, 0x81),
711	PHYREGS(0x7408, 0x7008, 0x6C08, 0xE501, 0xE501, 0xE601),
712  },
713  {	.channel		= 82,
714	.freq			= 5410, /* MHz */
715	.unk2			= 3607,
716	RADIOREGS(0x71, 0x02, 0x1D, 0x07, 0x67, 0x01, 0x04, 0x0A,
717		  0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04,
718		  0x81, 0x66, 0x00, 0x05, 0x04, 0x81),
719	PHYREGS(0x7808, 0x7408, 0x7008, 0xE401, 0xE501, 0xE501),
720  },
721  {	.channel		= 84,
722	.freq			= 5420, /* MHz */
723	.unk2			= 3613,
724	RADIOREGS(0x71, 0x02, 0x1E, 0x07, 0x61, 0x01, 0x04, 0x0A,
725		  0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03,
726		  0x80, 0x66, 0x00, 0x05, 0x03, 0x80),
727	PHYREGS(0x7C08, 0x7808, 0x7408, 0xE301, 0xE401, 0xE501),
728  },
729  {	.channel		= 86,
730	.freq			= 5430, /* MHz */
731	.unk2			= 3620,
732	RADIOREGS(0x71, 0x02, 0x1F, 0x07, 0x61, 0x01, 0x04, 0x0A,
733		  0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03,
734		  0x80, 0x66, 0x00, 0x05, 0x03, 0x80),
735	PHYREGS(0x8008, 0x7C08, 0x7808, 0xE201, 0xE301, 0xE401),
736  },
737  {	.channel		= 88,
738	.freq			= 5440, /* MHz */
739	.unk2			= 3627,
740	RADIOREGS(0x71, 0x02, 0x20, 0x07, 0x5A, 0x01, 0x04, 0x0A,
741		  0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02,
742		  0x80, 0x55, 0x00, 0x04, 0x02, 0x80),
743	PHYREGS(0x8408, 0x8008, 0x7C08, 0xE101, 0xE201, 0xE301),
744  },
745  {	.channel		= 90,
746	.freq			= 5450, /* MHz */
747	.unk2			= 3633,
748	RADIOREGS(0x71, 0x02, 0x21, 0x07, 0x5A, 0x01, 0x04, 0x0A,
749		  0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02,
750		  0x80, 0x55, 0x00, 0x04, 0x02, 0x80),
751	PHYREGS(0x8808, 0x8408, 0x8008, 0xE001, 0xE101, 0xE201),
752  },
753  {	.channel		= 92,
754	.freq			= 5460, /* MHz */
755	.unk2			= 3640,
756	RADIOREGS(0x71, 0x02, 0x22, 0x06, 0x53, 0x01, 0x04, 0x0A,
757		  0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01,
758		  0x80, 0x55, 0x00, 0x04, 0x01, 0x80),
759	PHYREGS(0x8C08, 0x8808, 0x8408, 0xDF01, 0xE001, 0xE101),
760  },
761  {	.channel		= 94,
762	.freq			= 5470, /* MHz */
763	.unk2			= 3647,
764	RADIOREGS(0x71, 0x02, 0x23, 0x06, 0x53, 0x01, 0x04, 0x0A,
765		  0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01,
766		  0x80, 0x55, 0x00, 0x04, 0x01, 0x80),
767	PHYREGS(0x9008, 0x8C08, 0x8808, 0xDE01, 0xDF01, 0xE001),
768  },
769  {	.channel		= 96,
770	.freq			= 5480, /* MHz */
771	.unk2			= 3653,
772	RADIOREGS(0x71, 0x02, 0x24, 0x06, 0x4D, 0x01, 0x04, 0x0A,
773		  0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00,
774		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
775	PHYREGS(0x9408, 0x9008, 0x8C08, 0xDD01, 0xDE01, 0xDF01),
776  },
777  {	.channel		= 98,
778	.freq			= 5490, /* MHz */
779	.unk2			= 3660,
780	RADIOREGS(0x71, 0x02, 0x25, 0x06, 0x4D, 0x01, 0x04, 0x0A,
781		  0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00,
782		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
783	PHYREGS(0x9808, 0x9408, 0x9008, 0xDD01, 0xDD01, 0xDE01),
784  },
785  {	.channel		= 100,
786	.freq			= 5500, /* MHz */
787	.unk2			= 3667,
788	RADIOREGS(0x71, 0x02, 0x26, 0x06, 0x47, 0x01, 0x04, 0x0A,
789		  0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00,
790		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
791	PHYREGS(0x9C08, 0x9808, 0x9408, 0xDC01, 0xDD01, 0xDD01),
792  },
793  {	.channel		= 102,
794	.freq			= 5510, /* MHz */
795	.unk2			= 3673,
796	RADIOREGS(0x71, 0x02, 0x27, 0x06, 0x47, 0x01, 0x04, 0x0A,
797		  0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00,
798		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
799	PHYREGS(0xA008, 0x9C08, 0x9808, 0xDB01, 0xDC01, 0xDD01),
800  },
801  {	.channel		= 104,
802	.freq			= 5520, /* MHz */
803	.unk2			= 3680,
804	RADIOREGS(0x71, 0x02, 0x28, 0x05, 0x40, 0x01, 0x04, 0x0A,
805		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
806		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
807	PHYREGS(0xA408, 0xA008, 0x9C08, 0xDA01, 0xDB01, 0xDC01),
808  },
809  {	.channel		= 106,
810	.freq			= 5530, /* MHz */
811	.unk2			= 3687,
812	RADIOREGS(0x71, 0x02, 0x29, 0x05, 0x40, 0x01, 0x04, 0x0A,
813		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
814		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
815	PHYREGS(0xA808, 0xA408, 0xA008, 0xD901, 0xDA01, 0xDB01),
816  },
817  {	.channel		= 108,
818	.freq			= 5540, /* MHz */
819	.unk2			= 3693,
820	RADIOREGS(0x71, 0x02, 0x2A, 0x05, 0x3A, 0x01, 0x04, 0x0A,
821		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
822		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
823	PHYREGS(0xAC08, 0xA808, 0xA408, 0xD801, 0xD901, 0xDA01),
824  },
825  {	.channel		= 110,
826	.freq			= 5550, /* MHz */
827	.unk2			= 3700,
828	RADIOREGS(0x71, 0x02, 0x2B, 0x05, 0x3A, 0x01, 0x04, 0x0A,
829		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
830		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
831	PHYREGS(0xB008, 0xAC08, 0xA808, 0xD701, 0xD801, 0xD901),
832  },
833  {	.channel		= 112,
834	.freq			= 5560, /* MHz */
835	.unk2			= 3707,
836	RADIOREGS(0x71, 0x02, 0x2C, 0x05, 0x34, 0x01, 0x04, 0x0A,
837		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
838		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
839	PHYREGS(0xB408, 0xB008, 0xAC08, 0xD701, 0xD701, 0xD801),
840  },
841  {	.channel		= 114,
842	.freq			= 5570, /* MHz */
843	.unk2			= 3713,
844	RADIOREGS(0x71, 0x02, 0x2D, 0x05, 0x34, 0x01, 0x04, 0x0A,
845		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
846		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
847	PHYREGS(0xB808, 0xB408, 0xB008, 0xD601, 0xD701, 0xD701),
848  },
849  {	.channel		= 116,
850	.freq			= 5580, /* MHz */
851	.unk2			= 3720,
852	RADIOREGS(0x71, 0x02, 0x2E, 0x04, 0x2E, 0x01, 0x04, 0x0A,
853		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
854		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
855	PHYREGS(0xBC08, 0xB808, 0xB408, 0xD501, 0xD601, 0xD701),
856  },
857  {	.channel		= 118,
858	.freq			= 5590, /* MHz */
859	.unk2			= 3727,
860	RADIOREGS(0x71, 0x02, 0x2F, 0x04, 0x2E, 0x01, 0x04, 0x0A,
861		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
862		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
863	PHYREGS(0xC008, 0xBC08, 0xB808, 0xD401, 0xD501, 0xD601),
864  },
865  {	.channel		= 120,
866	.freq			= 5600, /* MHz */
867	.unk2			= 3733,
868	RADIOREGS(0x71, 0x02, 0x30, 0x04, 0x28, 0x01, 0x04, 0x0A,
869		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00,
870		  0x80, 0x11, 0x00, 0x01, 0x00, 0x80),
871	PHYREGS(0xC408, 0xC008, 0xBC08, 0xD301, 0xD401, 0xD501),
872  },
873  {	.channel		= 122,
874	.freq			= 5610, /* MHz */
875	.unk2			= 3740,
876	RADIOREGS(0x71, 0x02, 0x31, 0x04, 0x28, 0x01, 0x04, 0x0A,
877		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00,
878		  0x80, 0x11, 0x00, 0x01, 0x00, 0x80),
879	PHYREGS(0xC808, 0xC408, 0xC008, 0xD201, 0xD301, 0xD401),
880  },
881  {	.channel		= 124,
882	.freq			= 5620, /* MHz */
883	.unk2			= 3747,
884	RADIOREGS(0x71, 0x02, 0x32, 0x04, 0x21, 0x01, 0x04, 0x0A,
885		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
886		  0x80, 0x11, 0x00, 0x00, 0x00, 0x80),
887	PHYREGS(0xCC08, 0xC808, 0xC408, 0xD201, 0xD201, 0xD301),
888  },
889  {	.channel		= 126,
890	.freq			= 5630, /* MHz */
891	.unk2			= 3753,
892	RADIOREGS(0x71, 0x02, 0x33, 0x04, 0x21, 0x01, 0x04, 0x0A,
893		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
894		  0x80, 0x11, 0x00, 0x00, 0x00, 0x80),
895	PHYREGS(0xD008, 0xCC08, 0xC808, 0xD101, 0xD201, 0xD201),
896  },
897  {	.channel		= 128,
898	.freq			= 5640, /* MHz */
899	.unk2			= 3760,
900	RADIOREGS(0x71, 0x02, 0x34, 0x03, 0x1C, 0x01, 0x04, 0x0A,
901		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
903	PHYREGS(0xD408, 0xD008, 0xCC08, 0xD001, 0xD101, 0xD201),
904  },
905  {	.channel		= 130,
906	.freq			= 5650, /* MHz */
907	.unk2			= 3767,
908	RADIOREGS(0x71, 0x02, 0x35, 0x03, 0x1C, 0x01, 0x04, 0x0A,
909		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
911	PHYREGS(0xD808, 0xD408, 0xD008, 0xCF01, 0xD001, 0xD101),
912  },
913  {	.channel		= 132,
914	.freq			= 5660, /* MHz */
915	.unk2			= 3773,
916	RADIOREGS(0x71, 0x02, 0x36, 0x03, 0x16, 0x01, 0x04, 0x0A,
917		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
918		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
919	PHYREGS(0xDC08, 0xD808, 0xD408, 0xCE01, 0xCF01, 0xD001),
920  },
921  {	.channel		= 134,
922	.freq			= 5670, /* MHz */
923	.unk2			= 3780,
924	RADIOREGS(0x71, 0x02, 0x37, 0x03, 0x16, 0x01, 0x04, 0x0A,
925		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
926		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
927	PHYREGS(0xE008, 0xDC08, 0xD808, 0xCE01, 0xCE01, 0xCF01),
928  },
929  {	.channel		= 136,
930	.freq			= 5680, /* MHz */
931	.unk2			= 3787,
932	RADIOREGS(0x71, 0x02, 0x38, 0x03, 0x10, 0x01, 0x04, 0x0A,
933		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
934		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
935	PHYREGS(0xE408, 0xE008, 0xDC08, 0xCD01, 0xCE01, 0xCE01),
936  },
937  {	.channel		= 138,
938	.freq			= 5690, /* MHz */
939	.unk2			= 3793,
940	RADIOREGS(0x71, 0x02, 0x39, 0x03, 0x10, 0x01, 0x04, 0x0A,
941		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
942		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
943	PHYREGS(0xE808, 0xE408, 0xE008, 0xCC01, 0xCD01, 0xCE01),
944  },
945  {	.channel		= 140,
946	.freq			= 5700, /* MHz */
947	.unk2			= 3800,
948	RADIOREGS(0x71, 0x02, 0x3A, 0x02, 0x0A, 0x01, 0x04, 0x0A,
949		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
950		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
951	PHYREGS(0xEC08, 0xE808, 0xE408, 0xCB01, 0xCC01, 0xCD01),
952  },
953  {	.channel		= 142,
954	.freq			= 5710, /* MHz */
955	.unk2			= 3807,
956	RADIOREGS(0x71, 0x02, 0x3B, 0x02, 0x0A, 0x01, 0x04, 0x0A,
957		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
958		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
959	PHYREGS(0xF008, 0xEC08, 0xE808, 0xCA01, 0xCB01, 0xCC01),
960  },
961  {	.channel		= 144,
962	.freq			= 5720, /* MHz */
963	.unk2			= 3813,
964	RADIOREGS(0x71, 0x02, 0x3C, 0x02, 0x0A, 0x01, 0x04, 0x0A,
965		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
966		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
967	PHYREGS(0xF408, 0xF008, 0xEC08, 0xC901, 0xCA01, 0xCB01),
968  },
969  {	.channel		= 145,
970	.freq			= 5725, /* MHz */
971	.unk2			= 3817,
972	RADIOREGS(0x72, 0x04, 0x79, 0x02, 0x03, 0x01, 0x03, 0x14,
973		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
974		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
975	PHYREGS(0xF608, 0xF208, 0xEE08, 0xC901, 0xCA01, 0xCB01),
976  },
977  {	.channel		= 146,
978	.freq			= 5730, /* MHz */
979	.unk2			= 3820,
980	RADIOREGS(0x71, 0x02, 0x3D, 0x02, 0x0A, 0x01, 0x04, 0x0A,
981		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
982		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
983	PHYREGS(0xF808, 0xF408, 0xF008, 0xC901, 0xC901, 0xCA01),
984  },
985  {	.channel		= 147,
986	.freq			= 5735, /* MHz */
987	.unk2			= 3823,
988	RADIOREGS(0x72, 0x04, 0x7B, 0x02, 0x03, 0x01, 0x03, 0x14,
989		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
990		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
991	PHYREGS(0xFA08, 0xF608, 0xF208, 0xC801, 0xC901, 0xCA01),
992  },
993  {	.channel		= 148,
994	.freq			= 5740, /* MHz */
995	.unk2			= 3827,
996	RADIOREGS(0x71, 0x02, 0x3E, 0x02, 0x0A, 0x01, 0x04, 0x0A,
997		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
998		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
999	PHYREGS(0xFC08, 0xF808, 0xF408, 0xC801, 0xC901, 0xC901),
1000  },
1001  {	.channel		= 149,
1002	.freq			= 5745, /* MHz */
1003	.unk2			= 3830,
1004	RADIOREGS(0x72, 0x04, 0x7D, 0x02, 0xFE, 0x00, 0x03, 0x14,
1005		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1006		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1007	PHYREGS(0xFE08, 0xFA08, 0xF608, 0xC801, 0xC801, 0xC901),
1008  },
1009  {	.channel		= 150,
1010	.freq			= 5750, /* MHz */
1011	.unk2			= 3833,
1012	RADIOREGS(0x71, 0x02, 0x3F, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1013		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1014		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1015	PHYREGS(0x0009, 0xFC08, 0xF808, 0xC701, 0xC801, 0xC901),
1016  },
1017  {	.channel		= 151,
1018	.freq			= 5755, /* MHz */
1019	.unk2			= 3837,
1020	RADIOREGS(0x72, 0x04, 0x7F, 0x02, 0xFE, 0x00, 0x03, 0x14,
1021		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1022		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1023	PHYREGS(0x0209, 0xFE08, 0xFA08, 0xC701, 0xC801, 0xC801),
1024  },
1025  {	.channel		= 152,
1026	.freq			= 5760, /* MHz */
1027	.unk2			= 3840,
1028	RADIOREGS(0x71, 0x02, 0x40, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1029		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1030		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1031	PHYREGS(0x0409, 0x0009, 0xFC08, 0xC601, 0xC701, 0xC801),
1032  },
1033  {	.channel		= 153,
1034	.freq			= 5765, /* MHz */
1035	.unk2			= 3843,
1036	RADIOREGS(0x72, 0x04, 0x81, 0x02, 0xF8, 0x00, 0x03, 0x14,
1037		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1038		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1039	PHYREGS(0x0609, 0x0209, 0xFE08, 0xC601, 0xC701, 0xC801),
1040  },
1041  {	.channel		= 154,
1042	.freq			= 5770, /* MHz */
1043	.unk2			= 3847,
1044	RADIOREGS(0x71, 0x02, 0x41, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1045		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1046		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1047	PHYREGS(0x0809, 0x0409, 0x0009, 0xC601, 0xC601, 0xC701),
1048  },
1049  {	.channel		= 155,
1050	.freq			= 5775, /* MHz */
1051	.unk2			= 3850,
1052	RADIOREGS(0x72, 0x04, 0x83, 0x02, 0xF8, 0x00, 0x03, 0x14,
1053		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1054		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1055	PHYREGS(0x0A09, 0x0609, 0x0209, 0xC501, 0xC601, 0xC701),
1056  },
1057  {	.channel		= 156,
1058	.freq			= 5780, /* MHz */
1059	.unk2			= 3853,
1060	RADIOREGS(0x71, 0x02, 0x42, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1061		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1062		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1063	PHYREGS(0x0C09, 0x0809, 0x0409, 0xC501, 0xC601, 0xC601),
1064  },
1065  {	.channel		= 157,
1066	.freq			= 5785, /* MHz */
1067	.unk2			= 3857,
1068	RADIOREGS(0x72, 0x04, 0x85, 0x02, 0xF2, 0x00, 0x03, 0x14,
1069		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1070		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1071	PHYREGS(0x0E09, 0x0A09, 0x0609, 0xC401, 0xC501, 0xC601),
1072  },
1073  {	.channel		= 158,
1074	.freq			= 5790, /* MHz */
1075	.unk2			= 3860,
1076	RADIOREGS(0x71, 0x02, 0x43, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1077		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1078		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1079	PHYREGS(0x1009, 0x0C09, 0x0809, 0xC401, 0xC501, 0xC601),
1080  },
1081  {	.channel		= 159,
1082	.freq			= 5795, /* MHz */
1083	.unk2			= 3863,
1084	RADIOREGS(0x72, 0x04, 0x87, 0x02, 0xF2, 0x00, 0x03, 0x14,
1085		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1086		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1087	PHYREGS(0x1209, 0x0E09, 0x0A09, 0xC401, 0xC401, 0xC501),
1088  },
1089  {	.channel		= 160,
1090	.freq			= 5800, /* MHz */
1091	.unk2			= 3867,
1092	RADIOREGS(0x71, 0x02, 0x44, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1093		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1094		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1095	PHYREGS(0x1409, 0x1009, 0x0C09, 0xC301, 0xC401, 0xC501),
1096  },
1097  {	.channel		= 161,
1098	.freq			= 5805, /* MHz */
1099	.unk2			= 3870,
1100	RADIOREGS(0x72, 0x04, 0x89, 0x01, 0xED, 0x00, 0x03, 0x14,
1101		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1102		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1103	PHYREGS(0x1609, 0x1209, 0x0E09, 0xC301, 0xC401, 0xC401),
1104  },
1105  {	.channel		= 162,
1106	.freq			= 5810, /* MHz */
1107	.unk2			= 3873,
1108	RADIOREGS(0x71, 0x02, 0x45, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1109		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1110		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1111	PHYREGS(0x1809, 0x1409, 0x1009, 0xC201, 0xC301, 0xC401),
1112  },
1113  {	.channel		= 163,
1114	.freq			= 5815, /* MHz */
1115	.unk2			= 3877,
1116	RADIOREGS(0x72, 0x04, 0x8B, 0x01, 0xED, 0x00, 0x03, 0x14,
1117		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1118		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1119	PHYREGS(0x1A09, 0x1609, 0x1209, 0xC201, 0xC301, 0xC401),
1120  },
1121  {	.channel		= 164,
1122	.freq			= 5820, /* MHz */
1123	.unk2			= 3880,
1124	RADIOREGS(0x71, 0x02, 0x46, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1125		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1126		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1127	PHYREGS(0x1C09, 0x1809, 0x1409, 0xC201, 0xC201, 0xC301),
1128  },
1129  {	.channel		= 165,
1130	.freq			= 5825, /* MHz */
1131	.unk2			= 3883,
1132	RADIOREGS(0x72, 0x04, 0x8D, 0x01, 0xED, 0x00, 0x03, 0x14,
1133		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1134		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1135	PHYREGS(0x1E09, 0x1A09, 0x1609, 0xC101, 0xC201, 0xC301),
1136  },
1137  {	.channel		= 166,
1138	.freq			= 5830, /* MHz */
1139	.unk2			= 3887,
1140	RADIOREGS(0x71, 0x02, 0x47, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1141		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1142		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1143	PHYREGS(0x2009, 0x1C09, 0x1809, 0xC101, 0xC201, 0xC201),
1144  },
1145  {	.channel		= 168,
1146	.freq			= 5840, /* MHz */
1147	.unk2			= 3893,
1148	RADIOREGS(0x71, 0x02, 0x48, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1149		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1150		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1151	PHYREGS(0x2409, 0x2009, 0x1C09, 0xC001, 0xC101, 0xC201),
1152  },
1153  {	.channel		= 170,
1154	.freq			= 5850, /* MHz */
1155	.unk2			= 3900,
1156	RADIOREGS(0x71, 0x02, 0x49, 0x01, 0xE0, 0x00, 0x04, 0x0A,
1157		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1158		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1159	PHYREGS(0x2809, 0x2409, 0x2009, 0xBF01, 0xC001, 0xC101),
1160  },
1161  {	.channel		= 172,
1162	.freq			= 5860, /* MHz */
1163	.unk2			= 3907,
1164	RADIOREGS(0x71, 0x02, 0x4A, 0x01, 0xDE, 0x00, 0x04, 0x0A,
1165		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1166		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1167	PHYREGS(0x2C09, 0x2809, 0x2409, 0xBF01, 0xBF01, 0xC001),
1168  },
1169  {	.channel		= 174,
1170	.freq			= 5870, /* MHz */
1171	.unk2			= 3913,
1172	RADIOREGS(0x71, 0x02, 0x4B, 0x00, 0xDB, 0x00, 0x04, 0x0A,
1173		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1174		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1175	PHYREGS(0x3009, 0x2C09, 0x2809, 0xBE01, 0xBF01, 0xBF01),
1176  },
1177  {	.channel		= 176,
1178	.freq			= 5880, /* MHz */
1179	.unk2			= 3920,
1180	RADIOREGS(0x71, 0x02, 0x4C, 0x00, 0xD8, 0x00, 0x04, 0x0A,
1181		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1182		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1183	PHYREGS(0x3409, 0x3009, 0x2C09, 0xBD01, 0xBE01, 0xBF01),
1184  },
1185  {	.channel		= 178,
1186	.freq			= 5890, /* MHz */
1187	.unk2			= 3927,
1188	RADIOREGS(0x71, 0x02, 0x4D, 0x00, 0xD6, 0x00, 0x04, 0x0A,
1189		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1190		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1191	PHYREGS(0x3809, 0x3409, 0x3009, 0xBC01, 0xBD01, 0xBE01),
1192  },
1193  {	.channel		= 180,
1194	.freq			= 5900, /* MHz */
1195	.unk2			= 3933,
1196	RADIOREGS(0x71, 0x02, 0x4E, 0x00, 0xD3, 0x00, 0x04, 0x0A,
1197		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1198		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1199	PHYREGS(0x3C09, 0x3809, 0x3409, 0xBC01, 0xBC01, 0xBD01),
1200  },
1201  {	.channel		= 182,
1202	.freq			= 5910, /* MHz */
1203	.unk2			= 3940,
1204	RADIOREGS(0x71, 0x02, 0x4F, 0x00, 0xD6, 0x00, 0x04, 0x0A,
1205		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1206		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1207	PHYREGS(0x4009, 0x3C09, 0x3809, 0xBB01, 0xBC01, 0xBC01),
1208  },
1209  {	.channel		= 1,
1210	.freq			= 2412, /* MHz */
1211	.unk2			= 3216,
1212	RADIOREGS(0x73, 0x09, 0x6C, 0x0F, 0x00, 0x01, 0x07, 0x15,
1213		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C,
1214		  0x80, 0xFF, 0x88, 0x0D, 0x0C, 0x80),
1215	PHYREGS(0xC903, 0xC503, 0xC103, 0x3A04, 0x3F04, 0x4304),
1216  },
1217  {	.channel		= 2,
1218	.freq			= 2417, /* MHz */
1219	.unk2			= 3223,
1220	RADIOREGS(0x73, 0x09, 0x71, 0x0F, 0x00, 0x01, 0x07, 0x15,
1221		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B,
1222		  0x80, 0xFF, 0x88, 0x0C, 0x0B, 0x80),
1223	PHYREGS(0xCB03, 0xC703, 0xC303, 0x3804, 0x3D04, 0x4104),
1224  },
1225  {	.channel		= 3,
1226	.freq			= 2422, /* MHz */
1227	.unk2			= 3229,
1228	RADIOREGS(0x73, 0x09, 0x76, 0x0F, 0x00, 0x01, 0x07, 0x15,
1229		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A,
1230		  0x80, 0xFF, 0x88, 0x0C, 0x0A, 0x80),
1231	PHYREGS(0xCD03, 0xC903, 0xC503, 0x3604, 0x3A04, 0x3F04),
1232  },
1233  {	.channel		= 4,
1234	.freq			= 2427, /* MHz */
1235	.unk2			= 3236,
1236	RADIOREGS(0x73, 0x09, 0x7B, 0x0F, 0x00, 0x01, 0x07, 0x15,
1237		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A,
1238		  0x80, 0xFF, 0x88, 0x0C, 0x0A, 0x80),
1239	PHYREGS(0xCF03, 0xCB03, 0xC703, 0x3404, 0x3804, 0x3D04),
1240  },
1241  {	.channel		= 5,
1242	.freq			= 2432, /* MHz */
1243	.unk2			= 3243,
1244	RADIOREGS(0x73, 0x09, 0x80, 0x0F, 0x00, 0x01, 0x07, 0x15,
1245		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09,
1246		  0x80, 0xFF, 0x88, 0x0C, 0x09, 0x80),
1247	PHYREGS(0xD103, 0xCD03, 0xC903, 0x3104, 0x3604, 0x3A04),
1248  },
1249  {	.channel		= 6,
1250	.freq			= 2437, /* MHz */
1251	.unk2			= 3249,
1252	RADIOREGS(0x73, 0x09, 0x85, 0x0F, 0x00, 0x01, 0x07, 0x15,
1253		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08,
1254		  0x80, 0xFF, 0x88, 0x0B, 0x08, 0x80),
1255	PHYREGS(0xD303, 0xCF03, 0xCB03, 0x2F04, 0x3404, 0x3804),
1256  },
1257  {	.channel		= 7,
1258	.freq			= 2442, /* MHz */
1259	.unk2			= 3256,
1260	RADIOREGS(0x73, 0x09, 0x8A, 0x0F, 0x00, 0x01, 0x07, 0x15,
1261		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07,
1262		  0x80, 0xFF, 0x88, 0x0A, 0x07, 0x80),
1263	PHYREGS(0xD503, 0xD103, 0xCD03, 0x2D04, 0x3104, 0x3604),
1264  },
1265  {	.channel		= 8,
1266	.freq			= 2447, /* MHz */
1267	.unk2			= 3263,
1268	RADIOREGS(0x73, 0x09, 0x8F, 0x0F, 0x00, 0x01, 0x07, 0x15,
1269		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06,
1270		  0x80, 0xFF, 0x88, 0x0A, 0x06, 0x80),
1271	PHYREGS(0xD703, 0xD303, 0xCF03, 0x2B04, 0x2F04, 0x3404),
1272  },
1273  {	.channel		= 9,
1274	.freq			= 2452, /* MHz */
1275	.unk2			= 3269,
1276	RADIOREGS(0x73, 0x09, 0x94, 0x0F, 0x00, 0x01, 0x07, 0x15,
1277		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06,
1278		  0x80, 0xFF, 0x88, 0x09, 0x06, 0x80),
1279	PHYREGS(0xD903, 0xD503, 0xD103, 0x2904, 0x2D04, 0x3104),
1280  },
1281  {	.channel		= 10,
1282	.freq			= 2457, /* MHz */
1283	.unk2			= 3276,
1284	RADIOREGS(0x73, 0x09, 0x99, 0x0F, 0x00, 0x01, 0x07, 0x15,
1285		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05,
1286		  0x80, 0xFF, 0x88, 0x08, 0x05, 0x80),
1287	PHYREGS(0xDB03, 0xD703, 0xD303, 0x2704, 0x2B04, 0x2F04),
1288  },
1289  {	.channel		= 11,
1290	.freq			= 2462, /* MHz */
1291	.unk2			= 3283,
1292	RADIOREGS(0x73, 0x09, 0x9E, 0x0F, 0x00, 0x01, 0x07, 0x15,
1293		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04,
1294		  0x80, 0xFF, 0x88, 0x08, 0x04, 0x80),
1295	PHYREGS(0xDD03, 0xD903, 0xD503, 0x2404, 0x2904, 0x2D04),
1296  },
1297  {	.channel		= 12,
1298	.freq			= 2467, /* MHz */
1299	.unk2			= 3289,
1300	RADIOREGS(0x73, 0x09, 0xA3, 0x0F, 0x00, 0x01, 0x07, 0x15,
1301		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03,
1302		  0x80, 0xFF, 0x88, 0x08, 0x03, 0x80),
1303	PHYREGS(0xDF03, 0xDB03, 0xD703, 0x2204, 0x2704, 0x2B04),
1304  },
1305  {	.channel		= 13,
1306	.freq			= 2472, /* MHz */
1307	.unk2			= 3296,
1308	RADIOREGS(0x73, 0x09, 0xA8, 0x0F, 0x00, 0x01, 0x07, 0x15,
1309		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03,
1310		  0x80, 0xFF, 0x88, 0x07, 0x03, 0x80),
1311	PHYREGS(0xE103, 0xDD03, 0xD903, 0x2004, 0x2404, 0x2904),
1312  },
1313  {	.channel		= 14,
1314	.freq			= 2484, /* MHz */
1315	.unk2			= 3312,
1316	RADIOREGS(0x73, 0x09, 0xB4, 0x0F, 0xFF, 0x01, 0x07, 0x15,
1317		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01,
1318		  0x80, 0xFF, 0x88, 0x07, 0x01, 0x80),
1319	PHYREGS(0xE603, 0xE203, 0xDE03, 0x1B04, 0x1F04, 0x2404),
1320  },
1321};
1322
1323const struct b43_nphy_channeltab_entry_rev2 *
1324b43_nphy_get_chantabent_rev2(struct b43_wldev *dev, u8 channel)
1325{
1326	const struct b43_nphy_channeltab_entry_rev2 *e;
1327	unsigned int i;
1328
1329	for (i = 0; i < ARRAY_SIZE(b43_nphy_channeltab); i++) {
1330		e = &(b43_nphy_channeltab[i]);
1331		if (e->channel == channel)
1332			return e;
1333	}
1334
1335	return NULL;
1336}
1337
1338
1339static const u8 b43_ntab_adjustpower0[] = {
1340	0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
1341	0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
1342	0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
1343	0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
1344	0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09,
1345	0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B,
1346	0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
1347	0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
1348	0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
1349	0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
1350	0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
1351	0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
1352	0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19,
1353	0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B,
1354	0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D,
1355	0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
1356};
1357
1358static const u8 b43_ntab_adjustpower1[] = {
1359	0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
1360	0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
1361	0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
1362	0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07,
1363	0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09,
1364	0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B,
1365	0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
1366	0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
1367	0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
1368	0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
1369	0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
1370	0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
1371	0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19,
1372	0x1A, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B, 0x1B, 0x1B,
1373	0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D,
1374	0x1E, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
1375};
1376
1377static const u16 b43_ntab_bdi[] = {
1378	0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
1379};
1380
1381static const u32 b43_ntab_channelest[] = {
1382	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1383	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1384	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1385	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1386	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1387	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1388	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1389	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1390	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1391	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1392	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1393	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1394	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1395	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1396	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1397	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1398	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1399	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1400	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1401	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1402	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1403	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1404	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1405	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1406};
1407
1408static const u8 b43_ntab_estimatepowerlt0[] = {
1409	0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
1410	0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
1411	0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
1412	0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
1413	0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
1414	0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
1415	0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
1416	0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
1417};
1418
1419static const u8 b43_ntab_estimatepowerlt1[] = {
1420	0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
1421	0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
1422	0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
1423	0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
1424	0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
1425	0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
1426	0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
1427	0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
1428};
1429
1430static const u8 b43_ntab_framelookup[] = {
1431	0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
1432	0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
1433	0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
1434	0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
1435};
1436
1437static const u32 b43_ntab_framestruct[] = {
1438	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
1439	0x09804506, 0x00100030, 0x09804507, 0x00100030,
1440	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1441	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1442	0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
1443	0x0980450E, 0x00100038, 0x0980450F, 0x00100038,
1444	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1445	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1446	0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
1447	0x1980C506, 0x00100030, 0x21810506, 0x00100030,
1448	0x21810506, 0x00100030, 0x01800504, 0x00100030,
1449	0x11808505, 0x00100030, 0x29814507, 0x01100030,
1450	0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
1451	0x21810506, 0x00100030, 0x21810506, 0x00100030,
1452	0x29814507, 0x01100030, 0x00000000, 0x00000000,
1453	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1454	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1455	0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
1456	0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
1457	0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
1458	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1459	0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
1460	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
1461	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1462	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
1463	0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
1464	0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
1465	0x29814507, 0x01100030, 0x00000000, 0x00000000,
1466	0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
1467	0x1980C506, 0x00100030, 0x29814507, 0x01100030,
1468	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1469	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1470	0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
1471	0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
1472	0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
1473	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
1474	0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
1475	0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
1476	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1477	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1478	0x40021404, 0x00100000, 0x02001405, 0x00100040,
1479	0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
1480	0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
1481	0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
1482	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
1483	0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
1484	0x23010A07, 0x01500060, 0x00000000, 0x00000000,
1485	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1486	0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
1487	0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
1488	0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
1489	0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
1490	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1491	0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
1492	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
1493	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1494	0x50029404, 0x00100000, 0x32019405, 0x00100040,
1495	0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
1496	0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
1497	0x23010A07, 0x01500060, 0x00000000, 0x00000000,
1498	0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
1499	0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
1500	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1501	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1502	0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
1503	0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
1504	0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
1505	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
1506	0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
1507	0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
1508	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1509	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1510	0x40021404, 0x000F4800, 0x62031405, 0x00100040,
1511	0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
1512	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1513	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1514	0x4002140C, 0x000F4810, 0x6203140D, 0x00100050,
1515	0x53028A0E, 0x01900070, 0x53028A0F, 0x01900070,
1516	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1517	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1518	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1519	0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
1520	0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
1521	0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
1522	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
1523	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1524	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1525	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1526	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
1527	0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
1528	0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
1529	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1530	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1531	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1532	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1533	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1534	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
1535	0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
1536	0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
1537	0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
1538	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1539	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1540	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1541	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1542	0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
1543	0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
1544	0x2981450F, 0x01100030, 0x00000000, 0x00000000,
1545	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1546	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1547	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1548	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1549	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1550	0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
1551	0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
1552	0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
1553	0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
1554	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
1555	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1556	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1557	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1558	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1559	0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
1560	0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
1561	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1562	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1563	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1564	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1565	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1566	0x50029404, 0x00100000, 0x32019405, 0x00100040,
1567	0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
1568	0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
1569	0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
1570	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1571	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1572	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1573	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1574	0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
1575	0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
1576	0x23010A0F, 0x01500060, 0x00000000, 0x00000000,
1577	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1578	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1579	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1580	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1581	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1582	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
1583	0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
1584	0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
1585	0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
1586	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1587	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1588	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1589	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1590	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1591	0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
1592	0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
1593	0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
1594	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1595	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1596	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1597	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1598	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
1599	0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
1600	0x53028A07, 0x0190C060, 0x00000000, 0x00000000,
1601	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1602	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1603	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1604	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1605	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1606	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
1607	0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
1608	0x53028A0F, 0x0190C070, 0x00000000, 0x00000000,
1609	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1610	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1611	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1612	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1613	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1614	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1615	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1616	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1617	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1618	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1619	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1620	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1621	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1622	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1623	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1624	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1625	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1626	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1627	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1628	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1629	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1630	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1631	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1632	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1633	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1634	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1635	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1636	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1637	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1638	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1639	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1640	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1641	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1642	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1643	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1644	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1645	0x00000000, 0x00000000, 0x00000000, 0x00000000,
1646};
1647
1648static const u32 b43_ntab_gainctl0[] = {
1649	0x007F003F, 0x007E013F, 0x007D023E, 0x007C033E,
1650	0x007B043D, 0x007A053D, 0x0079063C, 0x0078073C,
1651	0x0077083B, 0x0076093B, 0x00750A3A, 0x00740B3A,
1652	0x00730C39, 0x00720D39, 0x00710E38, 0x00700F38,
1653	0x006F0037, 0x006E0137, 0x006D0236, 0x006C0336,
1654	0x006B0435, 0x006A0535, 0x00690634, 0x00680734,
1655	0x00670833, 0x00660933, 0x00650A32, 0x00640B32,
1656	0x00630C31, 0x00620D31, 0x00610E30, 0x00600F30,
1657	0x005F002F, 0x005E012F, 0x005D022E, 0x005C032E,
1658	0x005B042D, 0x005A052D, 0x0059062C, 0x0058072C,
1659	0x0057082B, 0x0056092B, 0x00550A2A, 0x00540B2A,
1660	0x00530C29, 0x00520D29, 0x00510E28, 0x00500F28,
1661	0x004F0027, 0x004E0127, 0x004D0226, 0x004C0326,
1662	0x004B0425, 0x004A0525, 0x00490624, 0x00480724,
1663	0x00470823, 0x00460923, 0x00450A22, 0x00440B22,
1664	0x00430C21, 0x00420D21, 0x00410E20, 0x00400F20,
1665	0x003F001F, 0x003E011F, 0x003D021E, 0x003C031E,
1666	0x003B041D, 0x003A051D, 0x0039061C, 0x0038071C,
1667	0x0037081B, 0x0036091B, 0x00350A1A, 0x00340B1A,
1668	0x00330C19, 0x00320D19, 0x00310E18, 0x00300F18,
1669	0x002F0017, 0x002E0117, 0x002D0216, 0x002C0316,
1670	0x002B0415, 0x002A0515, 0x00290614, 0x00280714,
1671	0x00270813, 0x00260913, 0x00250A12, 0x00240B12,
1672	0x00230C11, 0x00220D11, 0x00210E10, 0x00200F10,
1673	0x001F000F, 0x001E010F, 0x001D020E, 0x001C030E,
1674	0x001B040D, 0x001A050D, 0x0019060C, 0x0018070C,
1675	0x0017080B, 0x0016090B, 0x00150A0A, 0x00140B0A,
1676	0x00130C09, 0x00120D09, 0x00110E08, 0x00100F08,
1677	0x000F0007, 0x000E0107, 0x000D0206, 0x000C0306,
1678	0x000B0405, 0x000A0505, 0x00090604, 0x00080704,
1679	0x00070803, 0x00060903, 0x00050A02, 0x00040B02,
1680	0x00030C01, 0x00020D01, 0x00010E00, 0x00000F00,
1681};
1682
1683static const u32 b43_ntab_gainctl1[] = {
1684	0x007F003F, 0x007E013F, 0x007D023E, 0x007C033E,
1685	0x007B043D, 0x007A053D, 0x0079063C, 0x0078073C,
1686	0x0077083B, 0x0076093B, 0x00750A3A, 0x00740B3A,
1687	0x00730C39, 0x00720D39, 0x00710E38, 0x00700F38,
1688	0x006F0037, 0x006E0137, 0x006D0236, 0x006C0336,
1689	0x006B0435, 0x006A0535, 0x00690634, 0x00680734,
1690	0x00670833, 0x00660933, 0x00650A32, 0x00640B32,
1691	0x00630C31, 0x00620D31, 0x00610E30, 0x00600F30,
1692	0x005F002F, 0x005E012F, 0x005D022E, 0x005C032E,
1693	0x005B042D, 0x005A052D, 0x0059062C, 0x0058072C,
1694	0x0057082B, 0x0056092B, 0x00550A2A, 0x00540B2A,
1695	0x00530C29, 0x00520D29, 0x00510E28, 0x00500F28,
1696	0x004F0027, 0x004E0127, 0x004D0226, 0x004C0326,
1697	0x004B0425, 0x004A0525, 0x00490624, 0x00480724,
1698	0x00470823, 0x00460923, 0x00450A22, 0x00440B22,
1699	0x00430C21, 0x00420D21, 0x00410E20, 0x00400F20,
1700	0x003F001F, 0x003E011F, 0x003D021E, 0x003C031E,
1701	0x003B041D, 0x003A051D, 0x0039061C, 0x0038071C,
1702	0x0037081B, 0x0036091B, 0x00350A1A, 0x00340B1A,
1703	0x00330C19, 0x00320D19, 0x00310E18, 0x00300F18,
1704	0x002F0017, 0x002E0117, 0x002D0216, 0x002C0316,
1705	0x002B0415, 0x002A0515, 0x00290614, 0x00280714,
1706	0x00270813, 0x00260913, 0x00250A12, 0x00240B12,
1707	0x00230C11, 0x00220D11, 0x00210E10, 0x00200F10,
1708	0x001F000F, 0x001E010F, 0x001D020E, 0x001C030E,
1709	0x001B040D, 0x001A050D, 0x0019060C, 0x0018070C,
1710	0x0017080B, 0x0016090B, 0x00150A0A, 0x00140B0A,
1711	0x00130C09, 0x00120D09, 0x00110E08, 0x00100F08,
1712	0x000F0007, 0x000E0107, 0x000D0206, 0x000C0306,
1713	0x000B0405, 0x000A0505, 0x00090604, 0x00080704,
1714	0x00070803, 0x00060903, 0x00050A02, 0x00040B02,
1715	0x00030C01, 0x00020D01, 0x00010E00, 0x00000F00,
1716};
1717
1718static const u32 b43_ntab_intlevel[] = {
1719	0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
1720	0x00C1188D, 0x080024D2, 0x00000070,
1721};
1722
1723static const u32 b43_ntab_iqlt0[] = {
1724	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1725	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1726	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1727	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1728	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1729	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1730	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1731	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1732	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1733	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1734	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1735	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1736	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1737	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1738	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1739	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1740	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1741	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1742	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1743	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1744	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1745	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1746	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1747	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1748	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1749	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1750	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1751	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1752	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1753	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1754	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1755	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1756};
1757
1758static const u32 b43_ntab_iqlt1[] = {
1759	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1760	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1761	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1762	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1763	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1764	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1765	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1766	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1767	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1768	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1769	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1770	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1771	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1772	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1773	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1774	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1775	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1776	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1777	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1778	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1779	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1780	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1781	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1782	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1783	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1784	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1785	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1786	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1787	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1788	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1789	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1790	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
1791};
1792
1793static const u16 b43_ntab_loftlt0[] = {
1794	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1795	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1796	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1797	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1798	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1799	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1800	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1801	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1802	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1803	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1804	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1805	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1806	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1807	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1808	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1809	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1810	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1811	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1812	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1813	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1814	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1815	0x0002, 0x0103,
1816};
1817
1818static const u16 b43_ntab_loftlt1[] = {
1819	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1820	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1821	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1822	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1823	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1824	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1825	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1826	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1827	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1828	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1829	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1830	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1831	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1832	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1833	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1834	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1835	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1836	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1837	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1838	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
1839	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
1840	0x0002, 0x0103,
1841};
1842
1843static const u8 b43_ntab_mcs[] = {
1844	0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
1845	0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
1846	0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
1847	0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
1848	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1849	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1850	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1851	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1852	0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
1853	0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
1854	0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
1855	0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
1856	0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
1857	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1858	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1859	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1860};
1861
1862static const u32 b43_ntab_noisevar10[] = {
1863	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1864	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1865	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1866	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1867	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1868	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1869	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1870	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1871	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1872	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1873	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1874	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1875	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1876	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1877	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1878	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1879	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1880	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1881	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1882	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1883	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1884	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1885	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1886	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1887	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1888	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1889	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1890	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1891	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1892	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1893	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1894	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1895	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1896	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1897	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1898	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1899	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1900	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1901	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1902	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1903	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1904	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1905	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1906	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1907	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1908	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1909	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1910	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1911	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1912	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1913	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1914	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1915	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1916	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1917	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1918	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1919	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1920	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1921	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1922	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1923	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1924	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1925	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1926	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1927};
1928
1929static const u32 b43_ntab_noisevar11[] = {
1930	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1931	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1932	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1933	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1934	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1935	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1936	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1937	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1938	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1939	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1940	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1941	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1942	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1943	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1944	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1945	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1946	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1947	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1948	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1949	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1950	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1951	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1952	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1953	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1954	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1955	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1956	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1957	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1958	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1959	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1960	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1961	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1962	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1963	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1964	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1965	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1966	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1967	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1968	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1969	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1970	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1971	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1972	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1973	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1974	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1975	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1976	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1977	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1978	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1979	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1980	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1981	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1982	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1983	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1984	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1985	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1986	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1987	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1988	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1989	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1990	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1991	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1992	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1993	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
1994};
1995
1996static const u16 b43_ntab_pilot[] = {
1997	0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
1998	0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
1999	0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
2000	0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
2001	0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
2002	0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
2003	0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
2004	0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
2005	0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
2006	0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
2007	0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
2008	0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
2009	0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
2010	0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
2011	0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
2012};
2013
2014static const u32 b43_ntab_pilotlt[] = {
2015	0x76540123, 0x62407351, 0x76543201, 0x76540213,
2016	0x76540123, 0x76430521,
2017};
2018
2019static const u32 b43_ntab_tdi20a0[] = {
2020	0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
2021	0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
2022	0x00020301, 0x00030504, 0x00040708, 0x0005090B,
2023	0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
2024	0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
2025	0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
2026	0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
2027	0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
2028	0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
2029	0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
2030	0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
2031	0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
2032	0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
2033	0x00000000, 0x00000000, 0x00000000,
2034};
2035
2036static const u32 b43_ntab_tdi20a1[] = {
2037	0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
2038	0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
2039	0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
2040	0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
2041	0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
2042	0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
2043	0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
2044	0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
2045	0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
2046	0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
2047	0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
2048	0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
2049	0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
2050	0x00000000, 0x00000000, 0x00000000,
2051};
2052
2053static const u32 b43_ntab_tdi40a0[] = {
2054	0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
2055	0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
2056	0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
2057	0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
2058	0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
2059	0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
2060	0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
2061	0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
2062	0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
2063	0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
2064	0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
2065	0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
2066	0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
2067	0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
2068	0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
2069	0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
2070	0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
2071	0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
2072	0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
2073	0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
2074	0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
2075	0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
2076	0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
2077	0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
2078	0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
2079	0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
2080	0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
2081	0x00000000, 0x00000000,
2082};
2083
2084static const u32 b43_ntab_tdi40a1[] = {
2085	0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
2086	0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
2087	0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
2088	0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
2089	0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
2090	0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
2091	0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
2092	0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
2093	0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
2094	0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
2095	0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
2096	0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
2097	0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
2098	0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
2099	0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
2100	0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
2101	0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
2102	0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
2103	0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
2104	0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
2105	0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
2106	0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
2107	0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
2108	0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
2109	0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
2110	0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
2111	0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
2112	0x00000000, 0x00000000,
2113};
2114
2115static const u32 b43_ntab_tdtrn[] = {
2116	0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
2117	0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
2118	0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
2119	0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
2120	0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
2121	0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
2122	0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
2123	0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
2124	0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
2125	0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
2126	0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
2127	0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
2128	0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
2129	0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
2130	0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
2131	0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
2132	0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
2133	0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
2134	0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
2135	0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
2136	0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
2137	0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
2138	0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
2139	0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
2140	0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
2141	0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
2142	0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
2143	0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
2144	0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
2145	0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
2146	0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
2147	0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
2148	0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
2149	0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
2150	0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
2151	0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
2152	0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
2153	0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
2154	0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
2155	0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
2156	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2157	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2158	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2159	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2160	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2161	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2162	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2163	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2164	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2165	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2166	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2167	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2168	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2169	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2170	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2171	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2172	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2173	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2174	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2175	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2176	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2177	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2178	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2179	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2180	0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
2181	0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
2182	0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
2183	0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
2184	0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
2185	0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
2186	0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
2187	0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
2188	0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
2189	0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
2190	0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
2191	0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
2192	0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
2193	0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
2194	0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
2195	0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
2196	0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
2197	0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
2198	0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
2199	0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
2200	0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
2201	0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
2202	0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
2203	0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
2204	0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
2205	0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
2206	0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
2207	0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
2208	0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
2209	0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
2210	0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
2211	0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
2212	0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
2213	0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
2214	0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
2215	0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
2216	0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
2217	0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
2218	0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
2219	0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
2220	0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
2221	0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
2222	0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
2223	0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
2224	0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
2225	0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
2226	0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
2227	0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
2228	0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
2229	0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
2230	0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
2231	0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
2232	0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
2233	0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
2234	0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
2235	0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
2236	0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
2237	0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
2238	0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
2239	0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
2240	0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
2241	0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
2242	0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
2243	0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
2244	0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
2245	0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
2246	0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
2247	0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
2248	0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
2249	0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
2250	0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
2251	0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
2252	0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
2253	0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
2254	0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
2255	0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
2256	0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
2257	0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
2258	0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
2259	0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
2260	0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
2261	0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
2262	0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
2263	0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
2264	0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
2265	0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
2266	0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
2267	0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
2268	0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
2269	0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
2270	0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
2271	0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
2272	0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
2273	0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
2274	0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
2275	0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
2276	0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
2277	0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
2278	0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
2279	0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
2280	0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
2281	0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
2282	0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
2283	0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
2284	0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
2285	0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
2286	0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
2287	0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
2288	0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
2289	0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
2290	0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
2291	0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
2292};
2293
2294static const u32 b43_ntab_tmap[] = {
2295	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2296	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2297	0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
2298	0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
2299	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
2300	0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2301	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2302	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2303	0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
2304	0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
2305	0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
2306	0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
2307	0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
2308	0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
2309	0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
2310	0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
2311	0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
2312	0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
2313	0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
2314	0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
2315	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2316	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2317	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2318	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2319	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2320	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2321	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2322	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2323	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2324	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2325	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2326	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2327	0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
2328	0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
2329	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2330	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
2331	0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
2332	0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
2333	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2334	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2335	0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
2336	0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
2337	0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
2338	0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
2339	0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
2340	0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
2341	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2342	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
2343	0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
2344	0x22222222, 0x22222222, 0x22F22222, 0x00000222,
2345	0x11000000, 0x1111F111, 0x11111111, 0x11111111,
2346	0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
2347	0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
2348	0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
2349	0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
2350	0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
2351	0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
2352	0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
2353	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2354	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2355	0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
2356	0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
2357	0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
2358	0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
2359	0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
2360	0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
2361	0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
2362	0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
2363	0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
2364	0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
2365	0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
2366	0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
2367	0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
2368	0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
2369	0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
2370	0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
2371	0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
2372	0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
2373	0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
2374	0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
2375	0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
2376	0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
2377	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2378	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2379	0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2380	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2381	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2382	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
2383	0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2384	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2385	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2386	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
2387	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2388	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2389	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
2390	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
2391	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2392	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2393	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
2394	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
2395	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2396	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2397	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2398	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2399	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2400	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2401	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2402	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2403	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2404	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2405	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2406	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2407};
2408
2409const u32 b43_ntab_tx_gain_rev0_1_2[] = {
2410	0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
2411	0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
2412	0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
2413	0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
2414	0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
2415	0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
2416	0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
2417	0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
2418	0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
2419	0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
2420	0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
2421	0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
2422	0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
2423	0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
2424	0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
2425	0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
2426	0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
2427	0x03902942, 0x03902844, 0x03902842, 0x03902744,
2428	0x03902742, 0x03902644, 0x03902642, 0x03902544,
2429	0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
2430	0x03802a42, 0x03802944, 0x03802942, 0x03802844,
2431	0x03802842, 0x03802744, 0x03802742, 0x03802644,
2432	0x03802642, 0x03802544, 0x03802542, 0x03802444,
2433	0x03802442, 0x03802344, 0x03802342, 0x03802244,
2434	0x03802242, 0x03802144, 0x03802142, 0x03802044,
2435	0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
2436	0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
2437	0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
2438	0x03801a42, 0x03801944, 0x03801942, 0x03801844,
2439	0x03801842, 0x03801744, 0x03801742, 0x03801644,
2440	0x03801642, 0x03801544, 0x03801542, 0x03801444,
2441	0x03801442, 0x03801344, 0x03801342, 0x00002b00,
2442};
2443
2444const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
2445	0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
2446	0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
2447	0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
2448	0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
2449	0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
2450	0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
2451	0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
2452	0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
2453	0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
2454	0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
2455	0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
2456	0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
2457	0x19410044, 0x19410042, 0x19410040, 0x1941003e,
2458	0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
2459	0x18410044, 0x18410042, 0x18410040, 0x1841003e,
2460	0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
2461	0x17410044, 0x17410042, 0x17410040, 0x1741003e,
2462	0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
2463	0x16410044, 0x16410042, 0x16410040, 0x1641003e,
2464	0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
2465	0x15410044, 0x15410042, 0x15410040, 0x1541003e,
2466	0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
2467	0x14410044, 0x14410042, 0x14410040, 0x1441003e,
2468	0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
2469	0x13410044, 0x13410042, 0x13410040, 0x1341003e,
2470	0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
2471	0x12410044, 0x12410042, 0x12410040, 0x1241003e,
2472	0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
2473	0x11410044, 0x11410042, 0x11410040, 0x1141003e,
2474	0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
2475	0x10410044, 0x10410042, 0x10410040, 0x1041003e,
2476	0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
2477};
2478
2479const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
2480	0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
2481	0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
2482	0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
2483	0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
2484	0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
2485	0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
2486	0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
2487	0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
2488	0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
2489	0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
2490	0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
2491	0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
2492	0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
2493	0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
2494	0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
2495	0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
2496	0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
2497	0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
2498	0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
2499	0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
2500	0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
2501	0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
2502	0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
2503	0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
2504	0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
2505	0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
2506	0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
2507	0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
2508	0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
2509	0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
2510	0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
2511	0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
2512};
2513
2514const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
2515	0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
2516	0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
2517	0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
2518	0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
2519	0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
2520	0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
2521	0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
2522	0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
2523	0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
2524	0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
2525	0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
2526	0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
2527	0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
2528	0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
2529	0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
2530	0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
2531	0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
2532	0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
2533	0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
2534	0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
2535	0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
2536	0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
2537	0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
2538	0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
2539	0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
2540	0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
2541	0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
2542	0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
2543	0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
2544	0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
2545	0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
2546	0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
2547};
2548
2549const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
2550	0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
2551	0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
2552	0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
2553	0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
2554	0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
2555	0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
2556	0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
2557	0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
2558	0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
2559	0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
2560	0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
2561	0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
2562	0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
2563	0x09620039, 0x09620037, 0x09620035, 0x09620033,
2564	0x08620044, 0x08620042, 0x08620040, 0x0862003e,
2565	0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
2566	0x07620043, 0x07620042, 0x07620040, 0x0762003f,
2567	0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
2568	0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
2569	0x06620039, 0x06620037, 0x06620035, 0x06620033,
2570	0x05620046, 0x05620044, 0x05620042, 0x05620040,
2571	0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
2572	0x04620044, 0x04620042, 0x04620040, 0x0462003e,
2573	0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
2574	0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
2575	0x03620038, 0x03620037, 0x03620035, 0x03620033,
2576	0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
2577	0x02620046, 0x02620044, 0x02620043, 0x02620042,
2578	0x0162004a, 0x01620048, 0x01620046, 0x01620044,
2579	0x01620043, 0x01620042, 0x01620041, 0x01620040,
2580	0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
2581	0x0062003b, 0x00620039, 0x00620037, 0x00620035,
2582};
2583
2584const u32 txpwrctrl_tx_gain_ipa[] = {
2585	0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
2586	0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
2587	0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
2588	0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
2589	0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
2590	0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
2591	0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
2592	0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
2593	0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
2594	0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
2595	0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
2596	0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
2597	0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
2598	0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
2599	0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
2600	0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
2601	0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
2602	0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
2603	0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
2604	0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
2605	0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
2606	0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
2607	0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
2608	0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
2609	0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
2610	0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
2611	0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
2612	0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
2613	0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
2614	0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
2615	0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
2616	0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
2617};
2618
2619const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
2620	0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
2621	0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
2622	0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
2623	0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
2624	0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
2625	0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
2626	0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
2627	0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
2628	0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
2629	0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
2630	0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
2631	0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
2632	0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
2633	0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
2634	0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
2635	0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
2636	0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
2637	0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
2638	0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
2639	0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
2640	0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
2641	0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
2642	0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
2643	0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
2644	0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
2645	0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
2646	0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
2647	0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
2648	0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
2649	0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
2650	0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
2651	0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
2652};
2653
2654const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
2655	0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
2656	0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
2657	0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
2658	0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
2659	0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
2660	0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
2661	0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
2662	0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
2663	0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
2664	0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
2665	0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
2666	0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
2667	0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
2668	0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
2669	0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
2670	0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
2671	0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
2672	0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
2673	0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
2674	0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
2675	0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
2676	0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
2677	0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
2678	0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
2679	0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
2680	0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
2681	0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
2682	0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
2683	0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
2684	0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
2685	0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
2686	0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
2687};
2688
2689const u32 txpwrctrl_tx_gain_ipa_5g[] = {
2690	0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
2691	0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
2692	0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
2693	0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
2694	0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
2695	0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
2696	0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
2697	0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
2698	0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
2699	0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
2700	0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
2701	0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
2702	0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
2703	0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
2704	0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
2705	0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
2706	0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
2707	0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
2708	0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
2709	0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
2710	0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
2711	0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
2712	0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
2713	0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
2714	0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
2715	0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
2716	0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
2717	0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
2718	0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
2719	0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
2720	0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
2721	0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
2722};
2723
2724const u16 tbl_iqcal_gainparams[2][9][8] = {
2725	{
2726		{ 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
2727		{ 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
2728		{ 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
2729		{ 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
2730		{ 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
2731		{ 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
2732		{ 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
2733		{ 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
2734		{ 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
2735	},
2736	{
2737		{ 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2738		{ 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2739		{ 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
2740		{ 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
2741		{ 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
2742		{ 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
2743		{ 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
2744		{ 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
2745		{ 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
2746	}
2747};
2748
2749const struct nphy_txiqcal_ladder ladder_lo[] = {
2750	{ 3, 0 },
2751	{ 4, 0 },
2752	{ 6, 0 },
2753	{ 9, 0 },
2754	{ 13, 0 },
2755	{ 18, 0 },
2756	{ 25, 0 },
2757	{ 25, 1 },
2758	{ 25, 2 },
2759	{ 25, 3 },
2760	{ 25, 4 },
2761	{ 25, 5 },
2762	{ 25, 6 },
2763	{ 25, 7 },
2764	{ 35, 7 },
2765	{ 50, 7 },
2766	{ 71, 7 },
2767	{ 100, 7 }
2768};
2769
2770const struct nphy_txiqcal_ladder ladder_iq[] = {
2771	{ 3, 0 },
2772	{ 4, 0 },
2773	{ 6, 0 },
2774	{ 9, 0 },
2775	{ 13, 0 },
2776	{ 18, 0 },
2777	{ 25, 0 },
2778	{ 35, 0 },
2779	{ 50, 0 },
2780	{ 71, 0 },
2781	{ 100, 0 },
2782	{ 100, 1 },
2783	{ 100, 2 },
2784	{ 100, 3 },
2785	{ 100, 4 },
2786	{ 100, 5 },
2787	{ 100, 6 },
2788	{ 100, 7 }
2789};
2790
2791const u16 loscale[] = {
2792	256, 256, 271, 271,
2793	287, 256, 256, 271,
2794	271, 287, 287, 304,
2795	304, 256, 256, 271,
2796	271, 287, 287, 304,
2797	304, 322, 322, 341,
2798	341, 362, 362, 383,
2799	383, 256, 256, 271,
2800	271, 287, 287, 304,
2801	304, 322, 322, 256,
2802	256, 271, 271, 287,
2803	287, 304, 304, 322,
2804	322, 341, 341, 362,
2805	362, 256, 256, 271,
2806	271, 287, 287, 304,
2807	304, 322, 322, 256,
2808	256, 271, 271, 287,
2809	287, 304, 304, 322,
2810	322, 341, 341, 362,
2811	362, 256, 256, 271,
2812	271, 287, 287, 304,
2813	304, 322, 322, 341,
2814	341, 362, 362, 383,
2815	383, 406, 406, 430,
2816	430, 455, 455, 482,
2817	482, 511, 511, 541,
2818	541, 573, 573, 607,
2819	607, 643, 643, 681,
2820	681, 722, 722, 764,
2821	764, 810, 810, 858,
2822	858, 908, 908, 962,
2823	962, 1019, 1019, 256
2824};
2825
2826const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
2827	0x0200, 0x0300, 0x0400, 0x0700,
2828	0x0900, 0x0c00, 0x1200, 0x1201,
2829	0x1202, 0x1203, 0x1204, 0x1205,
2830	0x1206, 0x1207, 0x1907, 0x2307,
2831	0x3207, 0x4707
2832};
2833
2834const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
2835	0x0300, 0x0500, 0x0700, 0x0900,
2836	0x0d00, 0x1100, 0x1900, 0x1901,
2837	0x1902, 0x1903, 0x1904, 0x1905,
2838	0x1906, 0x1907, 0x2407, 0x3207,
2839	0x4607, 0x6407
2840};
2841
2842const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
2843	0x0100, 0x0200, 0x0400, 0x0700,
2844	0x0900, 0x0c00, 0x1200, 0x1900,
2845	0x2300, 0x3200, 0x4700, 0x4701,
2846	0x4702, 0x4703, 0x4704, 0x4705,
2847	0x4706, 0x4707
2848};
2849
2850const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
2851	0x0200, 0x0300, 0x0600, 0x0900,
2852	0x0d00, 0x1100, 0x1900, 0x2400,
2853	0x3200, 0x4600, 0x6400, 0x6401,
2854	0x6402, 0x6403, 0x6404, 0x6405,
2855	0x6406, 0x6407
2856};
2857
2858const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[B43_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
2859
2860const u16 tbl_tx_iqlo_cal_startcoefs[B43_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
2861
2862const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
2863	0x8423, 0x8323, 0x8073, 0x8256,
2864	0x8045, 0x8223, 0x9423, 0x9323,
2865	0x9073, 0x9256, 0x9045, 0x9223
2866};
2867
2868const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
2869	0x8101, 0x8253, 0x8053, 0x8234,
2870	0x8034, 0x9101, 0x9253, 0x9053,
2871	0x9234, 0x9034
2872};
2873
2874const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
2875	0x8123, 0x8264, 0x8086, 0x8245,
2876	0x8056, 0x9123, 0x9264, 0x9086,
2877	0x9245, 0x9056
2878};
2879
2880const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
2881	0x8434, 0x8334, 0x8084, 0x8267,
2882	0x8056, 0x8234, 0x9434, 0x9334,
2883	0x9084, 0x9267, 0x9056, 0x9234
2884};
2885
2886const s16 tbl_tx_filter_coef_rev4[7][15] = {
2887	{  -377,   137,  -407,   208, -1527,
2888	    956,    93,   186,    93,   230,
2889	    -44,   230,    20,  -191,   201 },
2890	{   -77,    20,   -98,    49,   -93,
2891	     60,    56,   111,    56,    26,
2892	     -5,    26,    34,   -32,    34 },
2893	{  -360,   164,  -376,   164, -1533,
2894	    576,   308,  -314,   308,   121,
2895	    -73,   121,    91,   124,    91 },
2896	{  -295,   200,  -363,   142, -1391,
2897	    826,   151,   301,   151,   151,
2898	    301,   151,   602,  -752,   602 },
2899	{   -92,    58,   -96,    49,  -104,
2900	     44,    17,    35,    17,    12,
2901	     25,    12,    13,    27,    13 },
2902	{  -375,   136,  -399,   209, -1479,
2903	    949,   130,   260,   130,   230,
2904	    -44,   230,   201,  -191,   201 },
2905	{ 0xed9,  0xc8, 0xe95,  0x8e, 0xa91,
2906	  0x33a,  0x97, 0x12d,  0x97,  0x97,
2907	  0x12d,  0x97, 0x25a, 0xd10, 0x25a }
2908};
2909
2910/* addr0,  addr1,  bmask,  shift */
2911const struct nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
2912	{ 0x78, 0x78, 0x0038,  3 }, /* for field == 0x0002 (fls == 2) */
2913	{ 0x7A, 0x7D, 0x0001,  0 }, /* for field == 0x0004 (fls == 3) */
2914	{ 0x7A, 0x7D, 0x0002,  1 }, /* for field == 0x0008 (fls == 4) */
2915	{ 0x7A, 0x7D, 0x0004,  2 }, /* for field == 0x0010 (fls == 5) */
2916	{ 0x7A, 0x7D, 0x0030,  4 }, /* for field == 0x0020 (fls == 6) */
2917	{ 0x7A, 0x7D, 0x00C0,  6 }, /* for field == 0x0040 (fls == 7) */
2918	{ 0x7A, 0x7D, 0x0100,  8 }, /* for field == 0x0080 (fls == 8) */
2919	{ 0x7A, 0x7D, 0x0200,  9 }, /* for field == 0x0100 (fls == 9) */
2920	{ 0x78, 0x78, 0x0004,  2 }, /* for field == 0x0200 (fls == 10) */
2921	{ 0x7B, 0x7E, 0x01FF,  0 }, /* for field == 0x0400 (fls == 11) */
2922	{ 0x7C, 0x7F, 0x01FF,  0 }, /* for field == 0x0800 (fls == 12) */
2923	{ 0x78, 0x78, 0x0100,  8 }, /* for field == 0x1000 (fls == 13) */
2924	{ 0x78, 0x78, 0x0200,  9 }, /* for field == 0x2000 (fls == 14) */
2925	{ 0x78, 0x78, 0xF000, 12 }  /* for field == 0x4000 (fls == 15) */
2926};
2927
2928/* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
2929const struct nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
2930	{ 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
2931	{ 0x0001,  0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
2932	{ 0x0002,  1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
2933	{ 0x0004,  2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
2934	{ 0x0016,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
2935	{ 0x0020,  5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
2936	{ 0x0040,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
2937	{ 0x0080,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
2938	{ 0x0100,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
2939	{ 0x0007,  0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
2940	{ 0x0070,  4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
2941	{ 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
2942	{ 0xFFFF,  0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
2943	{ 0xFFFF,  0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
2944	{ 0x00C0,  6, 0xE7, 0xF9, 0xEC, 0xFB }  /* field == 0x4000 (fls 15) */
2945};
2946
2947static inline void assert_ntab_array_sizes(void)
2948{
2949#undef check
2950#define check(table, size)	\
2951	BUILD_BUG_ON(ARRAY_SIZE(b43_ntab_##table) != B43_NTAB_##size##_SIZE)
2952
2953	check(adjustpower0, C0_ADJPLT);
2954	check(adjustpower1, C1_ADJPLT);
2955	check(bdi, BDI);
2956	check(channelest, CHANEST);
2957	check(estimatepowerlt0, C0_ESTPLT);
2958	check(estimatepowerlt1, C1_ESTPLT);
2959	check(framelookup, FRAMELT);
2960	check(framestruct, FRAMESTRUCT);
2961	check(gainctl0, C0_GAINCTL);
2962	check(gainctl1, C1_GAINCTL);
2963	check(intlevel, INTLEVEL);
2964	check(iqlt0, C0_IQLT);
2965	check(iqlt1, C1_IQLT);
2966	check(loftlt0, C0_LOFEEDTH);
2967	check(loftlt1, C1_LOFEEDTH);
2968	check(mcs, MCS);
2969	check(noisevar10, NOISEVAR10);
2970	check(noisevar11, NOISEVAR11);
2971	check(pilot, PILOT);
2972	check(pilotlt, PILOTLT);
2973	check(tdi20a0, TDI20A0);
2974	check(tdi20a1, TDI20A1);
2975	check(tdi40a0, TDI40A0);
2976	check(tdi40a1, TDI40A1);
2977	check(tdtrn, TDTRN);
2978	check(tmap, TMAP);
2979
2980#undef check
2981}
2982
2983u32 b43_ntab_read(struct b43_wldev *dev, u32 offset)
2984{
2985	u32 type, value;
2986
2987	type = offset & B43_NTAB_TYPEMASK;
2988	offset &= ~B43_NTAB_TYPEMASK;
2989	B43_WARN_ON(offset > 0xFFFF);
2990
2991	switch (type) {
2992	case B43_NTAB_8BIT:
2993		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2994		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
2995		break;
2996	case B43_NTAB_16BIT:
2997		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2998		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2999		break;
3000	case B43_NTAB_32BIT:
3001		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3002		value = b43_phy_read(dev, B43_NPHY_TABLE_DATAHI);
3003		value <<= 16;
3004		value |= b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
3005		break;
3006	default:
3007		B43_WARN_ON(1);
3008		value = 0;
3009	}
3010
3011	return value;
3012}
3013
3014void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset,
3015			 unsigned int nr_elements, void *_data)
3016{
3017	u32 type;
3018	u8 *data = _data;
3019	unsigned int i;
3020
3021	type = offset & B43_NTAB_TYPEMASK;
3022	offset &= ~B43_NTAB_TYPEMASK;
3023	B43_WARN_ON(offset > 0xFFFF);
3024
3025	b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3026
3027	for (i = 0; i < nr_elements; i++) {
3028		switch (type) {
3029		case B43_NTAB_8BIT:
3030			*data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
3031			data++;
3032			break;
3033		case B43_NTAB_16BIT:
3034			*((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
3035			data += 2;
3036			break;
3037		case B43_NTAB_32BIT:
3038			*((u32 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATAHI);
3039			*((u32 *)data) <<= 16;
3040			*((u32 *)data) |= b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
3041			data += 4;
3042			break;
3043		default:
3044			B43_WARN_ON(1);
3045		}
3046	}
3047}
3048
3049void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value)
3050{
3051	u32 type;
3052
3053	type = offset & B43_NTAB_TYPEMASK;
3054	offset &= 0xFFFF;
3055
3056	switch (type) {
3057	case B43_NTAB_8BIT:
3058		B43_WARN_ON(value & ~0xFF);
3059		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3060		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3061		break;
3062	case B43_NTAB_16BIT:
3063		B43_WARN_ON(value & ~0xFFFF);
3064		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3065		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3066		break;
3067	case B43_NTAB_32BIT:
3068		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3069		b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
3070		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF);
3071		break;
3072	default:
3073		B43_WARN_ON(1);
3074	}
3075
3076	return;
3077
3078	/* Some compiletime assertions... */
3079	assert_ntab_array_sizes();
3080}
3081
3082void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset,
3083			  unsigned int nr_elements, const void *_data)
3084{
3085	u32 type, value;
3086	const u8 *data = _data;
3087	unsigned int i;
3088
3089	type = offset & B43_NTAB_TYPEMASK;
3090	offset &= ~B43_NTAB_TYPEMASK;
3091	B43_WARN_ON(offset > 0xFFFF);
3092
3093	b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3094
3095	for (i = 0; i < nr_elements; i++) {
3096		switch (type) {
3097		case B43_NTAB_8BIT:
3098			value = *data;
3099			data++;
3100			B43_WARN_ON(value & ~0xFF);
3101			b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3102			break;
3103		case B43_NTAB_16BIT:
3104			value = *((u16 *)data);
3105			data += 2;
3106			B43_WARN_ON(value & ~0xFFFF);
3107			b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3108			break;
3109		case B43_NTAB_32BIT:
3110			value = *((u32 *)data);
3111			data += 4;
3112			b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
3113			b43_phy_write(dev, B43_NPHY_TABLE_DATALO,
3114					value & 0xFFFF);
3115			break;
3116		default:
3117			B43_WARN_ON(1);
3118		}
3119	}
3120}
3121
3122#define ntab_upload(dev, offset, data) do { \
3123		unsigned int i;						\
3124		for (i = 0; i < (offset##_SIZE); i++)			\
3125			b43_ntab_write(dev, (offset) + i, (data)[i]);	\
3126	} while (0)
3127
3128void b43_nphy_rev0_1_2_tables_init(struct b43_wldev *dev)
3129{
3130	/* Static tables */
3131	ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct);
3132	ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup);
3133	ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap);
3134	ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn);
3135	ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel);
3136	ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot);
3137	ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt);
3138	ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0);
3139	ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1);
3140	ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0);
3141	ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1);
3142	ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi);
3143	ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest);
3144	ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs);
3145
3146	/* Volatile tables */
3147	ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10);
3148	ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11);
3149	ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0);
3150	ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1);
3151	ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0);
3152	ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1);
3153	ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0);
3154	ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1);
3155	ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0);
3156	ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1);
3157	ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0);
3158	ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1);
3159}
3160
3161void b43_nphy_rev3plus_tables_init(struct b43_wldev *dev)
3162{
3163	/* Static tables */
3164	/* TODO */
3165
3166	/* Volatile tables */
3167	/* TODO */
3168}
3169