1 /*
2 
3   Broadcom B43 wireless driver
4   IEEE 802.11n PHY and radio device data tables
5 
6   Copyright (c) 2008 Michael Buesch <m@bues.ch>
7   Copyright (c) 2010 Rafał Miłecki <zajec5@gmail.com>
8 
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 2 of the License, or
12   (at your option) any later version.
13 
14   This program is distributed in the hope that it will be useful,
15   but WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   GNU General Public License for more details.
18 
19   You should have received a copy of the GNU General Public License
20   along with this program; see the file COPYING.  If not, write to
21   the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
22   Boston, MA 02110-1301, USA.
23 
24 */
25 
26 #include "b43.h"
27 #include "radio_2055.h"
28 #include "phy_common.h"
29 
30 struct b2055_inittab_entry {
31 	/* Value to write if we use the 5GHz band. */
32 	u16 ghz5;
33 	/* Value to write if we use the 2.4GHz band. */
34 	u16 ghz2;
35 	/* Flags */
36 	u8 flags;
37 #define B2055_INITTAB_ENTRY_OK	0x01
38 #define B2055_INITTAB_UPLOAD	0x02
39 };
40 #define UPLOAD		.flags = B2055_INITTAB_ENTRY_OK | B2055_INITTAB_UPLOAD
41 #define NOUPLOAD	.flags = B2055_INITTAB_ENTRY_OK
42 
43 static const struct b2055_inittab_entry b2055_inittab [] = {
44   [B2055_SP_PINPD]		= { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
45   [B2055_C1_SP_RSSI]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
46   [B2055_C1_SP_PDMISC]		= { .ghz5 = 0x0027, .ghz2 = 0x0027, NOUPLOAD, },
47   [B2055_C2_SP_RSSI]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
48   [B2055_C2_SP_PDMISC]		= { .ghz5 = 0x0027, .ghz2 = 0x0027, NOUPLOAD, },
49   [B2055_C1_SP_RXGC1]		= { .ghz5 = 0x007F, .ghz2 = 0x007F, UPLOAD, },
50   [B2055_C1_SP_RXGC2]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, UPLOAD, },
51   [B2055_C2_SP_RXGC1]		= { .ghz5 = 0x007F, .ghz2 = 0x007F, UPLOAD, },
52   [B2055_C2_SP_RXGC2]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, UPLOAD, },
53   [B2055_C1_SP_LPFBWSEL]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
54   [B2055_C2_SP_LPFBWSEL]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
55   [B2055_C1_SP_TXGC1]		= { .ghz5 = 0x004F, .ghz2 = 0x004F, UPLOAD, },
56   [B2055_C1_SP_TXGC2]		= { .ghz5 = 0x0005, .ghz2 = 0x0005, UPLOAD, },
57   [B2055_C2_SP_TXGC1]		= { .ghz5 = 0x004F, .ghz2 = 0x004F, UPLOAD, },
58   [B2055_C2_SP_TXGC2]		= { .ghz5 = 0x0005, .ghz2 = 0x0005, UPLOAD, },
59   [B2055_MASTER1]		= { .ghz5 = 0x00D0, .ghz2 = 0x00D0, NOUPLOAD, },
60   [B2055_MASTER2]		= { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
61   [B2055_PD_LGEN]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
62   [B2055_PD_PLLTS]		= { .ghz5 = 0x0040, .ghz2 = 0x0040, NOUPLOAD, },
63   [B2055_C1_PD_LGBUF]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
64   [B2055_C1_PD_TX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
65   [B2055_C1_PD_RXTX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
66   [B2055_C1_PD_RSSIMISC]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
67   [B2055_C2_PD_LGBUF]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
68   [B2055_C2_PD_TX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
69   [B2055_C2_PD_RXTX]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
70   [B2055_C2_PD_RSSIMISC]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
71   [B2055_PWRDET_LGEN]		= { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
72   [B2055_C1_PWRDET_LGBUF]	= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
73   [B2055_C1_PWRDET_RXTX]	= { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
74   [B2055_C2_PWRDET_LGBUF]	= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
75   [B2055_C2_PWRDET_RXTX]	= { .ghz5 = 0x00C0, .ghz2 = 0x00C0, NOUPLOAD, },
76   [B2055_RRCCAL_CS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
77   [B2055_RRCCAL_NOPTSEL]	= { .ghz5 = 0x002C, .ghz2 = 0x002C, NOUPLOAD, },
78   [B2055_CAL_MISC]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
79   [B2055_CAL_COUT]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
80   [B2055_CAL_COUT2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
81   [B2055_CAL_CVARCTL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
82   [B2055_CAL_RVARCTL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
83   [B2055_CAL_LPOCTL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
84   [B2055_CAL_TS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
85   [B2055_CAL_RCCALRTS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
86   [B2055_CAL_RCALRTS]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
87   [B2055_PADDRV]		= { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
88   [B2055_XOCTL1]		= { .ghz5 = 0x0038, .ghz2 = 0x0038, NOUPLOAD, },
89   [B2055_XOCTL2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
90   [B2055_XOREGUL]		= { .ghz5 = 0x0004, .ghz2 = 0x0004, UPLOAD, },
91   [B2055_XOMISC]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
92   [B2055_PLL_LFC1]		= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
93   [B2055_PLL_CALVTH]		= { .ghz5 = 0x0087, .ghz2 = 0x0087, NOUPLOAD, },
94   [B2055_PLL_LFC2]		= { .ghz5 = 0x0009, .ghz2 = 0x0009, NOUPLOAD, },
95   [B2055_PLL_REF]		= { .ghz5 = 0x0070, .ghz2 = 0x0070, NOUPLOAD, },
96   [B2055_PLL_LFR1]		= { .ghz5 = 0x0011, .ghz2 = 0x0011, NOUPLOAD, },
97   [B2055_PLL_PFDCP]		= { .ghz5 = 0x0018, .ghz2 = 0x0018, UPLOAD, },
98   [B2055_PLL_IDAC_CPOPAMP]	= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
99   [B2055_PLL_CPREG]		= { .ghz5 = 0x0004, .ghz2 = 0x0004, UPLOAD, },
100   [B2055_PLL_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
101   [B2055_RF_PLLMOD0]		= { .ghz5 = 0x009E, .ghz2 = 0x009E, NOUPLOAD, },
102   [B2055_RF_PLLMOD1]		= { .ghz5 = 0x0009, .ghz2 = 0x0009, NOUPLOAD, },
103   [B2055_RF_MMDIDAC1]		= { .ghz5 = 0x00C8, .ghz2 = 0x00C8, UPLOAD, },
104   [B2055_RF_MMDIDAC0]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
105   [B2055_RF_MMDSP]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
106   [B2055_VCO_CAL1]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
107   [B2055_VCO_CAL2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
108   [B2055_VCO_CAL3]		= { .ghz5 = 0x0001, .ghz2 = 0x0001, NOUPLOAD, },
109   [B2055_VCO_CAL4]		= { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
110   [B2055_VCO_CAL5]		= { .ghz5 = 0x0096, .ghz2 = 0x0096, NOUPLOAD, },
111   [B2055_VCO_CAL6]		= { .ghz5 = 0x003E, .ghz2 = 0x003E, NOUPLOAD, },
112   [B2055_VCO_CAL7]		= { .ghz5 = 0x003E, .ghz2 = 0x003E, NOUPLOAD, },
113   [B2055_VCO_CAL8]		= { .ghz5 = 0x0013, .ghz2 = 0x0013, NOUPLOAD, },
114   [B2055_VCO_CAL9]		= { .ghz5 = 0x0002, .ghz2 = 0x0002, NOUPLOAD, },
115   [B2055_VCO_CAL10]		= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
116   [B2055_VCO_CAL11]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
117   [B2055_VCO_CAL12]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
118   [B2055_VCO_CAL13]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
119   [B2055_VCO_CAL14]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
120   [B2055_VCO_CAL15]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
121   [B2055_VCO_CAL16]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
122   [B2055_VCO_KVCO]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
123   [B2055_VCO_CAPTAIL]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
124   [B2055_VCO_IDACVCO]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
125   [B2055_VCO_REG]		= { .ghz5 = 0x0084, .ghz2 = 0x0084, UPLOAD, },
126   [B2055_PLL_RFVTH]		= { .ghz5 = 0x00C3, .ghz2 = 0x00C3, NOUPLOAD, },
127   [B2055_LGBUF_CENBUF]		= { .ghz5 = 0x008F, .ghz2 = 0x008F, NOUPLOAD, },
128   [B2055_LGEN_TUNE1]		= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
129   [B2055_LGEN_TUNE2]		= { .ghz5 = 0x00FF, .ghz2 = 0x00FF, NOUPLOAD, },
130   [B2055_LGEN_IDAC1]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
131   [B2055_LGEN_IDAC2]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
132   [B2055_LGEN_BIASC]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
133   [B2055_LGEN_BIASIDAC]		= { .ghz5 = 0x00CC, .ghz2 = 0x00CC, NOUPLOAD, },
134   [B2055_LGEN_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
135   [B2055_LGEN_DIV]		= { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
136   [B2055_LGEN_SPARE2]		= { .ghz5 = 0x0080, .ghz2 = 0x0080, NOUPLOAD, },
137   [B2055_C1_LGBUF_ATUNE]	= { .ghz5 = 0x00F8, .ghz2 = 0x00F8, NOUPLOAD, },
138   [B2055_C1_LGBUF_GTUNE]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
139   [B2055_C1_LGBUF_DIV]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
140   [B2055_C1_LGBUF_AIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0008, UPLOAD, },
141   [B2055_C1_LGBUF_GIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
142   [B2055_C1_LGBUF_IDACFO]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
143   [B2055_C1_LGBUF_SPARE]	= { .ghz5 = 0x0001, .ghz2 = 0x0001, UPLOAD, },
144   [B2055_C1_RX_RFSPC1]		= { .ghz5 = 0x008A, .ghz2 = 0x008A, NOUPLOAD, },
145   [B2055_C1_RX_RFR1]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
146   [B2055_C1_RX_RFR2]		= { .ghz5 = 0x0083, .ghz2 = 0x0083, NOUPLOAD, },
147   [B2055_C1_RX_RFRCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
148   [B2055_C1_RX_BB_BLCMP]	= { .ghz5 = 0x00A0, .ghz2 = 0x00A0, NOUPLOAD, },
149   [B2055_C1_RX_BB_LPF]		= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
150   [B2055_C1_RX_BB_MIDACHP]	= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
151   [B2055_C1_RX_BB_VGA1IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
152   [B2055_C1_RX_BB_VGA2IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
153   [B2055_C1_RX_BB_VGA3IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
154   [B2055_C1_RX_BB_BUFOCTL]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
155   [B2055_C1_RX_BB_RCCALCTL]	= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
156   [B2055_C1_RX_BB_RSSICTL1]	= { .ghz5 = 0x006A, .ghz2 = 0x006A, UPLOAD, },
157   [B2055_C1_RX_BB_RSSICTL2]	= { .ghz5 = 0x00AB, .ghz2 = 0x00AB, UPLOAD, },
158   [B2055_C1_RX_BB_RSSICTL3]	= { .ghz5 = 0x0013, .ghz2 = 0x0013, UPLOAD, },
159   [B2055_C1_RX_BB_RSSICTL4]	= { .ghz5 = 0x00C1, .ghz2 = 0x00C1, UPLOAD, },
160   [B2055_C1_RX_BB_RSSICTL5]	= { .ghz5 = 0x00AA, .ghz2 = 0x00AA, UPLOAD, },
161   [B2055_C1_RX_BB_REG]		= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
162   [B2055_C1_RX_BB_SPARE1]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
163   [B2055_C1_RX_TXBBRCAL]	= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
164   [B2055_C1_TX_RF_SPGA]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
165   [B2055_C1_TX_RF_SPAD]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
166   [B2055_C1_TX_RF_CNTPGA1]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
167   [B2055_C1_TX_RF_CNTPAD1]	= { .ghz5 = 0x0055, .ghz2 = 0x0055, NOUPLOAD, },
168   [B2055_C1_TX_RF_PGAIDAC]	= { .ghz5 = 0x0097, .ghz2 = 0x0097, UPLOAD, },
169   [B2055_C1_TX_PGAPADTN]	= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
170   [B2055_C1_TX_PADIDAC1]	= { .ghz5 = 0x0014, .ghz2 = 0x0014, UPLOAD, },
171   [B2055_C1_TX_PADIDAC2]	= { .ghz5 = 0x0033, .ghz2 = 0x0033, NOUPLOAD, },
172   [B2055_C1_TX_MXBGTRIM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
173   [B2055_C1_TX_RF_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
174   [B2055_C1_TX_RF_PADTSSI1]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
175   [B2055_C1_TX_RF_PADTSSI2]	= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
176   [B2055_C1_TX_RF_SPARE]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
177   [B2055_C1_TX_RF_IQCAL1]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
178   [B2055_C1_TX_RF_IQCAL2]	= { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
179   [B2055_C1_TXBB_RCCAL]		= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
180   [B2055_C1_TXBB_LPF1]		= { .ghz5 = 0x0028, .ghz2 = 0x0028, NOUPLOAD, },
181   [B2055_C1_TX_VOSCNCL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
182   [B2055_C1_TX_LPF_MXGMIDAC]	= { .ghz5 = 0x004A, .ghz2 = 0x004A, NOUPLOAD, },
183   [B2055_C1_TX_BB_MXGM]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
184   [B2055_C2_LGBUF_ATUNE]	= { .ghz5 = 0x00F8, .ghz2 = 0x00F8, NOUPLOAD, },
185   [B2055_C2_LGBUF_GTUNE]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
186   [B2055_C2_LGBUF_DIV]		= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
187   [B2055_C2_LGBUF_AIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0008, UPLOAD, },
188   [B2055_C2_LGBUF_GIDAC]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
189   [B2055_C2_LGBUF_IDACFO]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
190   [B2055_C2_LGBUF_SPARE]	= { .ghz5 = 0x0001, .ghz2 = 0x0001, UPLOAD, },
191   [B2055_C2_RX_RFSPC1]		= { .ghz5 = 0x008A, .ghz2 = 0x008A, NOUPLOAD, },
192   [B2055_C2_RX_RFR1]		= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
193   [B2055_C2_RX_RFR2]		= { .ghz5 = 0x0083, .ghz2 = 0x0083, NOUPLOAD, },
194   [B2055_C2_RX_RFRCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
195   [B2055_C2_RX_BB_BLCMP]	= { .ghz5 = 0x00A0, .ghz2 = 0x00A0, NOUPLOAD, },
196   [B2055_C2_RX_BB_LPF]		= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
197   [B2055_C2_RX_BB_MIDACHP]	= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
198   [B2055_C2_RX_BB_VGA1IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
199   [B2055_C2_RX_BB_VGA2IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
200   [B2055_C2_RX_BB_VGA3IDAC]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
201   [B2055_C2_RX_BB_BUFOCTL]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
202   [B2055_C2_RX_BB_RCCALCTL]	= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
203   [B2055_C2_RX_BB_RSSICTL1]	= { .ghz5 = 0x006A, .ghz2 = 0x006A, UPLOAD, },
204   [B2055_C2_RX_BB_RSSICTL2]	= { .ghz5 = 0x00AB, .ghz2 = 0x00AB, UPLOAD, },
205   [B2055_C2_RX_BB_RSSICTL3]	= { .ghz5 = 0x0013, .ghz2 = 0x0013, UPLOAD, },
206   [B2055_C2_RX_BB_RSSICTL4]	= { .ghz5 = 0x00C1, .ghz2 = 0x00C1, UPLOAD, },
207   [B2055_C2_RX_BB_RSSICTL5]	= { .ghz5 = 0x00AA, .ghz2 = 0x00AA, UPLOAD, },
208   [B2055_C2_RX_BB_REG]		= { .ghz5 = 0x0087, .ghz2 = 0x0087, UPLOAD, },
209   [B2055_C2_RX_BB_SPARE1]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
210   [B2055_C2_RX_TXBBRCAL]	= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
211   [B2055_C2_TX_RF_SPGA]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
212   [B2055_C2_TX_RF_SPAD]		= { .ghz5 = 0x0007, .ghz2 = 0x0007, NOUPLOAD, },
213   [B2055_C2_TX_RF_CNTPGA1]	= { .ghz5 = 0x0015, .ghz2 = 0x0015, NOUPLOAD, },
214   [B2055_C2_TX_RF_CNTPAD1]	= { .ghz5 = 0x0055, .ghz2 = 0x0055, NOUPLOAD, },
215   [B2055_C2_TX_RF_PGAIDAC]	= { .ghz5 = 0x0097, .ghz2 = 0x0097, UPLOAD, },
216   [B2055_C2_TX_PGAPADTN]	= { .ghz5 = 0x0008, .ghz2 = 0x0008, NOUPLOAD, },
217   [B2055_C2_TX_PADIDAC1]	= { .ghz5 = 0x0014, .ghz2 = 0x0014, UPLOAD, },
218   [B2055_C2_TX_PADIDAC2]	= { .ghz5 = 0x0033, .ghz2 = 0x0033, NOUPLOAD, },
219   [B2055_C2_TX_MXBGTRIM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
220   [B2055_C2_TX_RF_RCAL]		= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
221   [B2055_C2_TX_RF_PADTSSI1]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
222   [B2055_C2_TX_RF_PADTSSI2]	= { .ghz5 = 0x000A, .ghz2 = 0x000A, NOUPLOAD, },
223   [B2055_C2_TX_RF_SPARE]	= { .ghz5 = 0x0003, .ghz2 = 0x0003, UPLOAD, },
224   [B2055_C2_TX_RF_IQCAL1]	= { .ghz5 = 0x002A, .ghz2 = 0x002A, NOUPLOAD, },
225   [B2055_C2_TX_RF_IQCAL2]	= { .ghz5 = 0x00A4, .ghz2 = 0x00A4, NOUPLOAD, },
226   [B2055_C2_TXBB_RCCAL]		= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
227   [B2055_C2_TXBB_LPF1]		= { .ghz5 = 0x0028, .ghz2 = 0x0028, NOUPLOAD, },
228   [B2055_C2_TX_VOSCNCL]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
229   [B2055_C2_TX_LPF_MXGMIDAC]	= { .ghz5 = 0x004A, .ghz2 = 0x004A, NOUPLOAD, },
230   [B2055_C2_TX_BB_MXGM]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
231   [B2055_PRG_GCHP21]		= { .ghz5 = 0x0071, .ghz2 = 0x0071, NOUPLOAD, },
232   [B2055_PRG_GCHP22]		= { .ghz5 = 0x0072, .ghz2 = 0x0072, NOUPLOAD, },
233   [B2055_PRG_GCHP23]		= { .ghz5 = 0x0073, .ghz2 = 0x0073, NOUPLOAD, },
234   [B2055_PRG_GCHP24]		= { .ghz5 = 0x0074, .ghz2 = 0x0074, NOUPLOAD, },
235   [B2055_PRG_GCHP25]		= { .ghz5 = 0x0075, .ghz2 = 0x0075, NOUPLOAD, },
236   [B2055_PRG_GCHP26]		= { .ghz5 = 0x0076, .ghz2 = 0x0076, NOUPLOAD, },
237   [B2055_PRG_GCHP27]		= { .ghz5 = 0x0077, .ghz2 = 0x0077, NOUPLOAD, },
238   [B2055_PRG_GCHP28]		= { .ghz5 = 0x0078, .ghz2 = 0x0078, NOUPLOAD, },
239   [B2055_PRG_GCHP29]		= { .ghz5 = 0x0079, .ghz2 = 0x0079, NOUPLOAD, },
240   [B2055_PRG_GCHP30]		= { .ghz5 = 0x007A, .ghz2 = 0x007A, NOUPLOAD, },
241   [0xC7]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
242   [0xC8]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
243   [0xC9]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
244   [0xCA]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
245   [0xCB]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
246   [0xCC]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
247   [B2055_C1_LNA_GAINBST]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
248   [0xCE]			= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
249   [0xCF]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
250   [0xD0]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
251   [0xD1]			= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
252   [B2055_C1_B0NB_RSSIVCM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
253   [0xD3]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
254   [0xD4]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
255   [0xD5]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
256   [B2055_C1_GENSPARE2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
257   [0xD7]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
258   [0xD8]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
259   [B2055_C2_LNA_GAINBST]	= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
260   [0xDA]			= { .ghz5 = 0x0006, .ghz2 = 0x0006, NOUPLOAD, },
261   [0xDB]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
262   [0xDC]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
263   [0xDD]			= { .ghz5 = 0x0018, .ghz2 = 0x0018, NOUPLOAD, },
264   [B2055_C2_B0NB_RSSIVCM]	= { .ghz5 = 0x0088, .ghz2 = 0x0088, NOUPLOAD, },
265   [0xDF]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
266   [0xE0]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
267   [0xE1]			= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
268   [B2055_C2_GENSPARE2]		= { .ghz5 = 0x0000, .ghz2 = 0x0000, NOUPLOAD, },
269 };
270 
271 #define RADIOREGS(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, \
272 		  r12, r13, r14, r15, r16, r17, r18, r19, r20, r21) \
273 	.radio_pll_ref		= r0,	\
274 	.radio_rf_pllmod0	= r1,	\
275 	.radio_rf_pllmod1	= r2,	\
276 	.radio_vco_captail	= r3,	\
277 	.radio_vco_cal1		= r4,	\
278 	.radio_vco_cal2		= r5,	\
279 	.radio_pll_lfc1		= r6,	\
280 	.radio_pll_lfr1		= r7,	\
281 	.radio_pll_lfc2		= r8,	\
282 	.radio_lgbuf_cenbuf	= r9,	\
283 	.radio_lgen_tune1	= r10,	\
284 	.radio_lgen_tune2	= r11,	\
285 	.radio_c1_lgbuf_atune	= r12,	\
286 	.radio_c1_lgbuf_gtune	= r13,	\
287 	.radio_c1_rx_rfr1	= r14,	\
288 	.radio_c1_tx_pgapadtn	= r15,	\
289 	.radio_c1_tx_mxbgtrim	= r16,	\
290 	.radio_c2_lgbuf_atune	= r17,	\
291 	.radio_c2_lgbuf_gtune	= r18,	\
292 	.radio_c2_rx_rfr1	= r19,	\
293 	.radio_c2_tx_pgapadtn	= r20,	\
294 	.radio_c2_tx_mxbgtrim	= r21
295 
296 #define PHYREGS(r0, r1, r2, r3, r4, r5)	\
297 	.phy_regs.phy_bw1a	= r0,	\
298 	.phy_regs.phy_bw2	= r1,	\
299 	.phy_regs.phy_bw3	= r2,	\
300 	.phy_regs.phy_bw4	= r3,	\
301 	.phy_regs.phy_bw5	= r4,	\
302 	.phy_regs.phy_bw6	= r5
303 
304 static const struct b43_nphy_channeltab_entry_rev2 b43_nphy_channeltab_rev2[] = {
305   {	.channel		= 184,
306 	.freq			= 4920, /* MHz */
307 	.unk2			= 3280,
308 	RADIOREGS(0x71, 0xEC, 0x01, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
309 		  0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F,
310 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
311 	PHYREGS(0x07B4, 0x07B0, 0x07AC, 0x0214, 0x0215, 0x0216),
312   },
313   {	.channel		= 186,
314 	.freq			= 4930, /* MHz */
315 	.unk2			= 3287,
316 	RADIOREGS(0x71, 0xED, 0x01, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
317 		  0x00, 0x8F, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0x0F,
318 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
319 	PHYREGS(0x07B8, 0x07B4, 0x07B0, 0x0213, 0x0214, 0x0215),
320   },
321   {	.channel		= 188,
322 	.freq			= 4940, /* MHz */
323 	.unk2			= 3293,
324 	RADIOREGS(0x71, 0xEE, 0x01, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
325 		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
326 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
327 	PHYREGS(0x07BC, 0x07B8, 0x07B4, 0x0212, 0x0213, 0x0214),
328   },
329   {	.channel		= 190,
330 	.freq			= 4950, /* MHz */
331 	.unk2			= 3300,
332 	RADIOREGS(0x71, 0xEF, 0x01, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
333 		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
334 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
335 	PHYREGS(0x07C0, 0x07BC, 0x07B8, 0x0211, 0x0212, 0x0213),
336   },
337   {	.channel		= 192,
338 	.freq			= 4960, /* MHz */
339 	.unk2			= 3307,
340 	RADIOREGS(0x71, 0xF0, 0x01, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
341 		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
342 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
343 	PHYREGS(0x07C4, 0x07C0, 0x07BC, 0x020F, 0x0211, 0x0212),
344   },
345   {	.channel		= 194,
346 	.freq			= 4970, /* MHz */
347 	.unk2			= 3313,
348 	RADIOREGS(0x71, 0xF1, 0x01, 0x0F, 0xFF, 0x01, 0x04, 0x0A,
349 		  0x00, 0x8F, 0xEE, 0xEE, 0xFF, 0x00, 0x0F, 0x0F,
350 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
351 	PHYREGS(0x07C8, 0x07C4, 0x07C0, 0x020E, 0x020F, 0x0211),
352   },
353   {	.channel		= 196,
354 	.freq			= 4980, /* MHz */
355 	.unk2			= 3320,
356 	RADIOREGS(0x71, 0xF2, 0x01, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
357 		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
358 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
359 	PHYREGS(0x07CC, 0x07C8, 0x07C4, 0x020D, 0x020E, 0x020F),
360   },
361   {	.channel		= 198,
362 	.freq			= 4990, /* MHz */
363 	.unk2			= 3327,
364 	RADIOREGS(0x71, 0xF3, 0x01, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
365 		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
366 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
367 	PHYREGS(0x07D0, 0x07CC, 0x07C8, 0x020C, 0x020D, 0x020E),
368   },
369   {	.channel		= 200,
370 	.freq			= 5000, /* MHz */
371 	.unk2			= 3333,
372 	RADIOREGS(0x71, 0xF4, 0x01, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
373 		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
374 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
375 	PHYREGS(0x07D4, 0x07D0, 0x07CC, 0x020B, 0x020C, 0x020D),
376   },
377   {	.channel		= 202,
378 	.freq			= 5010, /* MHz */
379 	.unk2			= 3340,
380 	RADIOREGS(0x71, 0xF5, 0x01, 0x0E, 0xFF, 0x01, 0x04, 0x0A,
381 		  0x00, 0x8F, 0xDD, 0xDD, 0xFF, 0x00, 0x0F, 0x0F,
382 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
383 	PHYREGS(0x07D8, 0x07D4, 0x07D0, 0x020A, 0x020B, 0x020C),
384   },
385   {	.channel		= 204,
386 	.freq			= 5020, /* MHz */
387 	.unk2			= 3347,
388 	RADIOREGS(0x71, 0xF6, 0x01, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
389 		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
390 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
391 	PHYREGS(0x07DC, 0x07D8, 0x07D4, 0x0209, 0x020A, 0x020B),
392   },
393   {	.channel		= 206,
394 	.freq			= 5030, /* MHz */
395 	.unk2			= 3353,
396 	RADIOREGS(0x71, 0xF7, 0x01, 0x0E, 0xF7, 0x01, 0x04, 0x0A,
397 		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
398 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
399 	PHYREGS(0x07E0, 0x07DC, 0x07D8, 0x0208, 0x0209, 0x020A),
400   },
401   {	.channel		= 208,
402 	.freq			= 5040, /* MHz */
403 	.unk2			= 3360,
404 	RADIOREGS(0x71, 0xF8, 0x01, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
405 		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
406 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
407 	PHYREGS(0x07E4, 0x07E0, 0x07DC, 0x0207, 0x0208, 0x0209),
408   },
409   {	.channel		= 210,
410 	.freq			= 5050, /* MHz */
411 	.unk2			= 3367,
412 	RADIOREGS(0x71, 0xF9, 0x01, 0x0D, 0xEF, 0x01, 0x04, 0x0A,
413 		  0x00, 0x8F, 0xCC, 0xCC, 0xFF, 0x00, 0x0F, 0x0F,
414 		  0x8F, 0xFF, 0x00, 0x0F, 0x0F, 0x8F),
415 	PHYREGS(0x07E8, 0x07E4, 0x07E0, 0x0206, 0x0207, 0x0208),
416   },
417   {	.channel		= 212,
418 	.freq			= 5060, /* MHz */
419 	.unk2			= 3373,
420 	RADIOREGS(0x71, 0xFA, 0x01, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
421 		  0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F,
422 		  0x8E, 0xFF, 0x00, 0x0E, 0x0F, 0x8E),
423 	PHYREGS(0x07EC, 0x07E8, 0x07E4, 0x0205, 0x0206, 0x0207),
424   },
425   {	.channel		= 214,
426 	.freq			= 5070, /* MHz */
427 	.unk2			= 3380,
428 	RADIOREGS(0x71, 0xFB, 0x01, 0x0D, 0xE6, 0x01, 0x04, 0x0A,
429 		  0x00, 0x8F, 0xBB, 0xBB, 0xFF, 0x00, 0x0E, 0x0F,
430 		  0x8E, 0xFF, 0x00, 0x0E, 0x0F, 0x8E),
431 	PHYREGS(0x07F0, 0x07EC, 0x07E8, 0x0204, 0x0205, 0x0206),
432   },
433   {	.channel		= 216,
434 	.freq			= 5080, /* MHz */
435 	.unk2			= 3387,
436 	RADIOREGS(0x71, 0xFC, 0x01, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
437 		  0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F,
438 		  0x8D, 0xEE, 0x00, 0x0E, 0x0F, 0x8D),
439 	PHYREGS(0x07F4, 0x07F0, 0x07EC, 0x0203, 0x0204, 0x0205),
440   },
441   {	.channel		= 218,
442 	.freq			= 5090, /* MHz */
443 	.unk2			= 3393,
444 	RADIOREGS(0x71, 0xFD, 0x01, 0x0D, 0xDE, 0x01, 0x04, 0x0A,
445 		  0x00, 0x8E, 0xBB, 0xBB, 0xEE, 0x00, 0x0E, 0x0F,
446 		  0x8D, 0xEE, 0x00, 0x0E, 0x0F, 0x8D),
447 	PHYREGS(0x07F8, 0x07F4, 0x07F0, 0x0202, 0x0203, 0x0204),
448   },
449   {	.channel		= 220,
450 	.freq			= 5100, /* MHz */
451 	.unk2			= 3400,
452 	RADIOREGS(0x71, 0xFE, 0x01, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
453 		  0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F,
454 		  0x8D, 0xEE, 0x00, 0x0D, 0x0F, 0x8D),
455 	PHYREGS(0x07FC, 0x07F8, 0x07F4, 0x0201, 0x0202, 0x0203),
456   },
457   {	.channel		= 222,
458 	.freq			= 5110, /* MHz */
459 	.unk2			= 3407,
460 	RADIOREGS(0x71, 0xFF, 0x01, 0x0C, 0xD6, 0x01, 0x04, 0x0A,
461 		  0x00, 0x8E, 0xAA, 0xAA, 0xEE, 0x00, 0x0D, 0x0F,
462 		  0x8D, 0xEE, 0x00, 0x0D, 0x0F, 0x8D),
463 	PHYREGS(0x0800, 0x07FC, 0x07F8, 0x0200, 0x0201, 0x0202),
464   },
465   {	.channel		= 224,
466 	.freq			= 5120, /* MHz */
467 	.unk2			= 3413,
468 	RADIOREGS(0x71, 0x00, 0x02, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
469 		  0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F,
470 		  0x8C, 0xDD, 0x00, 0x0D, 0x0F, 0x8C),
471 	PHYREGS(0x0804, 0x0800, 0x07FC, 0x01FF, 0x0200, 0x0201),
472   },
473   {	.channel		= 226,
474 	.freq			= 5130, /* MHz */
475 	.unk2			= 3420,
476 	RADIOREGS(0x71, 0x01, 0x02, 0x0C, 0xCE, 0x01, 0x04, 0x0A,
477 		  0x00, 0x8D, 0xAA, 0xAA, 0xDD, 0x00, 0x0D, 0x0F,
478 		  0x8C, 0xDD, 0x00, 0x0D, 0x0F, 0x8C),
479 	PHYREGS(0x0808, 0x0804, 0x0800, 0x01FE, 0x01FF, 0x0200),
480   },
481   {	.channel		= 228,
482 	.freq			= 5140, /* MHz */
483 	.unk2			= 3427,
484 	RADIOREGS(0x71, 0x02, 0x02, 0x0C, 0xC6, 0x01, 0x04, 0x0A,
485 		  0x00, 0x8D, 0x99, 0x99, 0xDD, 0x00, 0x0C, 0x0E,
486 		  0x8B, 0xDD, 0x00, 0x0C, 0x0E, 0x8B),
487 	PHYREGS(0x080C, 0x0808, 0x0804, 0x01FD, 0x01FE, 0x01FF),
488   },
489   {	.channel		= 32,
490 	.freq			= 5160, /* MHz */
491 	.unk2			= 3440,
492 	RADIOREGS(0x71, 0x04, 0x02, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
493 		  0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D,
494 		  0x8A, 0xCC, 0x00, 0x0B, 0x0D, 0x8A),
495 	PHYREGS(0x0814, 0x0810, 0x080C, 0x01FB, 0x01FC, 0x01FD),
496   },
497   {	.channel		= 34,
498 	.freq			= 5170, /* MHz */
499 	.unk2			= 3447,
500 	RADIOREGS(0x71, 0x05, 0x02, 0x0B, 0xBE, 0x01, 0x04, 0x0A,
501 		  0x00, 0x8C, 0x99, 0x99, 0xCC, 0x00, 0x0B, 0x0D,
502 		  0x8A, 0xCC, 0x00, 0x0B, 0x0D, 0x8A),
503 	PHYREGS(0x0818, 0x0814, 0x0810, 0x01FA, 0x01FB, 0x01FC),
504   },
505   {	.channel		= 36,
506 	.freq			= 5180, /* MHz */
507 	.unk2			= 3453,
508 	RADIOREGS(0x71, 0x06, 0x02, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
509 		  0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C,
510 		  0x89, 0xCC, 0x00, 0x0B, 0x0C, 0x89),
511 	PHYREGS(0x081C, 0x0818, 0x0814, 0x01F9, 0x01FA, 0x01FB),
512   },
513   {	.channel		= 38,
514 	.freq			= 5190, /* MHz */
515 	.unk2			= 3460,
516 	RADIOREGS(0x71, 0x07, 0x02, 0x0B, 0xB6, 0x01, 0x04, 0x0A,
517 		  0x00, 0x8C, 0x88, 0x88, 0xCC, 0x00, 0x0B, 0x0C,
518 		  0x89, 0xCC, 0x00, 0x0B, 0x0C, 0x89),
519 	PHYREGS(0x0820, 0x081C, 0x0818, 0x01F8, 0x01F9, 0x01FA),
520   },
521   {	.channel		= 40,
522 	.freq			= 5200, /* MHz */
523 	.unk2			= 3467,
524 	RADIOREGS(0x71, 0x08, 0x02, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
525 		  0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B,
526 		  0x89, 0xBB, 0x00, 0x0A, 0x0B, 0x89),
527 	PHYREGS(0x0824, 0x0820, 0x081C, 0x01F7, 0x01F8, 0x01F9),
528   },
529   {	.channel		= 42,
530 	.freq			= 5210, /* MHz */
531 	.unk2			= 3473,
532 	RADIOREGS(0x71, 0x09, 0x02, 0x0B, 0xAF, 0x01, 0x04, 0x0A,
533 		  0x00, 0x8B, 0x88, 0x88, 0xBB, 0x00, 0x0A, 0x0B,
534 		  0x89, 0xBB, 0x00, 0x0A, 0x0B, 0x89),
535 	PHYREGS(0x0828, 0x0824, 0x0820, 0x01F6, 0x01F7, 0x01F8),
536   },
537   {	.channel		= 44,
538 	.freq			= 5220, /* MHz */
539 	.unk2			= 3480,
540 	RADIOREGS(0x71, 0x0A, 0x02, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
541 		  0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A,
542 		  0x88, 0xBB, 0x00, 0x09, 0x0A, 0x88),
543 	PHYREGS(0x082C, 0x0828, 0x0824, 0x01F5, 0x01F6, 0x01F7),
544   },
545   {	.channel		= 46,
546 	.freq			= 5230, /* MHz */
547 	.unk2			= 3487,
548 	RADIOREGS(0x71, 0x0B, 0x02, 0x0A, 0xA7, 0x01, 0x04, 0x0A,
549 		  0x00, 0x8B, 0x77, 0x77, 0xBB, 0x00, 0x09, 0x0A,
550 		  0x88, 0xBB, 0x00, 0x09, 0x0A, 0x88),
551 	PHYREGS(0x0830, 0x082C, 0x0828, 0x01F4, 0x01F5, 0x01F6),
552   },
553   {	.channel		= 48,
554 	.freq			= 5240, /* MHz */
555 	.unk2			= 3493,
556 	RADIOREGS(0x71, 0x0C, 0x02, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
557 		  0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A,
558 		  0x87, 0xAA, 0x00, 0x09, 0x0A, 0x87),
559 	PHYREGS(0x0834, 0x0830, 0x082C, 0x01F3, 0x01F4, 0x01F5),
560   },
561   {	.channel		= 50,
562 	.freq			= 5250, /* MHz */
563 	.unk2			= 3500,
564 	RADIOREGS(0x71, 0x0D, 0x02, 0x0A, 0xA0, 0x01, 0x04, 0x0A,
565 		  0x00, 0x8A, 0x77, 0x77, 0xAA, 0x00, 0x09, 0x0A,
566 		  0x87, 0xAA, 0x00, 0x09, 0x0A, 0x87),
567 	PHYREGS(0x0838, 0x0834, 0x0830, 0x01F2, 0x01F3, 0x01F4),
568   },
569   {	.channel		= 52,
570 	.freq			= 5260, /* MHz */
571 	.unk2			= 3507,
572 	RADIOREGS(0x71, 0x0E, 0x02, 0x0A, 0x98, 0x01, 0x04, 0x0A,
573 		  0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09,
574 		  0x87, 0xAA, 0x00, 0x08, 0x09, 0x87),
575 	PHYREGS(0x083C, 0x0838, 0x0834, 0x01F1, 0x01F2, 0x01F3),
576   },
577   {	.channel		= 54,
578 	.freq			= 5270, /* MHz */
579 	.unk2			= 3513,
580 	RADIOREGS(0x71, 0x0F, 0x02, 0x0A, 0x98, 0x01, 0x04, 0x0A,
581 		  0x00, 0x8A, 0x66, 0x66, 0xAA, 0x00, 0x08, 0x09,
582 		  0x87, 0xAA, 0x00, 0x08, 0x09, 0x87),
583 	PHYREGS(0x0840, 0x083C, 0x0838, 0x01F0, 0x01F1, 0x01F2),
584   },
585   {	.channel		= 56,
586 	.freq			= 5280, /* MHz */
587 	.unk2			= 3520,
588 	RADIOREGS(0x71, 0x10, 0x02, 0x09, 0x91, 0x01, 0x04, 0x0A,
589 		  0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08,
590 		  0x86, 0x99, 0x00, 0x08, 0x08, 0x86),
591 	PHYREGS(0x0844, 0x0840, 0x083C, 0x01F0, 0x01F0, 0x01F1),
592   },
593   {	.channel		= 58,
594 	.freq			= 5290, /* MHz */
595 	.unk2			= 3527,
596 	RADIOREGS(0x71, 0x11, 0x02, 0x09, 0x91, 0x01, 0x04, 0x0A,
597 		  0x00, 0x89, 0x66, 0x66, 0x99, 0x00, 0x08, 0x08,
598 		  0x86, 0x99, 0x00, 0x08, 0x08, 0x86),
599 	PHYREGS(0x0848, 0x0844, 0x0840, 0x01EF, 0x01F0, 0x01F0),
600   },
601   {	.channel		= 60,
602 	.freq			= 5300, /* MHz */
603 	.unk2			= 3533,
604 	RADIOREGS(0x71, 0x12, 0x02, 0x09, 0x8A, 0x01, 0x04, 0x0A,
605 		  0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07,
606 		  0x85, 0x99, 0x00, 0x08, 0x07, 0x85),
607 	PHYREGS(0x084C, 0x0848, 0x0844, 0x01EE, 0x01EF, 0x01F0),
608   },
609   {	.channel		= 62,
610 	.freq			= 5310, /* MHz */
611 	.unk2			= 3540,
612 	RADIOREGS(0x71, 0x13, 0x02, 0x09, 0x8A, 0x01, 0x04, 0x0A,
613 		  0x00, 0x89, 0x55, 0x55, 0x99, 0x00, 0x08, 0x07,
614 		  0x85, 0x99, 0x00, 0x08, 0x07, 0x85),
615 	PHYREGS(0x0850, 0x084C, 0x0848, 0x01ED, 0x01EE, 0x01EF),
616   },
617   {	.channel		= 64,
618 	.freq			= 5320, /* MHz */
619 	.unk2			= 3547,
620 	RADIOREGS(0x71, 0x14, 0x02, 0x09, 0x83, 0x01, 0x04, 0x0A,
621 		  0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07,
622 		  0x84, 0x88, 0x00, 0x07, 0x07, 0x84),
623 	PHYREGS(0x0854, 0x0850, 0x084C, 0x01EC, 0x01ED, 0x01EE),
624   },
625   {	.channel		= 66,
626 	.freq			= 5330, /* MHz */
627 	.unk2			= 3553,
628 	RADIOREGS(0x71, 0x15, 0x02, 0x09, 0x83, 0x01, 0x04, 0x0A,
629 		  0x00, 0x88, 0x55, 0x55, 0x88, 0x00, 0x07, 0x07,
630 		  0x84, 0x88, 0x00, 0x07, 0x07, 0x84),
631 	PHYREGS(0x0858, 0x0854, 0x0850, 0x01EB, 0x01EC, 0x01ED),
632   },
633   {	.channel		= 68,
634 	.freq			= 5340, /* MHz */
635 	.unk2			= 3560,
636 	RADIOREGS(0x71, 0x16, 0x02, 0x08, 0x7C, 0x01, 0x04, 0x0A,
637 		  0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06,
638 		  0x84, 0x88, 0x00, 0x07, 0x06, 0x84),
639 	PHYREGS(0x085C, 0x0858, 0x0854, 0x01EA, 0x01EB, 0x01EC),
640   },
641   {	.channel		= 70,
642 	.freq			= 5350, /* MHz */
643 	.unk2			= 3567,
644 	RADIOREGS(0x71, 0x17, 0x02, 0x08, 0x7C, 0x01, 0x04, 0x0A,
645 		  0x00, 0x88, 0x44, 0x44, 0x88, 0x00, 0x07, 0x06,
646 		  0x84, 0x88, 0x00, 0x07, 0x06, 0x84),
647 	PHYREGS(0x0860, 0x085C, 0x0858, 0x01E9, 0x01EA, 0x01EB),
648   },
649   {	.channel		= 72,
650 	.freq			= 5360, /* MHz */
651 	.unk2			= 3573,
652 	RADIOREGS(0x71, 0x18, 0x02, 0x08, 0x75, 0x01, 0x04, 0x0A,
653 		  0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05,
654 		  0x83, 0x77, 0x00, 0x06, 0x05, 0x83),
655 	PHYREGS(0x0864, 0x0860, 0x085C, 0x01E8, 0x01E9, 0x01EA),
656   },
657   {	.channel		= 74,
658 	.freq			= 5370, /* MHz */
659 	.unk2			= 3580,
660 	RADIOREGS(0x71, 0x19, 0x02, 0x08, 0x75, 0x01, 0x04, 0x0A,
661 		  0x00, 0x87, 0x44, 0x44, 0x77, 0x00, 0x06, 0x05,
662 		  0x83, 0x77, 0x00, 0x06, 0x05, 0x83),
663 	PHYREGS(0x0868, 0x0864, 0x0860, 0x01E7, 0x01E8, 0x01E9),
664   },
665   {	.channel		= 76,
666 	.freq			= 5380, /* MHz */
667 	.unk2			= 3587,
668 	RADIOREGS(0x71, 0x1A, 0x02, 0x08, 0x6E, 0x01, 0x04, 0x0A,
669 		  0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04,
670 		  0x82, 0x77, 0x00, 0x06, 0x04, 0x82),
671 	PHYREGS(0x086C, 0x0868, 0x0864, 0x01E6, 0x01E7, 0x01E8),
672   },
673   {	.channel		= 78,
674 	.freq			= 5390, /* MHz */
675 	.unk2			= 3593,
676 	RADIOREGS(0x71, 0x1B, 0x02, 0x08, 0x6E, 0x01, 0x04, 0x0A,
677 		  0x00, 0x87, 0x33, 0x33, 0x77, 0x00, 0x06, 0x04,
678 		  0x82, 0x77, 0x00, 0x06, 0x04, 0x82),
679 	PHYREGS(0x0870, 0x086C, 0x0868, 0x01E5, 0x01E6, 0x01E7),
680   },
681   {	.channel		= 80,
682 	.freq			= 5400, /* MHz */
683 	.unk2			= 3600,
684 	RADIOREGS(0x71, 0x1C, 0x02, 0x07, 0x67, 0x01, 0x04, 0x0A,
685 		  0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04,
686 		  0x81, 0x66, 0x00, 0x05, 0x04, 0x81),
687 	PHYREGS(0x0874, 0x0870, 0x086C, 0x01E5, 0x01E5, 0x01E6),
688   },
689   {	.channel		= 82,
690 	.freq			= 5410, /* MHz */
691 	.unk2			= 3607,
692 	RADIOREGS(0x71, 0x1D, 0x02, 0x07, 0x67, 0x01, 0x04, 0x0A,
693 		  0x00, 0x86, 0x33, 0x33, 0x66, 0x00, 0x05, 0x04,
694 		  0x81, 0x66, 0x00, 0x05, 0x04, 0x81),
695 	PHYREGS(0x0878, 0x0874, 0x0870, 0x01E4, 0x01E5, 0x01E5),
696   },
697   {	.channel		= 84,
698 	.freq			= 5420, /* MHz */
699 	.unk2			= 3613,
700 	RADIOREGS(0x71, 0x1E, 0x02, 0x07, 0x61, 0x01, 0x04, 0x0A,
701 		  0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03,
702 		  0x80, 0x66, 0x00, 0x05, 0x03, 0x80),
703 	PHYREGS(0x087C, 0x0878, 0x0874, 0x01E3, 0x01E4, 0x01E5),
704   },
705   {	.channel		= 86,
706 	.freq			= 5430, /* MHz */
707 	.unk2			= 3620,
708 	RADIOREGS(0x71, 0x1F, 0x02, 0x07, 0x61, 0x01, 0x04, 0x0A,
709 		  0x00, 0x86, 0x22, 0x22, 0x66, 0x00, 0x05, 0x03,
710 		  0x80, 0x66, 0x00, 0x05, 0x03, 0x80),
711 	PHYREGS(0x0880, 0x087C, 0x0878, 0x01E2, 0x01E3, 0x01E4),
712   },
713   {	.channel		= 88,
714 	.freq			= 5440, /* MHz */
715 	.unk2			= 3627,
716 	RADIOREGS(0x71, 0x20, 0x02, 0x07, 0x5A, 0x01, 0x04, 0x0A,
717 		  0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02,
718 		  0x80, 0x55, 0x00, 0x04, 0x02, 0x80),
719 	PHYREGS(0x0884, 0x0880, 0x087C, 0x01E1, 0x01E2, 0x01E3),
720   },
721   {	.channel		= 90,
722 	.freq			= 5450, /* MHz */
723 	.unk2			= 3633,
724 	RADIOREGS(0x71, 0x21, 0x02, 0x07, 0x5A, 0x01, 0x04, 0x0A,
725 		  0x00, 0x85, 0x22, 0x22, 0x55, 0x00, 0x04, 0x02,
726 		  0x80, 0x55, 0x00, 0x04, 0x02, 0x80),
727 	PHYREGS(0x0888, 0x0884, 0x0880, 0x01E0, 0x01E1, 0x01E2),
728   },
729   {	.channel		= 92,
730 	.freq			= 5460, /* MHz */
731 	.unk2			= 3640,
732 	RADIOREGS(0x71, 0x22, 0x02, 0x06, 0x53, 0x01, 0x04, 0x0A,
733 		  0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01,
734 		  0x80, 0x55, 0x00, 0x04, 0x01, 0x80),
735 	PHYREGS(0x088C, 0x0888, 0x0884, 0x01DF, 0x01E0, 0x01E1),
736   },
737   {	.channel		= 94,
738 	.freq			= 5470, /* MHz */
739 	.unk2			= 3647,
740 	RADIOREGS(0x71, 0x23, 0x02, 0x06, 0x53, 0x01, 0x04, 0x0A,
741 		  0x00, 0x85, 0x11, 0x11, 0x55, 0x00, 0x04, 0x01,
742 		  0x80, 0x55, 0x00, 0x04, 0x01, 0x80),
743 	PHYREGS(0x0890, 0x088C, 0x0888, 0x01DE, 0x01DF, 0x01E0),
744   },
745   {	.channel		= 96,
746 	.freq			= 5480, /* MHz */
747 	.unk2			= 3653,
748 	RADIOREGS(0x71, 0x24, 0x02, 0x06, 0x4D, 0x01, 0x04, 0x0A,
749 		  0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00,
750 		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
751 	PHYREGS(0x0894, 0x0890, 0x088C, 0x01DD, 0x01DE, 0x01DF),
752   },
753   {	.channel		= 98,
754 	.freq			= 5490, /* MHz */
755 	.unk2			= 3660,
756 	RADIOREGS(0x71, 0x25, 0x02, 0x06, 0x4D, 0x01, 0x04, 0x0A,
757 		  0x00, 0x84, 0x11, 0x11, 0x44, 0x00, 0x03, 0x00,
758 		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
759 	PHYREGS(0x0898, 0x0894, 0x0890, 0x01DD, 0x01DD, 0x01DE),
760   },
761   {	.channel		= 100,
762 	.freq			= 5500, /* MHz */
763 	.unk2			= 3667,
764 	RADIOREGS(0x71, 0x26, 0x02, 0x06, 0x47, 0x01, 0x04, 0x0A,
765 		  0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00,
766 		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
767 	PHYREGS(0x089C, 0x0898, 0x0894, 0x01DC, 0x01DD, 0x01DD),
768   },
769   {	.channel		= 102,
770 	.freq			= 5510, /* MHz */
771 	.unk2			= 3673,
772 	RADIOREGS(0x71, 0x27, 0x02, 0x06, 0x47, 0x01, 0x04, 0x0A,
773 		  0x00, 0x84, 0x00, 0x00, 0x44, 0x00, 0x03, 0x00,
774 		  0x80, 0x44, 0x00, 0x03, 0x00, 0x80),
775 	PHYREGS(0x08A0, 0x089C, 0x0898, 0x01DB, 0x01DC, 0x01DD),
776   },
777   {	.channel		= 104,
778 	.freq			= 5520, /* MHz */
779 	.unk2			= 3680,
780 	RADIOREGS(0x71, 0x28, 0x02, 0x05, 0x40, 0x01, 0x04, 0x0A,
781 		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
782 		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
783 	PHYREGS(0x08A4, 0x08A0, 0x089C, 0x01DA, 0x01DB, 0x01DC),
784   },
785   {	.channel		= 106,
786 	.freq			= 5530, /* MHz */
787 	.unk2			= 3687,
788 	RADIOREGS(0x71, 0x29, 0x02, 0x05, 0x40, 0x01, 0x04, 0x0A,
789 		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
790 		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
791 	PHYREGS(0x08A8, 0x08A4, 0x08A0, 0x01D9, 0x01DA, 0x01DB),
792   },
793   {	.channel		= 108,
794 	.freq			= 5540, /* MHz */
795 	.unk2			= 3693,
796 	RADIOREGS(0x71, 0x2A, 0x02, 0x05, 0x3A, 0x01, 0x04, 0x0A,
797 		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
798 		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
799 	PHYREGS(0x08AC, 0x08A8, 0x08A4, 0x01D8, 0x01D9, 0x01DA),
800   },
801   {	.channel		= 110,
802 	.freq			= 5550, /* MHz */
803 	.unk2			= 3700,
804 	RADIOREGS(0x71, 0x2B, 0x02, 0x05, 0x3A, 0x01, 0x04, 0x0A,
805 		  0x00, 0x83, 0x00, 0x00, 0x33, 0x00, 0x02, 0x00,
806 		  0x80, 0x33, 0x00, 0x02, 0x00, 0x80),
807 	PHYREGS(0x08B0, 0x08AC, 0x08A8, 0x01D7, 0x01D8, 0x01D9),
808   },
809   {	.channel		= 112,
810 	.freq			= 5560, /* MHz */
811 	.unk2			= 3707,
812 	RADIOREGS(0x71, 0x2C, 0x02, 0x05, 0x34, 0x01, 0x04, 0x0A,
813 		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
814 		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
815 	PHYREGS(0x08B4, 0x08B0, 0x08AC, 0x01D7, 0x01D7, 0x01D8),
816   },
817   {	.channel		= 114,
818 	.freq			= 5570, /* MHz */
819 	.unk2			= 3713,
820 	RADIOREGS(0x71, 0x2D, 0x02, 0x05, 0x34, 0x01, 0x04, 0x0A,
821 		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
822 		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
823 	PHYREGS(0x08B8, 0x08B4, 0x08B0, 0x01D6, 0x01D7, 0x01D7),
824   },
825   {	.channel		= 116,
826 	.freq			= 5580, /* MHz */
827 	.unk2			= 3720,
828 	RADIOREGS(0x71, 0x2E, 0x02, 0x04, 0x2E, 0x01, 0x04, 0x0A,
829 		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
830 		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
831 	PHYREGS(0x08BC, 0x08B8, 0x08B4, 0x01D5, 0x01D6, 0x01D7),
832   },
833   {	.channel		= 118,
834 	.freq			= 5590, /* MHz */
835 	.unk2			= 3727,
836 	RADIOREGS(0x71, 0x2F, 0x02, 0x04, 0x2E, 0x01, 0x04, 0x0A,
837 		  0x00, 0x82, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00,
838 		  0x80, 0x22, 0x00, 0x01, 0x00, 0x80),
839 	PHYREGS(0x08C0, 0x08BC, 0x08B8, 0x01D4, 0x01D5, 0x01D6),
840   },
841   {	.channel		= 120,
842 	.freq			= 5600, /* MHz */
843 	.unk2			= 3733,
844 	RADIOREGS(0x71, 0x30, 0x02, 0x04, 0x28, 0x01, 0x04, 0x0A,
845 		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00,
846 		  0x80, 0x11, 0x00, 0x01, 0x00, 0x80),
847 	PHYREGS(0x08C4, 0x08C0, 0x08BC, 0x01D3, 0x01D4, 0x01D5),
848   },
849   {	.channel		= 122,
850 	.freq			= 5610, /* MHz */
851 	.unk2			= 3740,
852 	RADIOREGS(0x71, 0x31, 0x02, 0x04, 0x28, 0x01, 0x04, 0x0A,
853 		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00,
854 		  0x80, 0x11, 0x00, 0x01, 0x00, 0x80),
855 	PHYREGS(0x08C8, 0x08C4, 0x08C0, 0x01D2, 0x01D3, 0x01D4),
856   },
857   {	.channel		= 124,
858 	.freq			= 5620, /* MHz */
859 	.unk2			= 3747,
860 	RADIOREGS(0x71, 0x32, 0x02, 0x04, 0x21, 0x01, 0x04, 0x0A,
861 		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
862 		  0x80, 0x11, 0x00, 0x00, 0x00, 0x80),
863 	PHYREGS(0x08CC, 0x08C8, 0x08C4, 0x01D2, 0x01D2, 0x01D3),
864   },
865   {	.channel		= 126,
866 	.freq			= 5630, /* MHz */
867 	.unk2			= 3753,
868 	RADIOREGS(0x71, 0x33, 0x02, 0x04, 0x21, 0x01, 0x04, 0x0A,
869 		  0x00, 0x81, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
870 		  0x80, 0x11, 0x00, 0x00, 0x00, 0x80),
871 	PHYREGS(0x08D0, 0x08CC, 0x08C8, 0x01D1, 0x01D2, 0x01D2),
872   },
873   {	.channel		= 128,
874 	.freq			= 5640, /* MHz */
875 	.unk2			= 3760,
876 	RADIOREGS(0x71, 0x34, 0x02, 0x03, 0x1C, 0x01, 0x04, 0x0A,
877 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
878 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
879 	PHYREGS(0x08D4, 0x08D0, 0x08CC, 0x01D0, 0x01D1, 0x01D2),
880   },
881   {	.channel		= 130,
882 	.freq			= 5650, /* MHz */
883 	.unk2			= 3767,
884 	RADIOREGS(0x71, 0x35, 0x02, 0x03, 0x1C, 0x01, 0x04, 0x0A,
885 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
886 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
887 	PHYREGS(0x08D8, 0x08D4, 0x08D0, 0x01CF, 0x01D0, 0x01D1),
888   },
889   {	.channel		= 132,
890 	.freq			= 5660, /* MHz */
891 	.unk2			= 3773,
892 	RADIOREGS(0x71, 0x36, 0x02, 0x03, 0x16, 0x01, 0x04, 0x0A,
893 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
894 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
895 	PHYREGS(0x08DC, 0x08D8, 0x08D4, 0x01CE, 0x01CF, 0x01D0),
896   },
897   {	.channel		= 134,
898 	.freq			= 5670, /* MHz */
899 	.unk2			= 3780,
900 	RADIOREGS(0x71, 0x37, 0x02, 0x03, 0x16, 0x01, 0x04, 0x0A,
901 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
903 	PHYREGS(0x08E0, 0x08DC, 0x08D8, 0x01CE, 0x01CE, 0x01CF),
904   },
905   {	.channel		= 136,
906 	.freq			= 5680, /* MHz */
907 	.unk2			= 3787,
908 	RADIOREGS(0x71, 0x38, 0x02, 0x03, 0x10, 0x01, 0x04, 0x0A,
909 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
911 	PHYREGS(0x08E4, 0x08E0, 0x08DC, 0x01CD, 0x01CE, 0x01CE),
912   },
913   {	.channel		= 138,
914 	.freq			= 5690, /* MHz */
915 	.unk2			= 3793,
916 	RADIOREGS(0x71, 0x39, 0x02, 0x03, 0x10, 0x01, 0x04, 0x0A,
917 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
918 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
919 	PHYREGS(0x08E8, 0x08E4, 0x08E0, 0x01CC, 0x01CD, 0x01CE),
920   },
921   {	.channel		= 140,
922 	.freq			= 5700, /* MHz */
923 	.unk2			= 3800,
924 	RADIOREGS(0x71, 0x3A, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
925 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
926 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
927 	PHYREGS(0x08EC, 0x08E8, 0x08E4, 0x01CB, 0x01CC, 0x01CD),
928   },
929   {	.channel		= 142,
930 	.freq			= 5710, /* MHz */
931 	.unk2			= 3807,
932 	RADIOREGS(0x71, 0x3B, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
933 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
934 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
935 	PHYREGS(0x08F0, 0x08EC, 0x08E8, 0x01CA, 0x01CB, 0x01CC),
936   },
937   {	.channel		= 144,
938 	.freq			= 5720, /* MHz */
939 	.unk2			= 3813,
940 	RADIOREGS(0x71, 0x3C, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
941 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
942 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
943 	PHYREGS(0x08F4, 0x08F0, 0x08EC, 0x01C9, 0x01CA, 0x01CB),
944   },
945   {	.channel		= 145,
946 	.freq			= 5725, /* MHz */
947 	.unk2			= 3817,
948 	RADIOREGS(0x72, 0x79, 0x04, 0x02, 0x03, 0x01, 0x03, 0x14,
949 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
950 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
951 	PHYREGS(0x08F6, 0x08F2, 0x08EE, 0x01C9, 0x01CA, 0x01CB),
952   },
953   {	.channel		= 146,
954 	.freq			= 5730, /* MHz */
955 	.unk2			= 3820,
956 	RADIOREGS(0x71, 0x3D, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
957 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
958 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
959 	PHYREGS(0x08F8, 0x08F4, 0x08F0, 0x01C9, 0x01C9, 0x01CA),
960   },
961   {	.channel		= 147,
962 	.freq			= 5735, /* MHz */
963 	.unk2			= 3823,
964 	RADIOREGS(0x72, 0x7B, 0x04, 0x02, 0x03, 0x01, 0x03, 0x14,
965 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
966 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
967 	PHYREGS(0x08FA, 0x08F6, 0x08F2, 0x01C8, 0x01C9, 0x01CA),
968   },
969   {	.channel		= 148,
970 	.freq			= 5740, /* MHz */
971 	.unk2			= 3827,
972 	RADIOREGS(0x71, 0x3E, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
973 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
974 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
975 	PHYREGS(0x08FC, 0x08F8, 0x08F4, 0x01C8, 0x01C9, 0x01C9),
976   },
977   {	.channel		= 149,
978 	.freq			= 5745, /* MHz */
979 	.unk2			= 3830,
980 	RADIOREGS(0x72, 0x7D, 0x04, 0x02, 0xFE, 0x00, 0x03, 0x14,
981 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
982 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
983 	PHYREGS(0x08FE, 0x08FA, 0x08F6, 0x01C8, 0x01C8, 0x01C9),
984   },
985   {	.channel		= 150,
986 	.freq			= 5750, /* MHz */
987 	.unk2			= 3833,
988 	RADIOREGS(0x71, 0x3F, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
989 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
990 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
991 	PHYREGS(0x0900, 0x08FC, 0x08F8, 0x01C7, 0x01C8, 0x01C9),
992   },
993   {	.channel		= 151,
994 	.freq			= 5755, /* MHz */
995 	.unk2			= 3837,
996 	RADIOREGS(0x72, 0x7F, 0x04, 0x02, 0xFE, 0x00, 0x03, 0x14,
997 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
998 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
999 	PHYREGS(0x0902, 0x08FE, 0x08FA, 0x01C7, 0x01C8, 0x01C8),
1000   },
1001   {	.channel		= 152,
1002 	.freq			= 5760, /* MHz */
1003 	.unk2			= 3840,
1004 	RADIOREGS(0x71, 0x40, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1005 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1006 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1007 	PHYREGS(0x0904, 0x0900, 0x08FC, 0x01C6, 0x01C7, 0x01C8),
1008   },
1009   {	.channel		= 153,
1010 	.freq			= 5765, /* MHz */
1011 	.unk2			= 3843,
1012 	RADIOREGS(0x72, 0x81, 0x04, 0x02, 0xF8, 0x00, 0x03, 0x14,
1013 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1014 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1015 	PHYREGS(0x0906, 0x0902, 0x08FE, 0x01C6, 0x01C7, 0x01C8),
1016   },
1017   {	.channel		= 154,
1018 	.freq			= 5770, /* MHz */
1019 	.unk2			= 3847,
1020 	RADIOREGS(0x71, 0x41, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1021 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1022 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1023 	PHYREGS(0x0908, 0x0904, 0x0900, 0x01C6, 0x01C6, 0x01C7),
1024   },
1025   {	.channel		= 155,
1026 	.freq			= 5775, /* MHz */
1027 	.unk2			= 3850,
1028 	RADIOREGS(0x72, 0x83, 0x04, 0x02, 0xF8, 0x00, 0x03, 0x14,
1029 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1030 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1031 	PHYREGS(0x090A, 0x0906, 0x0902, 0x01C5, 0x01C6, 0x01C7),
1032   },
1033   {	.channel		= 156,
1034 	.freq			= 5780, /* MHz */
1035 	.unk2			= 3853,
1036 	RADIOREGS(0x71, 0x42, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1037 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1038 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1039 	PHYREGS(0x090C, 0x0908, 0x0904, 0x01C5, 0x01C6, 0x01C6),
1040   },
1041   {	.channel		= 157,
1042 	.freq			= 5785, /* MHz */
1043 	.unk2			= 3857,
1044 	RADIOREGS(0x72, 0x85, 0x04, 0x02, 0xF2, 0x00, 0x03, 0x14,
1045 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1046 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1047 	PHYREGS(0x090E, 0x090A, 0x0906, 0x01C4, 0x01C5, 0x01C6),
1048   },
1049   {	.channel		= 158,
1050 	.freq			= 5790, /* MHz */
1051 	.unk2			= 3860,
1052 	RADIOREGS(0x71, 0x43, 0x02, 0x02, 0x0A, 0x01, 0x04, 0x0A,
1053 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1054 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1055 	PHYREGS(0x0910, 0x090C, 0x0908, 0x01C4, 0x01C5, 0x01C6),
1056   },
1057   {	.channel		= 159,
1058 	.freq			= 5795, /* MHz */
1059 	.unk2			= 3863,
1060 	RADIOREGS(0x72, 0x87, 0x04, 0x02, 0xF2, 0x00, 0x03, 0x14,
1061 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1062 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1063 	PHYREGS(0x0912, 0x090E, 0x090A, 0x01C4, 0x01C4, 0x01C5),
1064   },
1065   {	.channel		= 160,
1066 	.freq			= 5800, /* MHz */
1067 	.unk2			= 3867,
1068 	RADIOREGS(0x71, 0x44, 0x02, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1069 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1070 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1071 	PHYREGS(0x0914, 0x0910, 0x090C, 0x01C3, 0x01C4, 0x01C5),
1072   },
1073   {	.channel		= 161,
1074 	.freq			= 5805, /* MHz */
1075 	.unk2			= 3870,
1076 	RADIOREGS(0x72, 0x89, 0x04, 0x01, 0xED, 0x00, 0x03, 0x14,
1077 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1078 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1079 	PHYREGS(0x0916, 0x0912, 0x090E, 0x01C3, 0x01C4, 0x01C4),
1080   },
1081   {	.channel		= 162,
1082 	.freq			= 5810, /* MHz */
1083 	.unk2			= 3873,
1084 	RADIOREGS(0x71, 0x45, 0x02, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1085 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1086 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1087 	PHYREGS(0x0918, 0x0914, 0x0910, 0x01C2, 0x01C3, 0x01C4),
1088   },
1089   {	.channel		= 163,
1090 	.freq			= 5815, /* MHz */
1091 	.unk2			= 3877,
1092 	RADIOREGS(0x72, 0x8B, 0x04, 0x01, 0xED, 0x00, 0x03, 0x14,
1093 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1094 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1095 	PHYREGS(0x091A, 0x0916, 0x0912, 0x01C2, 0x01C3, 0x01C4),
1096   },
1097   {	.channel		= 164,
1098 	.freq			= 5820, /* MHz */
1099 	.unk2			= 3880,
1100 	RADIOREGS(0x71, 0x46, 0x02, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1101 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1102 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1103 	PHYREGS(0x091C, 0x0918, 0x0914, 0x01C2, 0x01C2, 0x01C3),
1104   },
1105   {	.channel		= 165,
1106 	.freq			= 5825, /* MHz */
1107 	.unk2			= 3883,
1108 	RADIOREGS(0x72, 0x8D, 0x04, 0x01, 0xED, 0x00, 0x03, 0x14,
1109 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1110 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1111 	PHYREGS(0x091E, 0x091A, 0x0916, 0x01C1, 0x01C2, 0x01C3),
1112   },
1113   {	.channel		= 166,
1114 	.freq			= 5830, /* MHz */
1115 	.unk2			= 3887,
1116 	RADIOREGS(0x71, 0x47, 0x02, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1117 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1118 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1119 	PHYREGS(0x0920, 0x091C, 0x0918, 0x01C1, 0x01C2, 0x01C2),
1120   },
1121   {	.channel		= 168,
1122 	.freq			= 5840, /* MHz */
1123 	.unk2			= 3893,
1124 	RADIOREGS(0x71, 0x48, 0x02, 0x01, 0x0A, 0x01, 0x04, 0x0A,
1125 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1126 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1127 	PHYREGS(0x0924, 0x0920, 0x091C, 0x01C0, 0x01C1, 0x01C2),
1128   },
1129   {	.channel		= 170,
1130 	.freq			= 5850, /* MHz */
1131 	.unk2			= 3900,
1132 	RADIOREGS(0x71, 0x49, 0x02, 0x01, 0xE0, 0x00, 0x04, 0x0A,
1133 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1134 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1135 	PHYREGS(0x0928, 0x0924, 0x0920, 0x01BF, 0x01C0, 0x01C1),
1136   },
1137   {	.channel		= 172,
1138 	.freq			= 5860, /* MHz */
1139 	.unk2			= 3907,
1140 	RADIOREGS(0x71, 0x4A, 0x02, 0x01, 0xDE, 0x00, 0x04, 0x0A,
1141 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1142 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1143 	PHYREGS(0x092C, 0x0928, 0x0924, 0x01BF, 0x01BF, 0x01C0),
1144   },
1145   {	.channel		= 174,
1146 	.freq			= 5870, /* MHz */
1147 	.unk2			= 3913,
1148 	RADIOREGS(0x71, 0x4B, 0x02, 0x00, 0xDB, 0x00, 0x04, 0x0A,
1149 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1150 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1151 	PHYREGS(0x0930, 0x092C, 0x0928, 0x01BE, 0x01BF, 0x01BF),
1152   },
1153   {	.channel		= 176,
1154 	.freq			= 5880, /* MHz */
1155 	.unk2			= 3920,
1156 	RADIOREGS(0x71, 0x4C, 0x02, 0x00, 0xD8, 0x00, 0x04, 0x0A,
1157 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1158 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1159 	PHYREGS(0x0934, 0x0930, 0x092C, 0x01BD, 0x01BE, 0x01BF),
1160   },
1161   {	.channel		= 178,
1162 	.freq			= 5890, /* MHz */
1163 	.unk2			= 3927,
1164 	RADIOREGS(0x71, 0x4D, 0x02, 0x00, 0xD6, 0x00, 0x04, 0x0A,
1165 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1166 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1167 	PHYREGS(0x0938, 0x0934, 0x0930, 0x01BC, 0x01BD, 0x01BE),
1168   },
1169   {	.channel		= 180,
1170 	.freq			= 5900, /* MHz */
1171 	.unk2			= 3933,
1172 	RADIOREGS(0x71, 0x4E, 0x02, 0x00, 0xD3, 0x00, 0x04, 0x0A,
1173 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1174 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1175 	PHYREGS(0x093C, 0x0938, 0x0934, 0x01BC, 0x01BC, 0x01BD),
1176   },
1177   {	.channel		= 182,
1178 	.freq			= 5910, /* MHz */
1179 	.unk2			= 3940,
1180 	RADIOREGS(0x71, 0x4F, 0x02, 0x00, 0xD6, 0x00, 0x04, 0x0A,
1181 		  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1182 		  0x80, 0x00, 0x00, 0x00, 0x00, 0x80),
1183 	PHYREGS(0x0940, 0x093C, 0x0938, 0x01BB, 0x01BC, 0x01BC),
1184   },
1185   {	.channel		= 1,
1186 	.freq			= 2412, /* MHz */
1187 	.unk2			= 3216,
1188 	RADIOREGS(0x73, 0x6C, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1189 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0D, 0x0C,
1190 		  0x80, 0xFF, 0x88, 0x0D, 0x0C, 0x80),
1191 	PHYREGS(0x03C9, 0x03C5, 0x03C1, 0x043A, 0x043F, 0x0443),
1192   },
1193   {	.channel		= 2,
1194 	.freq			= 2417, /* MHz */
1195 	.unk2			= 3223,
1196 	RADIOREGS(0x73, 0x71, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1197 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0B,
1198 		  0x80, 0xFF, 0x88, 0x0C, 0x0B, 0x80),
1199 	PHYREGS(0x03CB, 0x03C7, 0x03C3, 0x0438, 0x043D, 0x0441),
1200   },
1201   {	.channel		= 3,
1202 	.freq			= 2422, /* MHz */
1203 	.unk2			= 3229,
1204 	RADIOREGS(0x73, 0x76, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1205 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A,
1206 		  0x80, 0xFF, 0x88, 0x0C, 0x0A, 0x80),
1207 	PHYREGS(0x03CD, 0x03C9, 0x03C5, 0x0436, 0x043A, 0x043F),
1208   },
1209   {	.channel		= 4,
1210 	.freq			= 2427, /* MHz */
1211 	.unk2			= 3236,
1212 	RADIOREGS(0x73, 0x7B, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1213 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x0A,
1214 		  0x80, 0xFF, 0x88, 0x0C, 0x0A, 0x80),
1215 	PHYREGS(0x03CF, 0x03CB, 0x03C7, 0x0434, 0x0438, 0x043D),
1216   },
1217   {	.channel		= 5,
1218 	.freq			= 2432, /* MHz */
1219 	.unk2			= 3243,
1220 	RADIOREGS(0x73, 0x80, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1221 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0C, 0x09,
1222 		  0x80, 0xFF, 0x88, 0x0C, 0x09, 0x80),
1223 	PHYREGS(0x03D1, 0x03CD, 0x03C9, 0x0431, 0x0436, 0x043A),
1224   },
1225   {	.channel		= 6,
1226 	.freq			= 2437, /* MHz */
1227 	.unk2			= 3249,
1228 	RADIOREGS(0x73, 0x85, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1229 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0B, 0x08,
1230 		  0x80, 0xFF, 0x88, 0x0B, 0x08, 0x80),
1231 	PHYREGS(0x03D3, 0x03CF, 0x03CB, 0x042F, 0x0434, 0x0438),
1232   },
1233   {	.channel		= 7,
1234 	.freq			= 2442, /* MHz */
1235 	.unk2			= 3256,
1236 	RADIOREGS(0x73, 0x8A, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1237 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x07,
1238 		  0x80, 0xFF, 0x88, 0x0A, 0x07, 0x80),
1239 	PHYREGS(0x03D5, 0x03D1, 0x03CD, 0x042D, 0x0431, 0x0436),
1240   },
1241   {	.channel		= 8,
1242 	.freq			= 2447, /* MHz */
1243 	.unk2			= 3263,
1244 	RADIOREGS(0x73, 0x8F, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1245 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x0A, 0x06,
1246 		  0x80, 0xFF, 0x88, 0x0A, 0x06, 0x80),
1247 	PHYREGS(0x03D7, 0x03D3, 0x03CF, 0x042B, 0x042F, 0x0434),
1248   },
1249   {	.channel		= 9,
1250 	.freq			= 2452, /* MHz */
1251 	.unk2			= 3269,
1252 	RADIOREGS(0x73, 0x94, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1253 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x09, 0x06,
1254 		  0x80, 0xFF, 0x88, 0x09, 0x06, 0x80),
1255 	PHYREGS(0x03D9, 0x03D5, 0x03D1, 0x0429, 0x042D, 0x0431),
1256   },
1257   {	.channel		= 10,
1258 	.freq			= 2457, /* MHz */
1259 	.unk2			= 3276,
1260 	RADIOREGS(0x73, 0x99, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1261 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x05,
1262 		  0x80, 0xFF, 0x88, 0x08, 0x05, 0x80),
1263 	PHYREGS(0x03DB, 0x03D7, 0x03D3, 0x0427, 0x042B, 0x042F),
1264   },
1265   {	.channel		= 11,
1266 	.freq			= 2462, /* MHz */
1267 	.unk2			= 3283,
1268 	RADIOREGS(0x73, 0x9E, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1269 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x04,
1270 		  0x80, 0xFF, 0x88, 0x08, 0x04, 0x80),
1271 	PHYREGS(0x03DD, 0x03D9, 0x03D5, 0x0424, 0x0429, 0x042D),
1272   },
1273   {	.channel		= 12,
1274 	.freq			= 2467, /* MHz */
1275 	.unk2			= 3289,
1276 	RADIOREGS(0x73, 0xA3, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1277 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x08, 0x03,
1278 		  0x80, 0xFF, 0x88, 0x08, 0x03, 0x80),
1279 	PHYREGS(0x03DF, 0x03DB, 0x03D7, 0x0422, 0x0427, 0x042B),
1280   },
1281   {	.channel		= 13,
1282 	.freq			= 2472, /* MHz */
1283 	.unk2			= 3296,
1284 	RADIOREGS(0x73, 0xA8, 0x09, 0x0F, 0x00, 0x01, 0x07, 0x15,
1285 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x03,
1286 		  0x80, 0xFF, 0x88, 0x07, 0x03, 0x80),
1287 	PHYREGS(0x03E1, 0x03DD, 0x03D9, 0x0420, 0x0424, 0x0429),
1288   },
1289   {	.channel		= 14,
1290 	.freq			= 2484, /* MHz */
1291 	.unk2			= 3312,
1292 	RADIOREGS(0x73, 0xB4, 0x09, 0x0F, 0xFF, 0x01, 0x07, 0x15,
1293 		  0x01, 0x8F, 0xFF, 0xFF, 0xFF, 0x88, 0x07, 0x01,
1294 		  0x80, 0xFF, 0x88, 0x07, 0x01, 0x80),
1295 	PHYREGS(0x03E6, 0x03E2, 0x03DE, 0x041B, 0x041F, 0x0424),
1296   },
1297 };
1298 
b2055_upload_inittab(struct b43_wldev * dev,bool ghz5,bool ignore_uploadflag)1299 void b2055_upload_inittab(struct b43_wldev *dev,
1300 			  bool ghz5, bool ignore_uploadflag)
1301 {
1302 	const struct b2055_inittab_entry *e;
1303 	unsigned int i, writes = 0;
1304 	u16 value;
1305 
1306 	for (i = 0; i < ARRAY_SIZE(b2055_inittab); i++) {
1307 		e = &(b2055_inittab[i]);
1308 		if (!(e->flags & B2055_INITTAB_ENTRY_OK))
1309 			continue;
1310 		if ((e->flags & B2055_INITTAB_UPLOAD) || ignore_uploadflag) {
1311 			if (ghz5)
1312 				value = e->ghz5;
1313 			else
1314 				value = e->ghz2;
1315 			b43_radio_write16(dev, i, value);
1316 			if (++writes % 4 == 0)
1317 				b43_read32(dev, B43_MMIO_MACCTL); /* flush */
1318 		}
1319 	}
1320 }
1321 
1322 const struct b43_nphy_channeltab_entry_rev2 *
b43_nphy_get_chantabent_rev2(struct b43_wldev * dev,u8 channel)1323 b43_nphy_get_chantabent_rev2(struct b43_wldev *dev, u8 channel)
1324 {
1325 	const struct b43_nphy_channeltab_entry_rev2 *e;
1326 	unsigned int i;
1327 
1328 	for (i = 0; i < ARRAY_SIZE(b43_nphy_channeltab_rev2); i++) {
1329 		e = &(b43_nphy_channeltab_rev2[i]);
1330 		if (e->channel == channel)
1331 			return e;
1332 	}
1333 
1334 	return NULL;
1335 }
1336