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