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