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