The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/gnu/dev/bwn/phy_n/if_bwn_radio_2055.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: a5ba9e0525c2760e7e3cf69b12019d17


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.