root/drivers/net/wireless/broadcom/b43/tables_lpphy.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. b2062_upload_init_table
  2. b2063_upload_init_table
  3. b43_lptab_read
  4. b43_lptab_read_bulk
  5. b43_lptab_write
  6. b43_lptab_write_bulk
  7. lpphy_rev0_1_table_init
  8. lpphy_rev2plus_table_init
  9. lpphy_rev0_1_write_gain_table
  10. lpphy_rev2plus_write_gain_table
  11. lpphy_write_gain_table
  12. lpphy_write_gain_table_bulk
  13. lpphy_init_tx_gain_table

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3 
   4   Broadcom B43 wireless driver
   5   IEEE 802.11a/g LP-PHY and radio device data tables
   6 
   7   Copyright (c) 2009 Michael Buesch <m@bues.ch>
   8   Copyright (c) 2009 Gábor Stefanik <netrolller.3d@gmail.com>
   9 
  10 
  11 */
  12 
  13 #include "b43.h"
  14 #include "tables_lpphy.h"
  15 #include "phy_common.h"
  16 #include "phy_lp.h"
  17 
  18 
  19 /* Entry of the 2062/2063 radio init table */
  20 struct b206x_init_tab_entry {
  21         u16 offset;
  22         u16 value_a;
  23         u16 value_g;
  24         u8 flags;
  25 };
  26 #define B206X_FLAG_A    0x01 /* Flag: Init in A mode */
  27 #define B206X_FLAG_G    0x02 /* Flag: Init in G mode */
  28 
  29 static const struct b206x_init_tab_entry b2062_init_tab[] = {
  30         /* { .offset = B2062_N_COMM1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  31         /* { .offset = 0x0001, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  32         /* { .offset = B2062_N_COMM2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  33         /* { .offset = B2062_N_COMM3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  34         { .offset = B2062_N_COMM4, .value_a = 0x0001, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  35         /* { .offset = B2062_N_COMM5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  36         /* { .offset = B2062_N_COMM6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  37         /* { .offset = B2062_N_COMM7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  38         /* { .offset = B2062_N_COMM8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  39         /* { .offset = B2062_N_COMM9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  40         /* { .offset = B2062_N_COMM10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  41         /* { .offset = B2062_N_COMM11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  42         /* { .offset = B2062_N_COMM12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  43         /* { .offset = B2062_N_COMM13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  44         /* { .offset = B2062_N_COMM14, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  45         /* { .offset = B2062_N_COMM15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  46         /* { .offset = B2062_N_PDN_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  47         { .offset = B2062_N_PDN_CTL1, .value_a = 0x0000, .value_g = 0x00CA, .flags = B206X_FLAG_G, },
  48         /* { .offset = B2062_N_PDN_CTL2, .value_a = 0x0018, .value_g = 0x0018, .flags = 0, }, */
  49         { .offset = B2062_N_PDN_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  50         { .offset = B2062_N_PDN_CTL4, .value_a = 0x0015, .value_g = 0x002A, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  51         /* { .offset = B2062_N_GEN_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  52         /* { .offset = B2062_N_IQ_CALIB, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
  53         { .offset = B2062_N_LGENC, .value_a = 0x00DB, .value_g = 0x00FF, .flags = B206X_FLAG_A, },
  54         /* { .offset = B2062_N_LGENA_LPF, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
  55         /* { .offset = B2062_N_LGENA_BIAS0, .value_a = 0x0041, .value_g = 0x0041, .flags = 0, }, */
  56         /* { .offset = B2062_N_LGNEA_BIAS1, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */
  57         /* { .offset = B2062_N_LGENA_CTL0, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */
  58         /* { .offset = B2062_N_LGENA_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  59         /* { .offset = B2062_N_LGENA_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  60         { .offset = B2062_N_LGENA_TUNE0, .value_a = 0x00DD, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  61         /* { .offset = B2062_N_LGENA_TUNE1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  62         { .offset = B2062_N_LGENA_TUNE2, .value_a = 0x00DD, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  63         { .offset = B2062_N_LGENA_TUNE3, .value_a = 0x0077, .value_g = 0x00B5, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  64         { .offset = B2062_N_LGENA_CTL3, .value_a = 0x0000, .value_g = 0x00FF, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  65         /* { .offset = B2062_N_LGENA_CTL4, .value_a = 0x001F, .value_g = 0x001F, .flags = 0, }, */
  66         /* { .offset = B2062_N_LGENA_CTL5, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */
  67         /* { .offset = B2062_N_LGENA_CTL6, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */
  68         { .offset = B2062_N_LGENA_CTL7, .value_a = 0x0033, .value_g = 0x0033, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  69         /* { .offset = B2062_N_RXA_CTL0, .value_a = 0x0009, .value_g = 0x0009, .flags = 0, }, */
  70         { .offset = B2062_N_RXA_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
  71         /* { .offset = B2062_N_RXA_CTL2, .value_a = 0x0018, .value_g = 0x0018, .flags = 0, }, */
  72         /* { .offset = B2062_N_RXA_CTL3, .value_a = 0x0027, .value_g = 0x0027, .flags = 0, }, */
  73         /* { .offset = B2062_N_RXA_CTL4, .value_a = 0x0028, .value_g = 0x0028, .flags = 0, }, */
  74         /* { .offset = B2062_N_RXA_CTL5, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */
  75         /* { .offset = B2062_N_RXA_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  76         /* { .offset = B2062_N_RXA_CTL7, .value_a = 0x0008, .value_g = 0x0008, .flags = 0, }, */
  77         { .offset = B2062_N_RXBB_CTL0, .value_a = 0x0082, .value_g = 0x0080, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  78         /* { .offset = B2062_N_RXBB_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  79         /* { .offset = B2062_N_RXBB_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  80         /* { .offset = B2062_N_RXBB_GAIN0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  81         { .offset = B2062_N_RXBB_GAIN1, .value_a = 0x0004, .value_g = 0x0004, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  82         { .offset = B2062_N_RXBB_GAIN2, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },
  83         /* { .offset = B2062_N_RXBB_GAIN3, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */
  84         /* { .offset = B2062_N_RXBB_RSSI0, .value_a = 0x0043, .value_g = 0x0043, .flags = 0, }, */
  85         /* { .offset = B2062_N_RXBB_RSSI1, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
  86         /* { .offset = B2062_N_RXBB_CALIB0, .value_a = 0x0010, .value_g = 0x0010, .flags = 0, }, */
  87         /* { .offset = B2062_N_RXBB_CALIB1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  88         /* { .offset = B2062_N_RXBB_CALIB2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
  89         /* { .offset = B2062_N_RXBB_BIAS0, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */
  90         /* { .offset = B2062_N_RXBB_BIAS1, .value_a = 0x002A, .value_g = 0x002A, .flags = 0, }, */
  91         /* { .offset = B2062_N_RXBB_BIAS2, .value_a = 0x00AA, .value_g = 0x00AA, .flags = 0, }, */
  92         /* { .offset = B2062_N_RXBB_BIAS3, .value_a = 0x0021, .value_g = 0x0021, .flags = 0, }, */
  93         /* { .offset = B2062_N_RXBB_BIAS4, .value_a = 0x00AA, .value_g = 0x00AA, .flags = 0, }, */
  94         /* { .offset = B2062_N_RXBB_BIAS5, .value_a = 0x0022, .value_g = 0x0022, .flags = 0, }, */
  95         /* { .offset = B2062_N_RXBB_RSSI2, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
  96         /* { .offset = B2062_N_RXBB_RSSI3, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
  97         /* { .offset = B2062_N_RXBB_RSSI4, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
  98         /* { .offset = B2062_N_RXBB_RSSI5, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
  99         /* { .offset = B2062_N_TX_CTL0, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 100         /* { .offset = B2062_N_TX_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 101         /* { .offset = B2062_N_TX_CTL2, .value_a = 0x0084, .value_g = 0x0084, .flags = 0, }, */
 102         /* { .offset = B2062_N_TX_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 103         { .offset = B2062_N_TX_CTL4, .value_a = 0x0003, .value_g = 0x0003, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 104         { .offset = B2062_N_TX_CTL5, .value_a = 0x0002, .value_g = 0x0002, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 105         /* { .offset = B2062_N_TX_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 106         /* { .offset = B2062_N_TX_CTL7, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */
 107         /* { .offset = B2062_N_TX_CTL8, .value_a = 0x0082, .value_g = 0x0082, .flags = 0, }, */
 108         /* { .offset = B2062_N_TX_CTL9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 109         /* { .offset = B2062_N_TX_CTL_A, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 110         /* { .offset = B2062_N_TX_GC2G, .value_a = 0x00FF, .value_g = 0x00FF, .flags = 0, }, */
 111         /* { .offset = B2062_N_TX_GC5G, .value_a = 0x00FF, .value_g = 0x00FF, .flags = 0, }, */
 112         { .offset = B2062_N_TX_TUNE, .value_a = 0x0088, .value_g = 0x001B, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 113         /* { .offset = B2062_N_TX_PAD, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 114         /* { .offset = B2062_N_TX_PGA, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 115         /* { .offset = B2062_N_TX_PADAUX, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 116         /* { .offset = B2062_N_TX_PGAAUX, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 117         /* { .offset = B2062_N_TSSI_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 118         /* { .offset = B2062_N_TSSI_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 119         /* { .offset = B2062_N_TSSI_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 120         /* { .offset = B2062_N_IQ_CALIB_CTL0, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 121         /* { .offset = B2062_N_IQ_CALIB_CTL1, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 122         /* { .offset = B2062_N_IQ_CALIB_CTL2, .value_a = 0x0032, .value_g = 0x0032, .flags = 0, }, */
 123         /* { .offset = B2062_N_CALIB_TS, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 124         /* { .offset = B2062_N_CALIB_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 125         /* { .offset = B2062_N_CALIB_CTL1, .value_a = 0x0015, .value_g = 0x0015, .flags = 0, }, */
 126         /* { .offset = B2062_N_CALIB_CTL2, .value_a = 0x000F, .value_g = 0x000F, .flags = 0, }, */
 127         /* { .offset = B2062_N_CALIB_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 128         /* { .offset = B2062_N_CALIB_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 129         /* { .offset = B2062_N_CALIB_DBG0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 130         /* { .offset = B2062_N_CALIB_DBG1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 131         /* { .offset = B2062_N_CALIB_DBG2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 132         /* { .offset = B2062_N_CALIB_DBG3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 133         /* { .offset = B2062_N_PSENSE_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 134         /* { .offset = B2062_N_PSENSE_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 135         /* { .offset = B2062_N_PSENSE_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 136         /* { .offset = B2062_N_TEST_BUF0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 137         /* { .offset = B2062_S_COMM1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 138         /* { .offset = B2062_S_RADIO_ID_CODE, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 139         /* { .offset = B2062_S_COMM2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 140         /* { .offset = B2062_S_COMM3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 141         { .offset = B2062_S_COMM4, .value_a = 0x0001, .value_g = 0x0000, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 142         /* { .offset = B2062_S_COMM5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 143         /* { .offset = B2062_S_COMM6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 144         /* { .offset = B2062_S_COMM7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 145         /* { .offset = B2062_S_COMM8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 146         /* { .offset = B2062_S_COMM9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 147         /* { .offset = B2062_S_COMM10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 148         /* { .offset = B2062_S_COMM11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 149         /* { .offset = B2062_S_COMM12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 150         /* { .offset = B2062_S_COMM13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 151         /* { .offset = B2062_S_COMM14, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 152         /* { .offset = B2062_S_COMM15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 153         { .offset = B2062_S_PDS_CTL0, .value_a = 0x00FF, .value_g = 0x00FF, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 154         /* { .offset = B2062_S_PDS_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 155         /* { .offset = B2062_S_PDS_CTL2, .value_a = 0x008E, .value_g = 0x008E, .flags = 0, }, */
 156         /* { .offset = B2062_S_PDS_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 157         /* { .offset = B2062_S_BG_CTL0, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */
 158         /* { .offset = B2062_S_BG_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 159         /* { .offset = B2062_S_BG_CTL2, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */
 160         { .offset = B2062_S_LGENG_CTL0, .value_a = 0x00F8, .value_g = 0x00D8, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 161         { .offset = B2062_S_LGENG_CTL1, .value_a = 0x003C, .value_g = 0x0024, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 162         /* { .offset = B2062_S_LGENG_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 163         /* { .offset = B2062_S_LGENG_CTL3, .value_a = 0x0041, .value_g = 0x0041, .flags = 0, }, */
 164         /* { .offset = B2062_S_LGENG_CTL4, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */
 165         /* { .offset = B2062_S_LGENG_CTL5, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 166         /* { .offset = B2062_S_LGENG_CTL6, .value_a = 0x0022, .value_g = 0x0022, .flags = 0, }, */
 167         /* { .offset = B2062_S_LGENG_CTL7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 168         { .offset = B2062_S_LGENG_CTL8, .value_a = 0x0088, .value_g = 0x0080, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 169         /* { .offset = B2062_S_LGENG_CTL9, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 170         { .offset = B2062_S_LGENG_CTL10, .value_a = 0x0088, .value_g = 0x0080, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 171         /* { .offset = B2062_S_LGENG_CTL11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 172         /* { .offset = B2062_S_REFPLL_CTL0, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 173         /* { .offset = B2062_S_REFPLL_CTL1, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */
 174         /* { .offset = B2062_S_REFPLL_CTL2, .value_a = 0x00AF, .value_g = 0x00AF, .flags = 0, }, */
 175         /* { .offset = B2062_S_REFPLL_CTL3, .value_a = 0x0012, .value_g = 0x0012, .flags = 0, }, */
 176         /* { .offset = B2062_S_REFPLL_CTL4, .value_a = 0x000B, .value_g = 0x000B, .flags = 0, }, */
 177         /* { .offset = B2062_S_REFPLL_CTL5, .value_a = 0x005F, .value_g = 0x005F, .flags = 0, }, */
 178         /* { .offset = B2062_S_REFPLL_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 179         /* { .offset = B2062_S_REFPLL_CTL7, .value_a = 0x0040, .value_g = 0x0040, .flags = 0, }, */
 180         /* { .offset = B2062_S_REFPLL_CTL8, .value_a = 0x0052, .value_g = 0x0052, .flags = 0, }, */
 181         /* { .offset = B2062_S_REFPLL_CTL9, .value_a = 0x0026, .value_g = 0x0026, .flags = 0, }, */
 182         /* { .offset = B2062_S_REFPLL_CTL10, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */
 183         /* { .offset = B2062_S_REFPLL_CTL11, .value_a = 0x0036, .value_g = 0x0036, .flags = 0, }, */
 184         /* { .offset = B2062_S_REFPLL_CTL12, .value_a = 0x0057, .value_g = 0x0057, .flags = 0, }, */
 185         /* { .offset = B2062_S_REFPLL_CTL13, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */
 186         /* { .offset = B2062_S_REFPLL_CTL14, .value_a = 0x0075, .value_g = 0x0075, .flags = 0, }, */
 187         /* { .offset = B2062_S_REFPLL_CTL15, .value_a = 0x00B4, .value_g = 0x00B4, .flags = 0, }, */
 188         /* { .offset = B2062_S_REFPLL_CTL16, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 189         { .offset = B2062_S_RFPLL_CTL0, .value_a = 0x0098, .value_g = 0x0098, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 190         { .offset = B2062_S_RFPLL_CTL1, .value_a = 0x0010, .value_g = 0x0010, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 191         /* { .offset = B2062_S_RFPLL_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 192         /* { .offset = B2062_S_RFPLL_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 193         /* { .offset = B2062_S_RFPLL_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 194         { .offset = B2062_S_RFPLL_CTL5, .value_a = 0x0043, .value_g = 0x0043, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 195         { .offset = B2062_S_RFPLL_CTL6, .value_a = 0x0047, .value_g = 0x0047, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 196         { .offset = B2062_S_RFPLL_CTL7, .value_a = 0x000C, .value_g = 0x000C, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 197         { .offset = B2062_S_RFPLL_CTL8, .value_a = 0x0011, .value_g = 0x0011, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 198         { .offset = B2062_S_RFPLL_CTL9, .value_a = 0x0011, .value_g = 0x0011, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 199         { .offset = B2062_S_RFPLL_CTL10, .value_a = 0x000E, .value_g = 0x000E, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 200         { .offset = B2062_S_RFPLL_CTL11, .value_a = 0x0008, .value_g = 0x0008, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 201         { .offset = B2062_S_RFPLL_CTL12, .value_a = 0x0033, .value_g = 0x0033, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 202         { .offset = B2062_S_RFPLL_CTL13, .value_a = 0x000A, .value_g = 0x000A, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 203         { .offset = B2062_S_RFPLL_CTL14, .value_a = 0x0006, .value_g = 0x0006, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 204         /* { .offset = B2062_S_RFPLL_CTL15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 205         /* { .offset = B2062_S_RFPLL_CTL16, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 206         /* { .offset = B2062_S_RFPLL_CTL17, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 207         { .offset = B2062_S_RFPLL_CTL18, .value_a = 0x003E, .value_g = 0x003E, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 208         { .offset = B2062_S_RFPLL_CTL19, .value_a = 0x0013, .value_g = 0x0013, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 209         /* { .offset = B2062_S_RFPLL_CTL20, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 210         { .offset = B2062_S_RFPLL_CTL21, .value_a = 0x0062, .value_g = 0x0062, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 211         { .offset = B2062_S_RFPLL_CTL22, .value_a = 0x0007, .value_g = 0x0007, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 212         { .offset = B2062_S_RFPLL_CTL23, .value_a = 0x0016, .value_g = 0x0016, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 213         { .offset = B2062_S_RFPLL_CTL24, .value_a = 0x005C, .value_g = 0x005C, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 214         { .offset = B2062_S_RFPLL_CTL25, .value_a = 0x0095, .value_g = 0x0095, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 215         /* { .offset = B2062_S_RFPLL_CTL26, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 216         /* { .offset = B2062_S_RFPLL_CTL27, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 217         /* { .offset = B2062_S_RFPLL_CTL28, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 218         /* { .offset = B2062_S_RFPLL_CTL29, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 219         { .offset = B2062_S_RFPLL_CTL30, .value_a = 0x00A0, .value_g = 0x00A0, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 220         { .offset = B2062_S_RFPLL_CTL31, .value_a = 0x0004, .value_g = 0x0004, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 221         /* { .offset = B2062_S_RFPLL_CTL32, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 222         { .offset = B2062_S_RFPLL_CTL33, .value_a = 0x00CC, .value_g = 0x00CC, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 223         { .offset = B2062_S_RFPLL_CTL34, .value_a = 0x0007, .value_g = 0x0007, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 224         /* { .offset = B2062_S_RXG_CNT0, .value_a = 0x0010, .value_g = 0x0010, .flags = 0, }, */
 225         /* { .offset = B2062_S_RXG_CNT1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 226         /* { .offset = B2062_S_RXG_CNT2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 227         /* { .offset = B2062_S_RXG_CNT3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 228         /* { .offset = B2062_S_RXG_CNT4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 229         /* { .offset = B2062_S_RXG_CNT5, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 230         /* { .offset = B2062_S_RXG_CNT6, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 231         /* { .offset = B2062_S_RXG_CNT7, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 232         { .offset = B2062_S_RXG_CNT8, .value_a = 0x000F, .value_g = 0x000F, .flags = B206X_FLAG_A, },
 233         /* { .offset = B2062_S_RXG_CNT9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 234         /* { .offset = B2062_S_RXG_CNT10, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 235         /* { .offset = B2062_S_RXG_CNT11, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 236         /* { .offset = B2062_S_RXG_CNT12, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 237         /* { .offset = B2062_S_RXG_CNT13, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */
 238         /* { .offset = B2062_S_RXG_CNT14, .value_a = 0x00A0, .value_g = 0x00A0, .flags = 0, }, */
 239         /* { .offset = B2062_S_RXG_CNT15, .value_a = 0x0004, .value_g = 0x0004, .flags = 0, }, */
 240         /* { .offset = B2062_S_RXG_CNT16, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 241         /* { .offset = B2062_S_RXG_CNT17, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 242 };
 243 
 244 static const struct b206x_init_tab_entry b2063_init_tab[] = {
 245         { .offset = B2063_COMM1, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 246         /* { .offset = B2063_COMM2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 247         /* { .offset = B2063_COMM3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 248         /* { .offset = B2063_COMM4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 249         /* { .offset = B2063_COMM5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 250         /* { .offset = B2063_COMM6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 251         /* { .offset = B2063_COMM7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 252         /* { .offset = B2063_COMM8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 253         /* { .offset = B2063_COMM9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 254         { .offset = B2063_COMM10, .value_a = 0x0001, .value_g = 0x0000, .flags = B206X_FLAG_A, },
 255         /* { .offset = B2063_COMM11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 256         /* { .offset = B2063_COMM12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 257         /* { .offset = B2063_COMM13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 258         /* { .offset = B2063_COMM14, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */
 259         /* { .offset = B2063_COMM15, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */
 260         { .offset = B2063_COMM16, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 261         { .offset = B2063_COMM17, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 262         { .offset = B2063_COMM18, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 263         { .offset = B2063_COMM19, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 264         { .offset = B2063_COMM20, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 265         { .offset = B2063_COMM21, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 266         { .offset = B2063_COMM22, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 267         { .offset = B2063_COMM23, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 268         { .offset = B2063_COMM24, .value_a = 0x0000, .value_g = 0x0000, .flags = B206X_FLAG_G, },
 269         /* { .offset = B2063_PWR_SWITCH_CTL, .value_a = 0x007f, .value_g = 0x007f, .flags = 0, }, */
 270         /* { .offset = B2063_PLL_SP1, .value_a = 0x003f, .value_g = 0x003f, .flags = 0, }, */
 271         /* { .offset = B2063_PLL_SP2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 272         { .offset = B2063_LOGEN_SP1, .value_a = 0x00e8, .value_g = 0x00d4, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 273         { .offset = B2063_LOGEN_SP2, .value_a = 0x00a7, .value_g = 0x0053, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 274         /* { .offset = B2063_LOGEN_SP3, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 275         { .offset = B2063_LOGEN_SP4, .value_a = 0x00f0, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 276         /* { .offset = B2063_LOGEN_SP5, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 277         { .offset = B2063_G_RX_SP1, .value_a = 0x001f, .value_g = 0x005e, .flags = B206X_FLAG_G, },
 278         { .offset = B2063_G_RX_SP2, .value_a = 0x007f, .value_g = 0x007e, .flags = B206X_FLAG_G, },
 279         { .offset = B2063_G_RX_SP3, .value_a = 0x0030, .value_g = 0x00f0, .flags = B206X_FLAG_G, },
 280         /* { .offset = B2063_G_RX_SP4, .value_a = 0x0035, .value_g = 0x0035, .flags = 0, }, */
 281         /* { .offset = B2063_G_RX_SP5, .value_a = 0x003f, .value_g = 0x003f, .flags = 0, }, */
 282         /* { .offset = B2063_G_RX_SP6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 283         { .offset = B2063_G_RX_SP7, .value_a = 0x007f, .value_g = 0x007f, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 284         /* { .offset = B2063_G_RX_SP8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 285         /* { .offset = B2063_G_RX_SP9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 286         { .offset = B2063_G_RX_SP10, .value_a = 0x000c, .value_g = 0x000c, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 287         /* { .offset = B2063_G_RX_SP11, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 288         { .offset = B2063_A_RX_SP1, .value_a = 0x003c, .value_g = 0x003f, .flags = B206X_FLAG_A, },
 289         { .offset = B2063_A_RX_SP2, .value_a = 0x00fc, .value_g = 0x00fe, .flags = B206X_FLAG_A, },
 290         /* { .offset = B2063_A_RX_SP3, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 291         /* { .offset = B2063_A_RX_SP4, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 292         /* { .offset = B2063_A_RX_SP5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 293         /* { .offset = B2063_A_RX_SP6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 294         { .offset = B2063_A_RX_SP7, .value_a = 0x0008, .value_g = 0x0008, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 295         /* { .offset = B2063_RX_BB_SP1, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */
 296         /* { .offset = B2063_RX_BB_SP2, .value_a = 0x0022, .value_g = 0x0022, .flags = 0, }, */
 297         /* { .offset = B2063_RX_BB_SP3, .value_a = 0x00a8, .value_g = 0x00a8, .flags = 0, }, */
 298         { .offset = B2063_RX_BB_SP4, .value_a = 0x0060, .value_g = 0x0060, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 299         /* { .offset = B2063_RX_BB_SP5, .value_a = 0x0011, .value_g = 0x0011, .flags = 0, }, */
 300         /* { .offset = B2063_RX_BB_SP6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 301         /* { .offset = B2063_RX_BB_SP7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 302         { .offset = B2063_RX_BB_SP8, .value_a = 0x0030, .value_g = 0x0030, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 303         /* { .offset = B2063_TX_RF_SP1, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 304         /* { .offset = B2063_TX_RF_SP2, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */
 305         { .offset = B2063_TX_RF_SP3, .value_a = 0x000c, .value_g = 0x000b, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 306         { .offset = B2063_TX_RF_SP4, .value_a = 0x0010, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 307         /* { .offset = B2063_TX_RF_SP5, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */
 308         /* { .offset = B2063_TX_RF_SP6, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */
 309         /* { .offset = B2063_TX_RF_SP7, .value_a = 0x0068, .value_g = 0x0068, .flags = 0, }, */
 310         /* { .offset = B2063_TX_RF_SP8, .value_a = 0x0068, .value_g = 0x0068, .flags = 0, }, */
 311         /* { .offset = B2063_TX_RF_SP9, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */
 312         /* { .offset = B2063_TX_RF_SP10, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 313         /* { .offset = B2063_TX_RF_SP11, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */
 314         /* { .offset = B2063_TX_RF_SP12, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */
 315         /* { .offset = B2063_TX_RF_SP13, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 316         /* { .offset = B2063_TX_RF_SP14, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */
 317         /* { .offset = B2063_TX_RF_SP15, .value_a = 0x00c0, .value_g = 0x00c0, .flags = 0, }, */
 318         /* { .offset = B2063_TX_RF_SP16, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 319         /* { .offset = B2063_TX_RF_SP17, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 320         { .offset = B2063_PA_SP1, .value_a = 0x003d, .value_g = 0x00fd, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 321         /* { .offset = B2063_PA_SP2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */
 322         /* { .offset = B2063_PA_SP3, .value_a = 0x0096, .value_g = 0x0096, .flags = 0, }, */
 323         /* { .offset = B2063_PA_SP4, .value_a = 0x005a, .value_g = 0x005a, .flags = 0, }, */
 324         /* { .offset = B2063_PA_SP5, .value_a = 0x007f, .value_g = 0x007f, .flags = 0, }, */
 325         /* { .offset = B2063_PA_SP6, .value_a = 0x007f, .value_g = 0x007f, .flags = 0, }, */
 326         /* { .offset = B2063_PA_SP7, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 327         { .offset = B2063_TX_BB_SP1, .value_a = 0x0002, .value_g = 0x0002, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 328         /* { .offset = B2063_TX_BB_SP2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 329         /* { .offset = B2063_TX_BB_SP3, .value_a = 0x0030, .value_g = 0x0030, .flags = 0, }, */
 330         /* { .offset = B2063_REG_SP1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 331         { .offset = B2063_BANDGAP_CTL1, .value_a = 0x0056, .value_g = 0x0056, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 332         /* { .offset = B2063_BANDGAP_CTL2, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */
 333         /* { .offset = B2063_LPO_CTL1, .value_a = 0x000e, .value_g = 0x000e, .flags = 0, }, */
 334         /* { .offset = B2063_RC_CALIB_CTL1, .value_a = 0x007e, .value_g = 0x007e, .flags = 0, }, */
 335         /* { .offset = B2063_RC_CALIB_CTL2, .value_a = 0x0015, .value_g = 0x0015, .flags = 0, }, */
 336         /* { .offset = B2063_RC_CALIB_CTL3, .value_a = 0x000f, .value_g = 0x000f, .flags = 0, }, */
 337         /* { .offset = B2063_RC_CALIB_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 338         /* { .offset = B2063_RC_CALIB_CTL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 339         /* { .offset = B2063_RC_CALIB_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 340         /* { .offset = B2063_RC_CALIB_CTL7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 341         /* { .offset = B2063_RC_CALIB_CTL8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 342         /* { .offset = B2063_RC_CALIB_CTL9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 343         /* { .offset = B2063_RC_CALIB_CTL10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 344         /* { .offset = B2063_PLL_JTAG_CALNRST, .value_a = 0x0004, .value_g = 0x0004, .flags = 0, }, */
 345         /* { .offset = B2063_PLL_JTAG_IN_PLL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 346         /* { .offset = B2063_PLL_JTAG_IN_PLL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 347         /* { .offset = B2063_PLL_JTAG_PLL_CP1, .value_a = 0x00cf, .value_g = 0x00cf, .flags = 0, }, */
 348         /* { .offset = B2063_PLL_JTAG_PLL_CP2, .value_a = 0x0059, .value_g = 0x0059, .flags = 0, }, */
 349         /* { .offset = B2063_PLL_JTAG_PLL_CP3, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */
 350         /* { .offset = B2063_PLL_JTAG_PLL_CP4, .value_a = 0x0042, .value_g = 0x0042, .flags = 0, }, */
 351         /* { .offset = B2063_PLL_JTAG_PLL_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 352         /* { .offset = B2063_PLL_JTAG_PLL_LF1, .value_a = 0x00db, .value_g = 0x00db, .flags = 0, }, */
 353         /* { .offset = B2063_PLL_JTAG_PLL_LF2, .value_a = 0x0094, .value_g = 0x0094, .flags = 0, }, */
 354         /* { .offset = B2063_PLL_JTAG_PLL_LF3, .value_a = 0x0028, .value_g = 0x0028, .flags = 0, }, */
 355         /* { .offset = B2063_PLL_JTAG_PLL_LF4, .value_a = 0x0063, .value_g = 0x0063, .flags = 0, }, */
 356         /* { .offset = B2063_PLL_JTAG_PLL_SG1, .value_a = 0x0007, .value_g = 0x0007, .flags = 0, }, */
 357         /* { .offset = B2063_PLL_JTAG_PLL_SG2, .value_a = 0x00d3, .value_g = 0x00d3, .flags = 0, }, */
 358         /* { .offset = B2063_PLL_JTAG_PLL_SG3, .value_a = 0x00b1, .value_g = 0x00b1, .flags = 0, }, */
 359         /* { .offset = B2063_PLL_JTAG_PLL_SG4, .value_a = 0x003b, .value_g = 0x003b, .flags = 0, }, */
 360         /* { .offset = B2063_PLL_JTAG_PLL_SG5, .value_a = 0x0006, .value_g = 0x0006, .flags = 0, }, */
 361         /* { .offset = B2063_PLL_JTAG_PLL_VCO1, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */
 362         { .offset = B2063_PLL_JTAG_PLL_VCO2, .value_a = 0x00f7, .value_g = 0x00f7, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 363         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 364         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 365         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB3, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */
 366         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 367         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB5, .value_a = 0x0009, .value_g = 0x0009, .flags = 0, }, */
 368         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB6, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 369         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB7, .value_a = 0x0016, .value_g = 0x0016, .flags = 0, }, */
 370         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB8, .value_a = 0x006b, .value_g = 0x006b, .flags = 0, }, */
 371         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 372         /* { .offset = B2063_PLL_JTAG_PLL_VCO_CALIB10, .value_a = 0x00b3, .value_g = 0x00b3, .flags = 0, }, */
 373         /* { .offset = B2063_PLL_JTAG_PLL_XTAL_12, .value_a = 0x0004, .value_g = 0x0004, .flags = 0, }, */
 374         /* { .offset = B2063_PLL_JTAG_PLL_XTAL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 375         /* { .offset = B2063_LOGEN_ACL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 376         /* { .offset = B2063_LOGEN_ACL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 377         /* { .offset = B2063_LOGEN_ACL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 378         /* { .offset = B2063_LOGEN_ACL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 379         /* { .offset = B2063_LOGEN_ACL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 380         /* { .offset = B2063_LO_CALIB_INPUTS, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 381         /* { .offset = B2063_LO_CALIB_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 382         /* { .offset = B2063_LO_CALIB_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 383         /* { .offset = B2063_LO_CALIB_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 384         /* { .offset = B2063_LO_CALIB_WAITCNT, .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */
 385         /* { .offset = B2063_LO_CALIB_OVR1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 386         /* { .offset = B2063_LO_CALIB_OVR2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 387         /* { .offset = B2063_LO_CALIB_OVAL1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 388         /* { .offset = B2063_LO_CALIB_OVAL2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 389         /* { .offset = B2063_LO_CALIB_OVAL3, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 390         /* { .offset = B2063_LO_CALIB_OVAL4, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 391         /* { .offset = B2063_LO_CALIB_OVAL5, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 392         /* { .offset = B2063_LO_CALIB_OVAL6, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 393         /* { .offset = B2063_LO_CALIB_OVAL7, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 394         /* { .offset = B2063_LO_CALIB_CALVLD1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 395         /* { .offset = B2063_LO_CALIB_CALVLD2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 396         /* { .offset = B2063_LO_CALIB_CVAL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 397         /* { .offset = B2063_LO_CALIB_CVAL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 398         /* { .offset = B2063_LO_CALIB_CVAL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 399         /* { .offset = B2063_LO_CALIB_CVAL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 400         /* { .offset = B2063_LO_CALIB_CVAL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 401         /* { .offset = B2063_LO_CALIB_CVAL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 402         /* { .offset = B2063_LO_CALIB_CVAL7, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 403         /* { .offset = B2063_LOGEN_CALIB_EN, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 404         /* { .offset = B2063_LOGEN_PEAKDET1, .value_a = 0x00ff, .value_g = 0x00ff, .flags = 0, }, */
 405         /* { .offset = B2063_LOGEN_RCCR1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 406         /* { .offset = B2063_LOGEN_VCOBUF1, .value_a = 0x0060, .value_g = 0x0060, .flags = 0, }, */
 407         /* { .offset = B2063_LOGEN_MIXER1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 408         /* { .offset = B2063_LOGEN_MIXER2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */
 409         /* { .offset = B2063_LOGEN_BUF1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 410         /* { .offset = B2063_LOGEN_BUF2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */
 411         /* { .offset = B2063_LOGEN_DIV1, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 412         /* { .offset = B2063_LOGEN_DIV2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 413         /* { .offset = B2063_LOGEN_DIV3, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 414         /* { .offset = B2063_LOGEN_CBUFRX1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 415         /* { .offset = B2063_LOGEN_CBUFRX2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 416         /* { .offset = B2063_LOGEN_CBUFTX1, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 417         /* { .offset = B2063_LOGEN_CBUFTX2, .value_a = 0x0066, .value_g = 0x0066, .flags = 0, }, */
 418         /* { .offset = B2063_LOGEN_IDAC1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 419         /* { .offset = B2063_LOGEN_SPARE1, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 420         /* { .offset = B2063_LOGEN_SPARE2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 421         /* { .offset = B2063_LOGEN_SPARE3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 422         /* { .offset = B2063_G_RX_1ST1, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 423         /* { .offset = B2063_G_RX_1ST2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 424         /* { .offset = B2063_G_RX_1ST3, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 425         /* { .offset = B2063_G_RX_2ND1, .value_a = 0x0030, .value_g = 0x0030, .flags = 0, }, */
 426         /* { .offset = B2063_G_RX_2ND2, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 427         /* { .offset = B2063_G_RX_2ND3, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 428         /* { .offset = B2063_G_RX_2ND4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 429         /* { .offset = B2063_G_RX_2ND5, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 430         /* { .offset = B2063_G_RX_2ND6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 431         /* { .offset = B2063_G_RX_2ND7, .value_a = 0x0035, .value_g = 0x0035, .flags = 0, }, */
 432         /* { .offset = B2063_G_RX_2ND8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 433         /* { .offset = B2063_G_RX_PS1, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 434         /* { .offset = B2063_G_RX_PS2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 435         /* { .offset = B2063_G_RX_PS3, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 436         /* { .offset = B2063_G_RX_PS4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 437         /* { .offset = B2063_G_RX_PS5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 438         /* { .offset = B2063_G_RX_MIX1, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */
 439         /* { .offset = B2063_G_RX_MIX2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 440         { .offset = B2063_G_RX_MIX3, .value_a = 0x0071, .value_g = 0x0071, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 441         { .offset = B2063_G_RX_MIX4, .value_a = 0x0071, .value_g = 0x0071, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 442         /* { .offset = B2063_G_RX_MIX5, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */
 443         /* { .offset = B2063_G_RX_MIX6, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 444         /* { .offset = B2063_G_RX_MIX7, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */
 445         /* { .offset = B2063_G_RX_MIX8, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 446         /* { .offset = B2063_G_RX_PDET1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 447         /* { .offset = B2063_G_RX_SPARES1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 448         /* { .offset = B2063_G_RX_SPARES2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 449         /* { .offset = B2063_G_RX_SPARES3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 450         /* { .offset = B2063_A_RX_1ST1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 451         { .offset = B2063_A_RX_1ST2, .value_a = 0x00f0, .value_g = 0x0030, .flags = B206X_FLAG_A, },
 452         /* { .offset = B2063_A_RX_1ST3, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 453         /* { .offset = B2063_A_RX_1ST4, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 454         /* { .offset = B2063_A_RX_1ST5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 455         /* { .offset = B2063_A_RX_2ND1, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 456         /* { .offset = B2063_A_RX_2ND2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 457         /* { .offset = B2063_A_RX_2ND3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 458         /* { .offset = B2063_A_RX_2ND4, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 459         /* { .offset = B2063_A_RX_2ND5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 460         /* { .offset = B2063_A_RX_2ND6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 461         /* { .offset = B2063_A_RX_2ND7, .value_a = 0x0005, .value_g = 0x0005, .flags = 0, }, */
 462         /* { .offset = B2063_A_RX_PS1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 463         /* { .offset = B2063_A_RX_PS2, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 464         /* { .offset = B2063_A_RX_PS3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 465         /* { .offset = B2063_A_RX_PS4, .value_a = 0x0033, .value_g = 0x0033, .flags = 0, }, */
 466         /* { .offset = B2063_A_RX_PS5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 467         { .offset = B2063_A_RX_PS6, .value_a = 0x0077, .value_g = 0x0077, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 468         /* { .offset = B2063_A_RX_MIX1, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 469         /* { .offset = B2063_A_RX_MIX2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 470         /* { .offset = B2063_A_RX_MIX3, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */
 471         { .offset = B2063_A_RX_MIX4, .value_a = 0x0003, .value_g = 0x0003, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 472         { .offset = B2063_A_RX_MIX5, .value_a = 0x000f, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 473         { .offset = B2063_A_RX_MIX6, .value_a = 0x000f, .value_g = 0x000f, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 474         /* { .offset = B2063_A_RX_MIX7, .value_a = 0x0044, .value_g = 0x0044, .flags = 0, }, */
 475         /* { .offset = B2063_A_RX_MIX8, .value_a = 0x0001, .value_g = 0x0001, .flags = 0, }, */
 476         /* { .offset = B2063_A_RX_PWRDET1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 477         /* { .offset = B2063_A_RX_SPARE1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 478         /* { .offset = B2063_A_RX_SPARE2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 479         /* { .offset = B2063_A_RX_SPARE3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 480         { .offset = B2063_RX_TIA_CTL1, .value_a = 0x0077, .value_g = 0x0077, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 481         /* { .offset = B2063_RX_TIA_CTL2, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */
 482         { .offset = B2063_RX_TIA_CTL3, .value_a = 0x0077, .value_g = 0x0077, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 483         /* { .offset = B2063_RX_TIA_CTL4, .value_a = 0x0058, .value_g = 0x0058, .flags = 0, }, */
 484         /* { .offset = B2063_RX_TIA_CTL5, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 485         /* { .offset = B2063_RX_TIA_CTL6, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 486         /* { .offset = B2063_RX_BB_CTL1, .value_a = 0x0074, .value_g = 0x0074, .flags = 0, }, */
 487         { .offset = B2063_RX_BB_CTL2, .value_a = 0x0004, .value_g = 0x0004, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 488         /* { .offset = B2063_RX_BB_CTL3, .value_a = 0x00a2, .value_g = 0x00a2, .flags = 0, }, */
 489         /* { .offset = B2063_RX_BB_CTL4, .value_a = 0x00aa, .value_g = 0x00aa, .flags = 0, }, */
 490         /* { .offset = B2063_RX_BB_CTL5, .value_a = 0x0024, .value_g = 0x0024, .flags = 0, }, */
 491         /* { .offset = B2063_RX_BB_CTL6, .value_a = 0x00a9, .value_g = 0x00a9, .flags = 0, }, */
 492         /* { .offset = B2063_RX_BB_CTL7, .value_a = 0x0028, .value_g = 0x0028, .flags = 0, }, */
 493         /* { .offset = B2063_RX_BB_CTL8, .value_a = 0x0010, .value_g = 0x0010, .flags = 0, }, */
 494         /* { .offset = B2063_RX_BB_CTL9, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 495         /* { .offset = B2063_TX_RF_CTL1, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */
 496         /* { .offset = B2063_TX_RF_IDAC_LO_RF_I, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 497         /* { .offset = B2063_TX_RF_IDAC_LO_RF_Q, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 498         /* { .offset = B2063_TX_RF_IDAC_LO_BB_I, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 499         /* { .offset = B2063_TX_RF_IDAC_LO_BB_Q, .value_a = 0x0088, .value_g = 0x0088, .flags = 0, }, */
 500         /* { .offset = B2063_TX_RF_CTL2, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */
 501         /* { .offset = B2063_TX_RF_CTL3, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */
 502         /* { .offset = B2063_TX_RF_CTL4, .value_a = 0x00b8, .value_g = 0x00b8, .flags = 0, }, */
 503         /* { .offset = B2063_TX_RF_CTL5, .value_a = 0x0080, .value_g = 0x0080, .flags = 0, }, */
 504         /* { .offset = B2063_TX_RF_CTL6, .value_a = 0x0038, .value_g = 0x0038, .flags = 0, }, */
 505         /* { .offset = B2063_TX_RF_CTL7, .value_a = 0x0078, .value_g = 0x0078, .flags = 0, }, */
 506         /* { .offset = B2063_TX_RF_CTL8, .value_a = 0x00c0, .value_g = 0x00c0, .flags = 0, }, */
 507         /* { .offset = B2063_TX_RF_CTL9, .value_a = 0x0003, .value_g = 0x0003, .flags = 0, }, */
 508         /* { .offset = B2063_TX_RF_CTL10, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 509         /* { .offset = B2063_TX_RF_CTL14, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 510         /* { .offset = B2063_TX_RF_CTL15, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 511         { .offset = B2063_PA_CTL1, .value_a = 0x0000, .value_g = 0x0004, .flags = B206X_FLAG_A, },
 512         /* { .offset = B2063_PA_CTL2, .value_a = 0x000c, .value_g = 0x000c, .flags = 0, }, */
 513         /* { .offset = B2063_PA_CTL3, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 514         /* { .offset = B2063_PA_CTL4, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 515         /* { .offset = B2063_PA_CTL5, .value_a = 0x0096, .value_g = 0x0096, .flags = 0, }, */
 516         /* { .offset = B2063_PA_CTL6, .value_a = 0x0077, .value_g = 0x0077, .flags = 0, }, */
 517         /* { .offset = B2063_PA_CTL7, .value_a = 0x005a, .value_g = 0x005a, .flags = 0, }, */
 518         /* { .offset = B2063_PA_CTL8, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 519         /* { .offset = B2063_PA_CTL9, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 520         /* { .offset = B2063_PA_CTL10, .value_a = 0x0021, .value_g = 0x0021, .flags = 0, }, */
 521         /* { .offset = B2063_PA_CTL11, .value_a = 0x0070, .value_g = 0x0070, .flags = 0, }, */
 522         /* { .offset = B2063_PA_CTL12, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 523         /* { .offset = B2063_PA_CTL13, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 524         /* { .offset = B2063_TX_BB_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 525         /* { .offset = B2063_TX_BB_CTL2, .value_a = 0x00b3, .value_g = 0x00b3, .flags = 0, }, */
 526         /* { .offset = B2063_TX_BB_CTL3, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 527         /* { .offset = B2063_TX_BB_CTL4, .value_a = 0x000b, .value_g = 0x000b, .flags = 0, }, */
 528         /* { .offset = B2063_GPIO_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 529         { .offset = B2063_VREG_CTL1, .value_a = 0x0003, .value_g = 0x0003, .flags = B206X_FLAG_A | B206X_FLAG_G, },
 530         /* { .offset = B2063_AMUX_CTL1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 531         /* { .offset = B2063_IQ_CALIB_GVAR, .value_a = 0x00b3, .value_g = 0x00b3, .flags = 0, }, */
 532         /* { .offset = B2063_IQ_CALIB_CTL1, .value_a = 0x0055, .value_g = 0x0055, .flags = 0, }, */
 533         /* { .offset = B2063_IQ_CALIB_CTL2, .value_a = 0x0030, .value_g = 0x0030, .flags = 0, }, */
 534         /* { .offset = B2063_TEMPSENSE_CTL1, .value_a = 0x0046, .value_g = 0x0046, .flags = 0, }, */
 535         /* { .offset = B2063_TEMPSENSE_CTL2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 536         /* { .offset = B2063_TX_RX_LOOPBACK1, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 537         /* { .offset = B2063_TX_RX_LOOPBACK2, .value_a = 0x0000, .value_g = 0x0000, .flags = 0, }, */
 538         /* { .offset = B2063_EXT_TSSI_CTL1, .value_a = 0x0021, .value_g = 0x0021, .flags = 0, }, */
 539         /* { .offset = B2063_EXT_TSSI_CTL2, .value_a = 0x0023, .value_g = 0x0023, .flags = 0, }, */
 540         /* { .offset = B2063_AFE_CTL , .value_a = 0x0002, .value_g = 0x0002, .flags = 0, }, */
 541 };
 542 
 543 void b2062_upload_init_table(struct b43_wldev *dev)
 544 {
 545         const struct b206x_init_tab_entry *e;
 546         unsigned int i;
 547 
 548         for (i = 0; i < ARRAY_SIZE(b2062_init_tab); i++) {
 549                 e = &b2062_init_tab[i];
 550                 if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) {
 551                         if (!(e->flags & B206X_FLAG_G))
 552                                 continue;
 553                         b43_radio_write(dev, e->offset, e->value_g);
 554                 } else {
 555                         if (!(e->flags & B206X_FLAG_A))
 556                                 continue;
 557                         b43_radio_write(dev, e->offset, e->value_a);
 558                 }
 559         }
 560 }
 561 
 562 void b2063_upload_init_table(struct b43_wldev *dev)
 563 {
 564         const struct b206x_init_tab_entry *e;
 565         unsigned int i;
 566 
 567         for (i = 0; i < ARRAY_SIZE(b2063_init_tab); i++) {
 568                 e = &b2063_init_tab[i];
 569                 if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) {
 570                         if (!(e->flags & B206X_FLAG_G))
 571                                 continue;
 572                         b43_radio_write(dev, e->offset, e->value_g);
 573                 } else {
 574                         if (!(e->flags & B206X_FLAG_A))
 575                                 continue;
 576                         b43_radio_write(dev, e->offset, e->value_a);
 577                 }
 578         }
 579 }
 580 
 581 u32 b43_lptab_read(struct b43_wldev *dev, u32 offset)
 582 {
 583         u32 type, value;
 584 
 585         type = offset & B43_LPTAB_TYPEMASK;
 586         offset &= ~B43_LPTAB_TYPEMASK;
 587         B43_WARN_ON(offset > 0xFFFF);
 588 
 589         switch (type) {
 590         case B43_LPTAB_8BIT:
 591                 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 592                 value = b43_phy_read(dev, B43_LPPHY_TABLEDATALO) & 0xFF;
 593                 break;
 594         case B43_LPTAB_16BIT:
 595                 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 596                 value = b43_phy_read(dev, B43_LPPHY_TABLEDATALO);
 597                 break;
 598         case B43_LPTAB_32BIT:
 599                 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 600                 value = b43_phy_read(dev, B43_LPPHY_TABLEDATAHI);
 601                 value <<= 16;
 602                 value |= b43_phy_read(dev, B43_LPPHY_TABLEDATALO);
 603                 break;
 604         default:
 605                 B43_WARN_ON(1);
 606                 value = 0;
 607         }
 608 
 609         return value;
 610 }
 611 
 612 void b43_lptab_read_bulk(struct b43_wldev *dev, u32 offset,
 613                          unsigned int nr_elements, void *_data)
 614 {
 615         u32 type;
 616         u8 *data = _data;
 617         unsigned int i;
 618 
 619         type = offset & B43_LPTAB_TYPEMASK;
 620         offset &= ~B43_LPTAB_TYPEMASK;
 621         B43_WARN_ON(offset > 0xFFFF);
 622 
 623         b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 624 
 625         for (i = 0; i < nr_elements; i++) {
 626                 switch (type) {
 627                 case B43_LPTAB_8BIT:
 628                         *data = b43_phy_read(dev, B43_LPPHY_TABLEDATALO) & 0xFF;
 629                         data++;
 630                         break;
 631                 case B43_LPTAB_16BIT:
 632                         *((u16 *)data) = b43_phy_read(dev, B43_LPPHY_TABLEDATALO);
 633                         data += 2;
 634                         break;
 635                 case B43_LPTAB_32BIT:
 636                         *((u32 *)data) = b43_phy_read(dev, B43_LPPHY_TABLEDATAHI);
 637                         *((u32 *)data) <<= 16;
 638                         *((u32 *)data) |= b43_phy_read(dev, B43_LPPHY_TABLEDATALO);
 639                         data += 4;
 640                         break;
 641                 default:
 642                         B43_WARN_ON(1);
 643                 }
 644         }
 645 }
 646 
 647 void b43_lptab_write(struct b43_wldev *dev, u32 offset, u32 value)
 648 {
 649         u32 type;
 650 
 651         type = offset & B43_LPTAB_TYPEMASK;
 652         offset &= ~B43_LPTAB_TYPEMASK;
 653         B43_WARN_ON(offset > 0xFFFF);
 654 
 655         switch (type) {
 656         case B43_LPTAB_8BIT:
 657                 B43_WARN_ON(value & ~0xFF);
 658                 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 659                 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);
 660                 break;
 661         case B43_LPTAB_16BIT:
 662                 B43_WARN_ON(value & ~0xFFFF);
 663                 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 664                 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);
 665                 break;
 666         case B43_LPTAB_32BIT:
 667                 b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 668                 b43_phy_write(dev, B43_LPPHY_TABLEDATAHI, value >> 16);
 669                 b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);
 670                 break;
 671         default:
 672                 B43_WARN_ON(1);
 673         }
 674 }
 675 
 676 void b43_lptab_write_bulk(struct b43_wldev *dev, u32 offset,
 677                           unsigned int nr_elements, const void *_data)
 678 {
 679         u32 type, value;
 680         const u8 *data = _data;
 681         unsigned int i;
 682 
 683         type = offset & B43_LPTAB_TYPEMASK;
 684         offset &= ~B43_LPTAB_TYPEMASK;
 685         B43_WARN_ON(offset > 0xFFFF);
 686 
 687         b43_phy_write(dev, B43_LPPHY_TABLE_ADDR, offset);
 688 
 689         for (i = 0; i < nr_elements; i++) {
 690                 switch (type) {
 691                 case B43_LPTAB_8BIT:
 692                         value = *data;
 693                         data++;
 694                         B43_WARN_ON(value & ~0xFF);
 695                         b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);
 696                         break;
 697                 case B43_LPTAB_16BIT:
 698                         value = *((u16 *)data);
 699                         data += 2;
 700                         B43_WARN_ON(value & ~0xFFFF);
 701                         b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);
 702                         break;
 703                 case B43_LPTAB_32BIT:
 704                         value = *((u32 *)data);
 705                         data += 4;
 706                         b43_phy_write(dev, B43_LPPHY_TABLEDATAHI, value >> 16);
 707                         b43_phy_write(dev, B43_LPPHY_TABLEDATALO, value);
 708                         break;
 709                 default:
 710                         B43_WARN_ON(1);
 711                 }
 712         }
 713 }
 714 
 715 static const u8 lpphy_min_sig_sq_table[] = {
 716         0xde, 0xdc, 0xda, 0xd8, 0xd6, 0xd4, 0xd2, 0xcf, 0xcd,
 717         0xca, 0xc7, 0xc4, 0xc1, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,
 718         0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0x00,
 719         0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe,
 720         0xbe, 0xbe, 0xbe, 0xbe, 0xc1, 0xc4, 0xc7, 0xca, 0xcd,
 721         0xcf, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde,
 722 };
 723 
 724 static const u16 lpphy_rev01_noise_scale_table[] = {
 725         0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4,
 726         0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa400, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4,
 727         0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0xa4a4, 0x00a4,
 728         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4c00, 0x2d36,
 729         0x0000, 0x0000, 0x4c00, 0x2d36,
 730 };
 731 
 732 static const u16 lpphy_rev2plus_noise_scale_table[] = {
 733         0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,
 734         0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,
 735         0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x0000,
 736         0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,
 737         0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,
 738         0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4, 0x00a4,
 739         0x00a4,
 740 };
 741 
 742 static const u16 lpphy_crs_gain_nft_table[] = {
 743         0x0366, 0x036a, 0x036f, 0x0364, 0x0367, 0x036d, 0x0374, 0x037f, 0x036f,
 744         0x037b, 0x038a, 0x0378, 0x0367, 0x036d, 0x0375, 0x0381, 0x0374, 0x0381,
 745         0x0392, 0x03a9, 0x03c4, 0x03e1, 0x0001, 0x001f, 0x0040, 0x005e, 0x007f,
 746         0x009e, 0x00bd, 0x00dd, 0x00fd, 0x011d, 0x013d,
 747 };
 748 
 749 static const u16 lpphy_rev01_filter_control_table[] = {
 750         0xa0fc, 0x10fc, 0x10db, 0x20b7, 0xff93, 0x10bf, 0x109b, 0x2077, 0xff53,
 751         0x0127,
 752 };
 753 
 754 static const u32 lpphy_rev2plus_filter_control_table[] = {
 755         0x000141fc, 0x000021fc, 0x000021b7, 0x0000416f, 0x0001ff27, 0x0000217f,
 756         0x00002137, 0x000040ef, 0x0001fea7, 0x0000024f,
 757 };
 758 
 759 static const u32 lpphy_rev01_ps_control_table[] = {
 760         0x00010000, 0x000000a0, 0x00040000, 0x00000048, 0x08080101, 0x00000080,
 761         0x08080101, 0x00000040, 0x08080101, 0x000000c0, 0x08a81501, 0x000000c0,
 762         0x0fe8fd01, 0x000000c0, 0x08300105, 0x000000c0, 0x08080201, 0x000000c0,
 763         0x08280205, 0x000000c0, 0xe80802fe, 0x000000c7, 0x28080206, 0x000000c0,
 764         0x08080202, 0x000000c0, 0x0ba87602, 0x000000c0, 0x1068013d, 0x000000c0,
 765         0x10280105, 0x000000c0, 0x08880102, 0x000000c0, 0x08280106, 0x000000c0,
 766         0xe80801fd, 0x000000c7, 0xa8080115, 0x000000c0,
 767 };
 768 
 769 static const u32 lpphy_rev2plus_ps_control_table[] = {
 770         0x00e38e08, 0x00e08e38, 0x00000000, 0x00000000, 0x00000000, 0x00002080,
 771         0x00006180, 0x00003002, 0x00000040, 0x00002042, 0x00180047, 0x00080043,
 772         0x00000041, 0x000020c1, 0x00046006, 0x00042002, 0x00040000, 0x00002003,
 773         0x00180006, 0x00080002,
 774 };
 775 
 776 static const u8 lpphy_pll_fraction_table[] = {
 777         0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80,
 778         0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
 779 };
 780 
 781 static const u16 lpphy_iqlo_cal_table[] = {
 782         0x0200, 0x0300, 0x0400, 0x0600, 0x0800, 0x0b00, 0x1000, 0x1001, 0x1002,
 783         0x1003, 0x1004, 0x1005, 0x1006, 0x1007, 0x1707, 0x2007, 0x2d07, 0x4007,
 784         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 785         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0200, 0x0300, 0x0400, 0x0600,
 786         0x0800, 0x0b00, 0x1000, 0x1001, 0x1002, 0x1003, 0x1004, 0x1005, 0x1006,
 787         0x1007, 0x1707, 0x2007, 0x2d07, 0x4007, 0x0000, 0x0000, 0x0000, 0x0000,
 788         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 789         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 790         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 791         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000,
 792         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 793         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 794 };
 795 
 796 static const u16 lpphy_rev0_ofdm_cck_gain_table[] = {
 797         0x0001, 0x0001, 0x0001, 0x0001, 0x1001, 0x2001, 0x3001, 0x4001, 0x5001,
 798         0x6001, 0x7001, 0x7011, 0x7021, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,
 799         0x006d, 0x007d, 0x014d, 0x015d, 0x115d, 0x035d, 0x135d, 0x055d, 0x155d,
 800         0x0d5d, 0x1d5d, 0x2d5d, 0x555d, 0x655d, 0x755d,
 801 };
 802 
 803 static const u16 lpphy_rev1_ofdm_cck_gain_table[] = {
 804         0x5000, 0x6000, 0x7000, 0x0001, 0x1001, 0x2001, 0x3001, 0x4001, 0x5001,
 805         0x6001, 0x7001, 0x7011, 0x7021, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,
 806         0x006d, 0x007d, 0x014d, 0x015d, 0x115d, 0x035d, 0x135d, 0x055d, 0x155d,
 807         0x0d5d, 0x1d5d, 0x2d5d, 0x555d, 0x655d, 0x755d,
 808 };
 809 
 810 static const u16 lpphy_gain_delta_table[] = {
 811         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 812 };
 813 
 814 static const u32 lpphy_tx_power_control_table[] = {
 815         0x00000050, 0x0000004f, 0x0000004e, 0x0000004d, 0x0000004c, 0x0000004b,
 816         0x0000004a, 0x00000049, 0x00000048, 0x00000047, 0x00000046, 0x00000045,
 817         0x00000044, 0x00000043, 0x00000042, 0x00000041, 0x00000040, 0x0000003f,
 818         0x0000003e, 0x0000003d, 0x0000003c, 0x0000003b, 0x0000003a, 0x00000039,
 819         0x00000038, 0x00000037, 0x00000036, 0x00000035, 0x00000034, 0x00000033,
 820         0x00000032, 0x00000031, 0x00000030, 0x0000002f, 0x0000002e, 0x0000002d,
 821         0x0000002c, 0x0000002b, 0x0000002a, 0x00000029, 0x00000028, 0x00000027,
 822         0x00000026, 0x00000025, 0x00000024, 0x00000023, 0x00000022, 0x00000021,
 823         0x00000020, 0x0000001f, 0x0000001e, 0x0000001d, 0x0000001c, 0x0000001b,
 824         0x0000001a, 0x00000019, 0x00000018, 0x00000017, 0x00000016, 0x00000015,
 825         0x00000014, 0x00000013, 0x00000012, 0x00000011, 0x00000000, 0x00000000,
 826         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 827         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 828         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 829         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 830         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 831         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 832         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 833         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 834         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 835         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 836         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 837         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 838         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 839         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 840         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 841         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 842         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 843         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 844         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 845         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 846         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 847         0x000075a0, 0x000075a0, 0x000075a1, 0x000075a1, 0x000075a2, 0x000075a2,
 848         0x000075a3, 0x000075a3, 0x000074b0, 0x000074b0, 0x000074b1, 0x000074b1,
 849         0x000074b2, 0x000074b2, 0x000074b3, 0x000074b3, 0x00006d20, 0x00006d20,
 850         0x00006d21, 0x00006d21, 0x00006d22, 0x00006d22, 0x00006d23, 0x00006d23,
 851         0x00004660, 0x00004660, 0x00004661, 0x00004661, 0x00004662, 0x00004662,
 852         0x00004663, 0x00004663, 0x00003e60, 0x00003e60, 0x00003e61, 0x00003e61,
 853         0x00003e62, 0x00003e62, 0x00003e63, 0x00003e63, 0x00003660, 0x00003660,
 854         0x00003661, 0x00003661, 0x00003662, 0x00003662, 0x00003663, 0x00003663,
 855         0x00002e60, 0x00002e60, 0x00002e61, 0x00002e61, 0x00002e62, 0x00002e62,
 856         0x00002e63, 0x00002e63, 0x00002660, 0x00002660, 0x00002661, 0x00002661,
 857         0x00002662, 0x00002662, 0x00002663, 0x00002663, 0x000025e0, 0x000025e0,
 858         0x000025e1, 0x000025e1, 0x000025e2, 0x000025e2, 0x000025e3, 0x000025e3,
 859         0x00001de0, 0x00001de0, 0x00001de1, 0x00001de1, 0x00001de2, 0x00001de2,
 860         0x00001de3, 0x00001de3, 0x00001d60, 0x00001d60, 0x00001d61, 0x00001d61,
 861         0x00001d62, 0x00001d62, 0x00001d63, 0x00001d63, 0x00001560, 0x00001560,
 862         0x00001561, 0x00001561, 0x00001562, 0x00001562, 0x00001563, 0x00001563,
 863         0x00000d60, 0x00000d60, 0x00000d61, 0x00000d61, 0x00000d62, 0x00000d62,
 864         0x00000d63, 0x00000d63, 0x00000ce0, 0x00000ce0, 0x00000ce1, 0x00000ce1,
 865         0x00000ce2, 0x00000ce2, 0x00000ce3, 0x00000ce3, 0x00000e10, 0x00000e10,
 866         0x00000e11, 0x00000e11, 0x00000e12, 0x00000e12, 0x00000e13, 0x00000e13,
 867         0x00000bf0, 0x00000bf0, 0x00000bf1, 0x00000bf1, 0x00000bf2, 0x00000bf2,
 868         0x00000bf3, 0x00000bf3, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 869         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 870         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 871         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 872         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 873         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 874         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 875         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 876         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 877         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 878         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 879         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 880         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 881         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 882         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 883         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 884         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 885         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 886         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 887         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 888         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x04200000, 0x04000000,
 889         0x04200000, 0x04000000, 0x04200000, 0x04000000, 0x000000ff, 0x000002fc,
 890         0x0000fa08, 0x00000305, 0x00000206, 0x00000304, 0x0000fb04, 0x0000fcff,
 891         0x000005fb, 0x0000fd01, 0x00000401, 0x00000006, 0x0000ff03, 0x000007fc,
 892         0x0000fc08, 0x00000203, 0x0000fffb, 0x00000600, 0x0000fa01, 0x0000fc03,
 893         0x0000fe06, 0x0000fe00, 0x00000102, 0x000007fd, 0x000004fb, 0x000006ff,
 894         0x000004fd, 0x0000fdfa, 0x000007fb, 0x0000fdfa, 0x0000fa06, 0x00000500,
 895         0x0000f902, 0x000007fa, 0x0000fafa, 0x00000500, 0x000007fa, 0x00000700,
 896         0x00000305, 0x000004ff, 0x00000801, 0x00000503, 0x000005f9, 0x00000404,
 897         0x0000fb08, 0x000005fd, 0x00000501, 0x00000405, 0x0000fb03, 0x000007fc,
 898         0x00000403, 0x00000303, 0x00000402, 0x0000faff, 0x0000fe05, 0x000005fd,
 899         0x0000fe01, 0x000007fa, 0x00000202, 0x00000504, 0x00000102, 0x000008fe,
 900         0x0000fa04, 0x0000fafc, 0x0000fe08, 0x000000f9, 0x000002fa, 0x000003fe,
 901         0x00000304, 0x000004f9, 0x00000100, 0x0000fd06, 0x000008fc, 0x00000701,
 902         0x00000504, 0x0000fdfe, 0x0000fdfc, 0x000003fe, 0x00000704, 0x000002fc,
 903         0x000004f9, 0x0000fdfd, 0x0000fa07, 0x00000205, 0x000003fd, 0x000005fb,
 904         0x000004f9, 0x00000804, 0x0000fc06, 0x0000fcf9, 0x00000100, 0x0000fe05,
 905         0x00000408, 0x0000fb02, 0x00000304, 0x000006fe, 0x000004fa, 0x00000305,
 906         0x000008fc, 0x00000102, 0x000001fd, 0x000004fc, 0x0000fe03, 0x00000701,
 907         0x000001fb, 0x000001f9, 0x00000206, 0x000006fd, 0x00000508, 0x00000700,
 908         0x00000304, 0x000005fe, 0x000005ff, 0x0000fa04, 0x00000303, 0x0000fefb,
 909         0x000007f9, 0x0000fefc, 0x000004fd, 0x000005fc, 0x0000fffd, 0x0000fc08,
 910         0x0000fbf9, 0x0000fd07, 0x000008fb, 0x0000fe02, 0x000006fb, 0x00000702,
 911 };
 912 
 913 static const u32 lpphy_gain_idx_table[] = {
 914         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 915         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 916         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 917         0x10000001, 0x00000000, 0x20000082, 0x00000000, 0x40000104, 0x00000000,
 918         0x60004207, 0x00000001, 0x7000838a, 0x00000001, 0xd021050d, 0x00000001,
 919         0xe041c683, 0x00000001, 0x50828805, 0x00000000, 0x80e34288, 0x00000000,
 920         0xb144040b, 0x00000000, 0xe1a6058e, 0x00000000, 0x12064711, 0x00000001,
 921         0xb0a18612, 0x00000010, 0xe1024794, 0x00000010, 0x11630915, 0x00000011,
 922         0x31c3ca1b, 0x00000011, 0xc1848a9c, 0x00000018, 0xf1e50da0, 0x00000018,
 923         0x22468e21, 0x00000019, 0x4286d023, 0x00000019, 0xa347d0a4, 0x00000019,
 924         0xb36811a6, 0x00000019, 0xf3e89227, 0x00000019, 0x0408d329, 0x0000001a,
 925         0x244953aa, 0x0000001a, 0x346994ab, 0x0000001a, 0x54aa152c, 0x0000001a,
 926         0x64ca55ad, 0x0000001a, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 927         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 928         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 929         0x00000000, 0x00000000, 0x10000001, 0x00000000, 0x20000082, 0x00000000,
 930         0x40000104, 0x00000000, 0x60004207, 0x00000001, 0x7000838a, 0x00000001,
 931         0xd021050d, 0x00000001, 0xe041c683, 0x00000001, 0x50828805, 0x00000000,
 932         0x80e34288, 0x00000000, 0xb144040b, 0x00000000, 0xe1a6058e, 0x00000000,
 933         0x12064711, 0x00000001, 0xb0a18612, 0x00000010, 0xe1024794, 0x00000010,
 934         0x11630915, 0x00000011, 0x31c3ca1b, 0x00000011, 0xc1848a9c, 0x00000018,
 935         0xf1e50da0, 0x00000018, 0x22468e21, 0x00000019, 0x4286d023, 0x00000019,
 936         0xa347d0a4, 0x00000019, 0xb36811a6, 0x00000019, 0xf3e89227, 0x00000019,
 937         0x0408d329, 0x0000001a, 0x244953aa, 0x0000001a, 0x346994ab, 0x0000001a,
 938         0x54aa152c, 0x0000001a, 0x64ca55ad, 0x0000001a,
 939 };
 940 
 941 static const u16 lpphy_aux_gain_idx_table[] = {
 942         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 943         0x0001, 0x0002, 0x0004, 0x0016, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 944         0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0004, 0x0016,
 945 };
 946 
 947 static const u32 lpphy_gain_value_table[] = {
 948         0x00000008, 0x0000000e, 0x00000014, 0x0000001a, 0x000000fb, 0x00000004,
 949         0x00000008, 0x0000000d, 0x00000001, 0x00000004, 0x00000007, 0x0000000a,
 950         0x0000000d, 0x00000010, 0x00000012, 0x00000015, 0x00000000, 0x00000006,
 951         0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000012, 0x00000000,
 952         0x00000000, 0x00000000, 0x00000018, 0x00000000, 0x00000000, 0x00000000,
 953         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 954         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 955         0x0000001e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
 956         0x00000000, 0x00000003, 0x00000006, 0x00000009, 0x0000000c, 0x0000000f,
 957         0x00000012, 0x00000015, 0x00000018, 0x0000001b, 0x0000001e, 0x00000000,
 958         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000009, 0x000000f1,
 959         0x00000000, 0x00000000,
 960 };
 961 
 962 static const u16 lpphy_gain_table[] = {
 963         0x0000, 0x0400, 0x0800, 0x0802, 0x0804, 0x0806, 0x0807, 0x0808, 0x080a,
 964         0x080b, 0x080c, 0x080e, 0x080f, 0x0810, 0x0812, 0x0813, 0x0814, 0x0816,
 965         0x0817, 0x081a, 0x081b, 0x081f, 0x0820, 0x0824, 0x0830, 0x0834, 0x0837,
 966         0x083b, 0x083f, 0x0840, 0x0844, 0x0857, 0x085b, 0x085f, 0x08d7, 0x08db,
 967         0x08df, 0x0957, 0x095b, 0x095f, 0x0b57, 0x0b5b, 0x0b5f, 0x0f5f, 0x135f,
 968         0x175f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 969         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 970         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 971         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 972         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 973         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 974 };
 975 
 976 static const u32 lpphy_a0_gain_idx_table[] = {
 977         0x001111e0, 0x00652051, 0x00606055, 0x005b005a, 0x00555060, 0x00511065,
 978         0x004c806b, 0x0047d072, 0x00444078, 0x00400080, 0x003ca087, 0x0039408f,
 979         0x0035e098, 0x0032e0a1, 0x003030aa, 0x002d80b4, 0x002ae0bf, 0x002880ca,
 980         0x002640d6, 0x002410e3, 0x002220f0, 0x002020ff, 0x001e510e, 0x001ca11e,
 981         0x001b012f, 0x00199140, 0x00182153, 0x0016c168, 0x0015817d, 0x00145193,
 982         0x001321ab, 0x001211c5, 0x001111e0, 0x001021fc, 0x000f321a, 0x000e523a,
 983         0x000d925c, 0x000cd27f, 0x000c12a5, 0x000b62cd, 0x000ac2f8, 0x000a2325,
 984         0x00099355, 0x00091387, 0x000883bd, 0x000813f5, 0x0007a432, 0x00073471,
 985         0x0006c4b5, 0x000664fc, 0x00061547, 0x0005b598, 0x000565ec, 0x00051646,
 986         0x0004d6a5, 0x0004870a, 0x00044775, 0x000407e6, 0x0003d85e, 0x000398dd,
 987         0x00036963, 0x000339f2, 0x00030a89, 0x0002db28,
 988 };
 989 
 990 static const u16 lpphy_a0_aux_gain_idx_table[] = {
 991         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 992         0x0000, 0x0000, 0x0002, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 993         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0014,
 994 };
 995 
 996 static const u32 lpphy_a0_gain_value_table[] = {
 997         0x00000008, 0x0000000e, 0x00000014, 0x0000001a, 0x000000fb, 0x00000004,
 998         0x00000008, 0x0000000d, 0x00000001, 0x00000004, 0x00000007, 0x0000000a,
 999         0x0000000d, 0x00000010, 0x00000012, 0x00000015, 0x00000000, 0x00000006,
1000         0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000012, 0x00000000,
1001         0x00000000, 0x00000000, 0x00000018, 0x00000000, 0x00000000, 0x00000000,
1002         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1003         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1004         0x0000001e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
1005         0x00000000, 0x00000003, 0x00000006, 0x00000009, 0x0000000c, 0x0000000f,
1006         0x00000012, 0x00000015, 0x00000018, 0x0000001b, 0x0000001e, 0x00000000,
1007         0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000f, 0x000000f7,
1008         0x00000000, 0x00000000,
1009 };
1010 
1011 static const u16 lpphy_a0_gain_table[] = {
1012         0x0000, 0x0002, 0x0004, 0x0006, 0x0007, 0x0008, 0x000a, 0x000b, 0x000c,
1013         0x000e, 0x000f, 0x0010, 0x0012, 0x0013, 0x0014, 0x0016, 0x0017, 0x001a,
1014         0x001b, 0x001f, 0x0020, 0x0024, 0x0030, 0x0034, 0x0037, 0x003b, 0x003f,
1015         0x0040, 0x0044, 0x0057, 0x005b, 0x005f, 0x00d7, 0x00db, 0x00df, 0x0157,
1016         0x015b, 0x015f, 0x0357, 0x035b, 0x035f, 0x075f, 0x0b5f, 0x0f5f, 0x0000,
1017         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1018         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1019         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1020         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1021         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1022         0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1023 };
1024 
1025 static const u16 lpphy_sw_control_table[] = {
1026         0x0128, 0x0128, 0x0009, 0x0009, 0x0028, 0x0028, 0x0028, 0x0028, 0x0128,
1027         0x0128, 0x0009, 0x0009, 0x0028, 0x0028, 0x0028, 0x0028, 0x0009, 0x0009,
1028         0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0018, 0x0018, 0x0018,
1029         0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0128, 0x0128, 0x0009, 0x0009,
1030         0x0028, 0x0028, 0x0028, 0x0028, 0x0128, 0x0128, 0x0009, 0x0009, 0x0028,
1031         0x0028, 0x0028, 0x0028, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009,
1032         0x0009, 0x0009, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
1033         0x0018,
1034 };
1035 
1036 static const u8 lpphy_hf_table[] = {
1037         0x4b, 0x36, 0x24, 0x18, 0x49, 0x34, 0x23, 0x17, 0x48,
1038         0x33, 0x23, 0x17, 0x48, 0x33, 0x23, 0x17,
1039 };
1040 
1041 static const u32 lpphy_papd_eps_table[] = {
1042         0x00000000, 0x00013ffc, 0x0001dff3, 0x0001bff0, 0x00023fe9, 0x00021fdf,
1043         0x00028fdf, 0x00033fd2, 0x00039fcb, 0x00043fc7, 0x0004efc2, 0x00055fb5,
1044         0x0005cfb0, 0x00063fa8, 0x00068fa3, 0x00071f98, 0x0007ef92, 0x00084f8b,
1045         0x0008df82, 0x00097f77, 0x0009df69, 0x000a3f62, 0x000adf57, 0x000b6f4c,
1046         0x000bff41, 0x000c9f39, 0x000cff30, 0x000dbf27, 0x000e4f1e, 0x000edf16,
1047         0x000f7f13, 0x00102f11, 0x00110f10, 0x0011df11, 0x0012ef15, 0x00143f1c,
1048         0x00158f27, 0x00172f35, 0x00193f47, 0x001baf5f, 0x001e6f7e, 0x0021cfa4,
1049         0x0025bfd2, 0x002a2008, 0x002fb047, 0x00360090, 0x003d40e0, 0x0045c135,
1050         0x004fb189, 0x005ae1d7, 0x0067221d, 0x0075025a, 0x007ff291, 0x007ff2bf,
1051         0x007ff2e3, 0x007ff2ff, 0x007ff315, 0x007ff329, 0x007ff33f, 0x007ff356,
1052         0x007ff36e, 0x007ff39c, 0x007ff441, 0x007ff506,
1053 };
1054 
1055 static const u32 lpphy_papd_mult_table[] = {
1056         0x001111e0, 0x00652051, 0x00606055, 0x005b005a, 0x00555060, 0x00511065,
1057         0x004c806b, 0x0047d072, 0x00444078, 0x00400080, 0x003ca087, 0x0039408f,
1058         0x0035e098, 0x0032e0a1, 0x003030aa, 0x002d80b4, 0x002ae0bf, 0x002880ca,
1059         0x002640d6, 0x002410e3, 0x002220f0, 0x002020ff, 0x001e510e, 0x001ca11e,
1060         0x001b012f, 0x00199140, 0x00182153, 0x0016c168, 0x0015817d, 0x00145193,
1061         0x001321ab, 0x001211c5, 0x001111e0, 0x001021fc, 0x000f321a, 0x000e523a,
1062         0x000d925c, 0x000cd27f, 0x000c12a5, 0x000b62cd, 0x000ac2f8, 0x000a2325,
1063         0x00099355, 0x00091387, 0x000883bd, 0x000813f5, 0x0007a432, 0x00073471,
1064         0x0006c4b5, 0x000664fc, 0x00061547, 0x0005b598, 0x000565ec, 0x00051646,
1065         0x0004d6a5, 0x0004870a, 0x00044775, 0x000407e6, 0x0003d85e, 0x000398dd,
1066         0x00036963, 0x000339f2, 0x00030a89, 0x0002db28,
1067 };
1068 
1069 static struct lpphy_tx_gain_table_entry lpphy_rev0_nopa_tx_gain_table[] = {
1070         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 152, },
1071         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 147, },
1072         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 143, },
1073         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 139, },
1074         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 135, },
1075         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 131, },
1076         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 128, },
1077         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 124, },
1078         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 121, },
1079         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 117, },
1080         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 114, },
1081         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 111, },
1082         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 107, },
1083         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 104, },
1084         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 101, },
1085         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 99, },
1086         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 96, },
1087         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 93, },
1088         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 90, },
1089         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 88, },
1090         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 85, },
1091         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 83, },
1092         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 81, },
1093         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 78, },
1094         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 76, },
1095         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 74, },
1096         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },
1097         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },
1098         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },
1099         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },
1100         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },
1101         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },
1102         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },
1103         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },
1104         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 57, },
1105         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },
1106         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },
1107         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 68, },
1108         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 66, },
1109         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 64, },
1110         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },
1111         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },
1112         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 59, },
1113         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 57, },
1114         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 71, },
1115         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 69, },
1116         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 67, },
1117         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 65, },
1118         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 63, },
1119         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },
1120         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },
1121         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 58, },
1122         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },
1123         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 70, },
1124         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 68, },
1125         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 66, },
1126         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },
1127         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },
1128         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },
1129         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 59, },
1130         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },
1131         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },
1132         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },
1133         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },
1134         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },
1135         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },
1136         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },
1137         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },
1138         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },
1139         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 56, },
1140         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },
1141         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },
1142         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },
1143         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },
1144         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },
1145         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },
1146         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },
1147         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },
1148         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },
1149         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },
1150         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },
1151         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },
1152         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },
1153         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },
1154         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },
1155         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },
1156         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },
1157         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },
1158         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },
1159         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },
1160         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },
1161         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },
1162         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },
1163         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },
1164         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },
1165         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },
1166         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },
1167         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },
1168         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },
1169         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },
1170         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },
1171         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },
1172         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },
1173         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },
1174         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },
1175         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },
1176         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },
1177         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },
1178         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },
1179         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },
1180         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },
1181         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },
1182         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },
1183         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },
1184         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },
1185         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },
1186         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },
1187         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },
1188         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },
1189         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },
1190         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },
1191         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },
1192         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },
1193         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },
1194         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },
1195         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },
1196         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },
1197         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },
1198 };
1199 
1200 static struct lpphy_tx_gain_table_entry lpphy_rev0_2ghz_tx_gain_table[] = {
1201         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },
1202         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },
1203         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },
1204         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },
1205         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },
1206         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },
1207         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },
1208         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },
1209         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },
1210         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },
1211         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },
1212         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },
1213         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },
1214         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },
1215         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },
1216         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },
1217         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },
1218         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },
1219         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },
1220         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },
1221         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },
1222         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },
1223         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },
1224         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },
1225         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },
1226         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },
1227         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },
1228         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },
1229         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },
1230         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },
1231         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },
1232         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },
1233         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },
1234         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },
1235         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },
1236         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },
1237         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },
1238         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },
1239         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },
1240         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },
1241         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },
1242         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },
1243         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },
1244         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },
1245         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },
1246         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },
1247         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },
1248         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },
1249         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },
1250         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },
1251         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },
1252         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },
1253         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },
1254         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },
1255         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },
1256         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },
1257         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },
1258         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },
1259         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },
1260         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 61, },
1261         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },
1262         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 72, },
1263         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 70, },
1264         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 68, },
1265         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 66, },
1266         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 64, },
1267         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 62, },
1268         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 60, },
1269         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 59, },
1270         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 72, },
1271         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 70, },
1272         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 68, },
1273         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 66, },
1274         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 64, },
1275         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 62, },
1276         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 60, },
1277         { .gm = 4, .pga = 10, .pad = 5, .dac = 0, .bb_mult = 59, },
1278         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 70, },
1279         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 68, },
1280         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 66, },
1281         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 64, },
1282         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 63, },
1283         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 61, },
1284         { .gm = 4, .pga = 9, .pad = 5, .dac = 0, .bb_mult = 59, },
1285         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 71, },
1286         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 69, },
1287         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 67, },
1288         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 65, },
1289         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 63, },
1290         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 62, },
1291         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 60, },
1292         { .gm = 4, .pga = 9, .pad = 4, .dac = 0, .bb_mult = 58, },
1293         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 70, },
1294         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 68, },
1295         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 66, },
1296         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 65, },
1297         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 63, },
1298         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 61, },
1299         { .gm = 4, .pga = 8, .pad = 4, .dac = 0, .bb_mult = 59, },
1300         { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 68, },
1301         { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 66, },
1302         { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 64, },
1303         { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 62, },
1304         { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 61, },
1305         { .gm = 4, .pga = 7, .pad = 4, .dac = 0, .bb_mult = 59, },
1306         { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 67, },
1307         { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 65, },
1308         { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 63, },
1309         { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 62, },
1310         { .gm = 4, .pga = 7, .pad = 3, .dac = 0, .bb_mult = 60, },
1311         { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 65, },
1312         { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 63, },
1313         { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 61, },
1314         { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 60, },
1315         { .gm = 4, .pga = 6, .pad = 3, .dac = 0, .bb_mult = 58, },
1316         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 68, },
1317         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 66, },
1318         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 64, },
1319         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 62, },
1320         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 60, },
1321         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 59, },
1322         { .gm = 4, .pga = 5, .pad = 3, .dac = 0, .bb_mult = 57, },
1323         { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 83, },
1324         { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 81, },
1325         { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 78, },
1326         { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 76, },
1327         { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 74, },
1328         { .gm = 4, .pga = 4, .pad = 2, .dac = 0, .bb_mult = 72, },
1329 };
1330 
1331 static struct lpphy_tx_gain_table_entry lpphy_rev0_5ghz_tx_gain_table[] = {
1332         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 99, },
1333         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 96, },
1334         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 93, },
1335         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 90, },
1336         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 88, },
1337         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 85, },
1338         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 83, },
1339         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 81, },
1340         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 78, },
1341         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 76, },
1342         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 74, },
1343         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 72, },
1344         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 70, },
1345         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 68, },
1346         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 66, },
1347         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 64, },
1348         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 62, },
1349         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 60, },
1350         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 59, },
1351         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 57, },
1352         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 55, },
1353         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },
1354         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },
1355         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },
1356         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },
1357         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },
1358         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },
1359         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },
1360         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 58, },
1361         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 56, },
1362         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 55, },
1363         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 71, },
1364         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 69, },
1365         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 67, },
1366         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 65, },
1367         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 63, },
1368         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },
1369         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },
1370         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 58, },
1371         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 56, },
1372         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 72, },
1373         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 70, },
1374         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 68, },
1375         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 66, },
1376         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 64, },
1377         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },
1378         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },
1379         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 59, },
1380         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },
1381         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 73, },
1382         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 71, },
1383         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 69, },
1384         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 67, },
1385         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },
1386         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },
1387         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },
1388         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 60, },
1389         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },
1390         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },
1391         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },
1392         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },
1393         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },
1394         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },
1395         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },
1396         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },
1397         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },
1398         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },
1399         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },
1400         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },
1401         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },
1402         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },
1403         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 61, },
1404         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },
1405         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 57, },
1406         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 56, },
1407         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },
1408         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },
1409         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 65, },
1410         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 63, },
1411         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 61, },
1412         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },
1413         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 58, },
1414         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },
1415         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },
1416         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },
1417         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },
1418         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },
1419         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },
1420         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },
1421         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },
1422         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },
1423         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },
1424         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },
1425         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },
1426         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },
1427         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },
1428         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },
1429         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 57, },
1430         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },
1431         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },
1432         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },
1433         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },
1434         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },
1435         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },
1436         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },
1437         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 57, },
1438         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 70, },
1439         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 68, },
1440         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 66, },
1441         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 64, },
1442         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 62, },
1443         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },
1444         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },
1445         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 57, },
1446         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },
1447         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },
1448         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },
1449         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 64, },
1450         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 62, },
1451         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },
1452         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },
1453         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 57, },
1454         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },
1455         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },
1456         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },
1457         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },
1458         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 62, },
1459         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },
1460 };
1461 
1462 static struct lpphy_tx_gain_table_entry lpphy_rev1_nopa_tx_gain_table[] = {
1463         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 152, },
1464         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 147, },
1465         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 143, },
1466         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 139, },
1467         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 135, },
1468         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 131, },
1469         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 128, },
1470         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 124, },
1471         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 121, },
1472         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 117, },
1473         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 114, },
1474         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 111, },
1475         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 107, },
1476         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 104, },
1477         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 101, },
1478         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 99, },
1479         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 96, },
1480         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 93, },
1481         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 90, },
1482         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 88, },
1483         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 85, },
1484         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 83, },
1485         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 81, },
1486         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 78, },
1487         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 76, },
1488         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 74, },
1489         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },
1490         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },
1491         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },
1492         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },
1493         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },
1494         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },
1495         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },
1496         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },
1497         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 57, },
1498         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },
1499         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },
1500         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },
1501         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },
1502         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },
1503         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },
1504         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },
1505         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },
1506         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 57, },
1507         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },
1508         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },
1509         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 68, },
1510         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 66, },
1511         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 64, },
1512         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },
1513         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },
1514         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 59, },
1515         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 57, },
1516         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 71, },
1517         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 69, },
1518         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 67, },
1519         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 65, },
1520         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 63, },
1521         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },
1522         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },
1523         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 58, },
1524         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },
1525         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 70, },
1526         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 68, },
1527         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 66, },
1528         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },
1529         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },
1530         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },
1531         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 59, },
1532         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },
1533         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },
1534         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },
1535         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },
1536         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },
1537         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },
1538         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },
1539         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },
1540         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },
1541         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 56, },
1542         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },
1543         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },
1544         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },
1545         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },
1546         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },
1547         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },
1548         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },
1549         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },
1550         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },
1551         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },
1552         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },
1553         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },
1554         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },
1555         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },
1556         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },
1557         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },
1558         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },
1559         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },
1560         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },
1561         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },
1562         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },
1563         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },
1564         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },
1565         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },
1566         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },
1567         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },
1568         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },
1569         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },
1570         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },
1571         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },
1572         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },
1573         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },
1574         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },
1575         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },
1576         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },
1577         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },
1578         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },
1579         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },
1580         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },
1581         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },
1582         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },
1583         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },
1584         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },
1585         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },
1586         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },
1587         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },
1588         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },
1589         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },
1590         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },
1591         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },
1592         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },
1593         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },
1594         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },
1595         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },
1596         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },
1597         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },
1598         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },
1599         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },
1600 };
1601 
1602 static struct lpphy_tx_gain_table_entry lpphy_rev1_2ghz_tx_gain_table[] = {
1603         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 90, },
1604         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 88, },
1605         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 85, },
1606         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 83, },
1607         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 81, },
1608         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 78, },
1609         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 76, },
1610         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 74, },
1611         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 72, },
1612         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 70, },
1613         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 68, },
1614         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 66, },
1615         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 64, },
1616         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 62, },
1617         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 60, },
1618         { .gm = 4, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 59, },
1619         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },
1620         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },
1621         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },
1622         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },
1623         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },
1624         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },
1625         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },
1626         { .gm = 4, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 59, },
1627         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 72, },
1628         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 70, },
1629         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 68, },
1630         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 66, },
1631         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 64, },
1632         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },
1633         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },
1634         { .gm = 4, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 59, },
1635         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 72, },
1636         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 70, },
1637         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 68, },
1638         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 66, },
1639         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 64, },
1640         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },
1641         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },
1642         { .gm = 4, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 59, },
1643         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 72, },
1644         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 70, },
1645         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 68, },
1646         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 66, },
1647         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 64, },
1648         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 62, },
1649         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 60, },
1650         { .gm = 4, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 59, },
1651         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 72, },
1652         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 70, },
1653         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 68, },
1654         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 66, },
1655         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 64, },
1656         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 62, },
1657         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },
1658         { .gm = 4, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 59, },
1659         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 72, },
1660         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },
1661         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },
1662         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },
1663         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },
1664         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },
1665         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 60, },
1666         { .gm = 4, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },
1667         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 72, },
1668         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 70, },
1669         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },
1670         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },
1671         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 64, },
1672         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 62, },
1673         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 60, },
1674         { .gm = 4, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },
1675         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 72, },
1676         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },
1677         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },
1678         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },
1679         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },
1680         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },
1681         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },
1682         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },
1683         { .gm = 4, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },
1684         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 72, },
1685         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },
1686         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },
1687         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },
1688         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },
1689         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },
1690         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },
1691         { .gm = 4, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },
1692         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 72, },
1693         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },
1694         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },
1695         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },
1696         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },
1697         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },
1698         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },
1699         { .gm = 4, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },
1700         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 73, },
1701         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 71, },
1702         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 69, },
1703         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 67, },
1704         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 65, },
1705         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 63, },
1706         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },
1707         { .gm = 4, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },
1708         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 72, },
1709         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },
1710         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },
1711         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },
1712         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 65, },
1713         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 63, },
1714         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },
1715         { .gm = 4, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },
1716         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 73, },
1717         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 71, },
1718         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },
1719         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },
1720         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },
1721         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },
1722         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 61, },
1723         { .gm = 4, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },
1724         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 72, },
1725         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 70, },
1726         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 68, },
1727         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 66, },
1728         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 64, },
1729         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 62, },
1730         { .gm = 4, .pga = 10, .pad = 6, .dac = 0, .bb_mult = 60, },
1731 };
1732 
1733 static struct lpphy_tx_gain_table_entry lpphy_rev1_5ghz_tx_gain_table[] = {
1734         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 99, },
1735         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 96, },
1736         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 93, },
1737         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 90, },
1738         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 88, },
1739         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 85, },
1740         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 83, },
1741         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 81, },
1742         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 78, },
1743         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 76, },
1744         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 74, },
1745         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 72, },
1746         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 70, },
1747         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 68, },
1748         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 66, },
1749         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 64, },
1750         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 62, },
1751         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 60, },
1752         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 59, },
1753         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 57, },
1754         { .gm = 7, .pga = 15, .pad = 15, .dac = 0, .bb_mult = 55, },
1755         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 72, },
1756         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 70, },
1757         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 68, },
1758         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 66, },
1759         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 64, },
1760         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 62, },
1761         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 60, },
1762         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 58, },
1763         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 56, },
1764         { .gm = 7, .pga = 15, .pad = 14, .dac = 0, .bb_mult = 55, },
1765         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 71, },
1766         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 69, },
1767         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 67, },
1768         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 65, },
1769         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 63, },
1770         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 62, },
1771         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 60, },
1772         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 58, },
1773         { .gm = 7, .pga = 15, .pad = 13, .dac = 0, .bb_mult = 56, },
1774         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 72, },
1775         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 70, },
1776         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 68, },
1777         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 66, },
1778         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 64, },
1779         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 62, },
1780         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 60, },
1781         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 59, },
1782         { .gm = 7, .pga = 15, .pad = 12, .dac = 0, .bb_mult = 57, },
1783         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 73, },
1784         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 71, },
1785         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 69, },
1786         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 67, },
1787         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 65, },
1788         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 63, },
1789         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 61, },
1790         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 60, },
1791         { .gm = 7, .pga = 15, .pad = 11, .dac = 0, .bb_mult = 58, },
1792         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 71, },
1793         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 69, },
1794         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 67, },
1795         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 65, },
1796         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 63, },
1797         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 61, },
1798         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 60, },
1799         { .gm = 7, .pga = 15, .pad = 10, .dac = 0, .bb_mult = 58, },
1800         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 70, },
1801         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 68, },
1802         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 66, },
1803         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 64, },
1804         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 62, },
1805         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 61, },
1806         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 59, },
1807         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 57, },
1808         { .gm = 7, .pga = 15, .pad = 9, .dac = 0, .bb_mult = 56, },
1809         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 68, },
1810         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 66, },
1811         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 65, },
1812         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 63, },
1813         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 61, },
1814         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 59, },
1815         { .gm = 7, .pga = 14, .pad = 9, .dac = 0, .bb_mult = 58, },
1816         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 70, },
1817         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 68, },
1818         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 66, },
1819         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 64, },
1820         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 63, },
1821         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 61, },
1822         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 59, },
1823         { .gm = 7, .pga = 13, .pad = 9, .dac = 0, .bb_mult = 57, },
1824         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 70, },
1825         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 68, },
1826         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 66, },
1827         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 64, },
1828         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 62, },
1829         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 60, },
1830         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 59, },
1831         { .gm = 7, .pga = 13, .pad = 8, .dac = 0, .bb_mult = 57, },
1832         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 70, },
1833         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 68, },
1834         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 66, },
1835         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 64, },
1836         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 62, },
1837         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 61, },
1838         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 59, },
1839         { .gm = 7, .pga = 12, .pad = 8, .dac = 0, .bb_mult = 57, },
1840         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 70, },
1841         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 68, },
1842         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 66, },
1843         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 64, },
1844         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 62, },
1845         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 61, },
1846         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 59, },
1847         { .gm = 7, .pga = 12, .pad = 7, .dac = 0, .bb_mult = 57, },
1848         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 70, },
1849         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 68, },
1850         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 66, },
1851         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 64, },
1852         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 62, },
1853         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 61, },
1854         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 59, },
1855         { .gm = 7, .pga = 11, .pad = 7, .dac = 0, .bb_mult = 57, },
1856         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 69, },
1857         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 67, },
1858         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 65, },
1859         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 63, },
1860         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 62, },
1861         { .gm = 7, .pga = 11, .pad = 6, .dac = 0, .bb_mult = 60, },
1862 };
1863 
1864 static struct lpphy_tx_gain_table_entry lpphy_rev2_nopa_tx_gain_table[] = {
1865         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 152, },
1866         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 147, },
1867         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 143, },
1868         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 139, },
1869         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 135, },
1870         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 131, },
1871         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 128, },
1872         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 124, },
1873         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 121, },
1874         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 117, },
1875         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 114, },
1876         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 111, },
1877         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 107, },
1878         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 104, },
1879         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 101, },
1880         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 99, },
1881         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 96, },
1882         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 93, },
1883         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 90, },
1884         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 88, },
1885         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 85, },
1886         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 83, },
1887         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 81, },
1888         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 78, },
1889         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 76, },
1890         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 74, },
1891         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 72, },
1892         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 70, },
1893         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 68, },
1894         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 66, },
1895         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 64, },
1896         { .gm = 255, .pga = 255, .pad = 197, .dac = 0, .bb_mult = 64, },
1897         { .gm = 255, .pga = 255, .pad = 192, .dac = 0, .bb_mult = 64, },
1898         { .gm = 255, .pga = 255, .pad = 186, .dac = 0, .bb_mult = 64, },
1899         { .gm = 255, .pga = 255, .pad = 181, .dac = 0, .bb_mult = 64, },
1900         { .gm = 255, .pga = 255, .pad = 176, .dac = 0, .bb_mult = 64, },
1901         { .gm = 255, .pga = 255, .pad = 171, .dac = 0, .bb_mult = 64, },
1902         { .gm = 255, .pga = 255, .pad = 166, .dac = 0, .bb_mult = 64, },
1903         { .gm = 255, .pga = 255, .pad = 161, .dac = 0, .bb_mult = 64, },
1904         { .gm = 255, .pga = 255, .pad = 157, .dac = 0, .bb_mult = 64, },
1905         { .gm = 255, .pga = 255, .pad = 152, .dac = 0, .bb_mult = 64, },
1906         { .gm = 255, .pga = 255, .pad = 148, .dac = 0, .bb_mult = 64, },
1907         { .gm = 255, .pga = 255, .pad = 144, .dac = 0, .bb_mult = 64, },
1908         { .gm = 255, .pga = 255, .pad = 140, .dac = 0, .bb_mult = 64, },
1909         { .gm = 255, .pga = 255, .pad = 136, .dac = 0, .bb_mult = 64, },
1910         { .gm = 255, .pga = 255, .pad = 132, .dac = 0, .bb_mult = 64, },
1911         { .gm = 255, .pga = 255, .pad = 128, .dac = 0, .bb_mult = 64, },
1912         { .gm = 255, .pga = 255, .pad = 124, .dac = 0, .bb_mult = 64, },
1913         { .gm = 255, .pga = 255, .pad = 121, .dac = 0, .bb_mult = 64, },
1914         { .gm = 255, .pga = 255, .pad = 117, .dac = 0, .bb_mult = 64, },
1915         { .gm = 255, .pga = 255, .pad = 114, .dac = 0, .bb_mult = 64, },
1916         { .gm = 255, .pga = 255, .pad = 111, .dac = 0, .bb_mult = 64, },
1917         { .gm = 255, .pga = 255, .pad = 108, .dac = 0, .bb_mult = 64, },
1918         { .gm = 255, .pga = 255, .pad = 105, .dac = 0, .bb_mult = 64, },
1919         { .gm = 255, .pga = 255, .pad = 102, .dac = 0, .bb_mult = 64, },
1920         { .gm = 255, .pga = 255, .pad = 99, .dac = 0, .bb_mult = 64, },
1921         { .gm = 255, .pga = 255, .pad = 96, .dac = 0, .bb_mult = 64, },
1922         { .gm = 255, .pga = 255, .pad = 93, .dac = 0, .bb_mult = 64, },
1923         { .gm = 255, .pga = 255, .pad = 91, .dac = 0, .bb_mult = 64, },
1924         { .gm = 255, .pga = 255, .pad = 88, .dac = 0, .bb_mult = 64, },
1925         { .gm = 255, .pga = 255, .pad = 86, .dac = 0, .bb_mult = 64, },
1926         { .gm = 255, .pga = 255, .pad = 83, .dac = 0, .bb_mult = 64, },
1927         { .gm = 255, .pga = 255, .pad = 81, .dac = 0, .bb_mult = 64, },
1928         { .gm = 255, .pga = 255, .pad = 79, .dac = 0, .bb_mult = 64, },
1929         { .gm = 255, .pga = 255, .pad = 76, .dac = 0, .bb_mult = 64, },
1930         { .gm = 255, .pga = 255, .pad = 74, .dac = 0, .bb_mult = 64, },
1931         { .gm = 255, .pga = 255, .pad = 72, .dac = 0, .bb_mult = 64, },
1932         { .gm = 255, .pga = 255, .pad = 70, .dac = 0, .bb_mult = 64, },
1933         { .gm = 255, .pga = 255, .pad = 68, .dac = 0, .bb_mult = 64, },
1934         { .gm = 255, .pga = 255, .pad = 66, .dac = 0, .bb_mult = 64, },
1935         { .gm = 255, .pga = 255, .pad = 64, .dac = 0, .bb_mult = 64, },
1936         { .gm = 255, .pga = 248, .pad = 64, .dac = 0, .bb_mult = 64, },
1937         { .gm = 255, .pga = 248, .pad = 62, .dac = 0, .bb_mult = 64, },
1938         { .gm = 255, .pga = 241, .pad = 62, .dac = 0, .bb_mult = 64, },
1939         { .gm = 255, .pga = 241, .pad = 60, .dac = 0, .bb_mult = 64, },
1940         { .gm = 255, .pga = 234, .pad = 60, .dac = 0, .bb_mult = 64, },
1941         { .gm = 255, .pga = 234, .pad = 59, .dac = 0, .bb_mult = 64, },
1942         { .gm = 255, .pga = 227, .pad = 59, .dac = 0, .bb_mult = 64, },
1943         { .gm = 255, .pga = 227, .pad = 57, .dac = 0, .bb_mult = 64, },
1944         { .gm = 255, .pga = 221, .pad = 57, .dac = 0, .bb_mult = 64, },
1945         { .gm = 255, .pga = 221, .pad = 55, .dac = 0, .bb_mult = 64, },
1946         { .gm = 255, .pga = 215, .pad = 55, .dac = 0, .bb_mult = 64, },
1947         { .gm = 255, .pga = 215, .pad = 54, .dac = 0, .bb_mult = 64, },
1948         { .gm = 255, .pga = 208, .pad = 54, .dac = 0, .bb_mult = 64, },
1949         { .gm = 255, .pga = 208, .pad = 52, .dac = 0, .bb_mult = 64, },
1950         { .gm = 255, .pga = 203, .pad = 52, .dac = 0, .bb_mult = 64, },
1951         { .gm = 255, .pga = 203, .pad = 51, .dac = 0, .bb_mult = 64, },
1952         { .gm = 255, .pga = 197, .pad = 51, .dac = 0, .bb_mult = 64, },
1953         { .gm = 255, .pga = 197, .pad = 49, .dac = 0, .bb_mult = 64, },
1954         { .gm = 255, .pga = 191, .pad = 49, .dac = 0, .bb_mult = 64, },
1955         { .gm = 255, .pga = 191, .pad = 48, .dac = 0, .bb_mult = 64, },
1956         { .gm = 255, .pga = 186, .pad = 48, .dac = 0, .bb_mult = 64, },
1957         { .gm = 255, .pga = 186, .pad = 47, .dac = 0, .bb_mult = 64, },
1958         { .gm = 255, .pga = 181, .pad = 47, .dac = 0, .bb_mult = 64, },
1959         { .gm = 255, .pga = 181, .pad = 45, .dac = 0, .bb_mult = 64, },
1960         { .gm = 255, .pga = 175, .pad = 45, .dac = 0, .bb_mult = 64, },
1961         { .gm = 255, .pga = 175, .pad = 44, .dac = 0, .bb_mult = 64, },
1962         { .gm = 255, .pga = 170, .pad = 44, .dac = 0, .bb_mult = 64, },
1963         { .gm = 255, .pga = 170, .pad = 43, .dac = 0, .bb_mult = 64, },
1964         { .gm = 255, .pga = 166, .pad = 43, .dac = 0, .bb_mult = 64, },
1965         { .gm = 255, .pga = 166, .pad = 42, .dac = 0, .bb_mult = 64, },
1966         { .gm = 255, .pga = 161, .pad = 42, .dac = 0, .bb_mult = 64, },
1967         { .gm = 255, .pga = 161, .pad = 40, .dac = 0, .bb_mult = 64, },
1968         { .gm = 255, .pga = 156, .pad = 40, .dac = 0, .bb_mult = 64, },
1969         { .gm = 255, .pga = 156, .pad = 39, .dac = 0, .bb_mult = 64, },
1970         { .gm = 255, .pga = 152, .pad = 39, .dac = 0, .bb_mult = 64, },
1971         { .gm = 255, .pga = 152, .pad = 38, .dac = 0, .bb_mult = 64, },
1972         { .gm = 255, .pga = 148, .pad = 38, .dac = 0, .bb_mult = 64, },
1973         { .gm = 255, .pga = 148, .pad = 37, .dac = 0, .bb_mult = 64, },
1974         { .gm = 255, .pga = 143, .pad = 37, .dac = 0, .bb_mult = 64, },
1975         { .gm = 255, .pga = 143, .pad = 36, .dac = 0, .bb_mult = 64, },
1976         { .gm = 255, .pga = 139, .pad = 36, .dac = 0, .bb_mult = 64, },
1977         { .gm = 255, .pga = 139, .pad = 35, .dac = 0, .bb_mult = 64, },
1978         { .gm = 255, .pga = 135, .pad = 35, .dac = 0, .bb_mult = 64, },
1979         { .gm = 255, .pga = 135, .pad = 34, .dac = 0, .bb_mult = 64, },
1980         { .gm = 255, .pga = 132, .pad = 34, .dac = 0, .bb_mult = 64, },
1981         { .gm = 255, .pga = 132, .pad = 33, .dac = 0, .bb_mult = 64, },
1982         { .gm = 255, .pga = 128, .pad = 33, .dac = 0, .bb_mult = 64, },
1983         { .gm = 255, .pga = 128, .pad = 32, .dac = 0, .bb_mult = 64, },
1984         { .gm = 255, .pga = 124, .pad = 32, .dac = 0, .bb_mult = 64, },
1985         { .gm = 255, .pga = 124, .pad = 31, .dac = 0, .bb_mult = 64, },
1986         { .gm = 255, .pga = 121, .pad = 31, .dac = 0, .bb_mult = 64, },
1987         { .gm = 255, .pga = 121, .pad = 30, .dac = 0, .bb_mult = 64, },
1988         { .gm = 255, .pga = 117, .pad = 30, .dac = 0, .bb_mult = 64, },
1989         { .gm = 255, .pga = 117, .pad = 29, .dac = 0, .bb_mult = 64, },
1990         { .gm = 255, .pga = 114, .pad = 29, .dac = 0, .bb_mult = 64, },
1991         { .gm = 255, .pga = 114, .pad = 29, .dac = 0, .bb_mult = 64, },
1992         { .gm = 255, .pga = 111, .pad = 29, .dac = 0, .bb_mult = 64, },
1993 };
1994 
1995 static struct lpphy_tx_gain_table_entry lpphy_rev2_2ghz_tx_gain_table[] = {
1996         { .gm = 7, .pga = 99, .pad = 255, .dac = 0, .bb_mult = 64, },
1997         { .gm = 7, .pga = 96, .pad = 255, .dac = 0, .bb_mult = 64, },
1998         { .gm = 7, .pga = 93, .pad = 255, .dac = 0, .bb_mult = 64, },
1999         { .gm = 7, .pga = 90, .pad = 255, .dac = 0, .bb_mult = 64, },
2000         { .gm = 7, .pga = 88, .pad = 255, .dac = 0, .bb_mult = 64, },
2001         { .gm = 7, .pga = 85, .pad = 255, .dac = 0, .bb_mult = 64, },
2002         { .gm = 7, .pga = 83, .pad = 255, .dac = 0, .bb_mult = 64, },
2003         { .gm = 7, .pga = 81, .pad = 255, .dac = 0, .bb_mult = 64, },
2004         { .gm = 7, .pga = 78, .pad = 255, .dac = 0, .bb_mult = 64, },
2005         { .gm = 7, .pga = 76, .pad = 255, .dac = 0, .bb_mult = 64, },
2006         { .gm = 7, .pga = 74, .pad = 255, .dac = 0, .bb_mult = 64, },
2007         { .gm = 7, .pga = 72, .pad = 255, .dac = 0, .bb_mult = 64, },
2008         { .gm = 7, .pga = 70, .pad = 255, .dac = 0, .bb_mult = 64, },
2009         { .gm = 7, .pga = 68, .pad = 255, .dac = 0, .bb_mult = 64, },
2010         { .gm = 7, .pga = 66, .pad = 255, .dac = 0, .bb_mult = 64, },
2011         { .gm = 7, .pga = 64, .pad = 255, .dac = 0, .bb_mult = 64, },
2012         { .gm = 7, .pga = 64, .pad = 255, .dac = 0, .bb_mult = 64, },
2013         { .gm = 7, .pga = 62, .pad = 255, .dac = 0, .bb_mult = 64, },
2014         { .gm = 7, .pga = 62, .pad = 248, .dac = 0, .bb_mult = 64, },
2015         { .gm = 7, .pga = 60, .pad = 248, .dac = 0, .bb_mult = 64, },
2016         { .gm = 7, .pga = 60, .pad = 241, .dac = 0, .bb_mult = 64, },
2017         { .gm = 7, .pga = 59, .pad = 241, .dac = 0, .bb_mult = 64, },
2018         { .gm = 7, .pga = 59, .pad = 234, .dac = 0, .bb_mult = 64, },
2019         { .gm = 7, .pga = 57, .pad = 234, .dac = 0, .bb_mult = 64, },
2020         { .gm = 7, .pga = 57, .pad = 227, .dac = 0, .bb_mult = 64, },
2021         { .gm = 7, .pga = 55, .pad = 227, .dac = 0, .bb_mult = 64, },
2022         { .gm = 7, .pga = 55, .pad = 221, .dac = 0, .bb_mult = 64, },
2023         { .gm = 7, .pga = 54, .pad = 221, .dac = 0, .bb_mult = 64, },
2024         { .gm = 7, .pga = 54, .pad = 215, .dac = 0, .bb_mult = 64, },
2025         { .gm = 7, .pga = 52, .pad = 215, .dac = 0, .bb_mult = 64, },
2026         { .gm = 7, .pga = 52, .pad = 208, .dac = 0, .bb_mult = 64, },
2027         { .gm = 7, .pga = 51, .pad = 208, .dac = 0, .bb_mult = 64, },
2028         { .gm = 7, .pga = 51, .pad = 203, .dac = 0, .bb_mult = 64, },
2029         { .gm = 7, .pga = 49, .pad = 203, .dac = 0, .bb_mult = 64, },
2030         { .gm = 7, .pga = 49, .pad = 197, .dac = 0, .bb_mult = 64, },
2031         { .gm = 7, .pga = 48, .pad = 197, .dac = 0, .bb_mult = 64, },
2032         { .gm = 7, .pga = 48, .pad = 191, .dac = 0, .bb_mult = 64, },
2033         { .gm = 7, .pga = 47, .pad = 191, .dac = 0, .bb_mult = 64, },
2034         { .gm = 7, .pga = 47, .pad = 186, .dac = 0, .bb_mult = 64, },
2035         { .gm = 7, .pga = 45, .pad = 186, .dac = 0, .bb_mult = 64, },
2036         { .gm = 7, .pga = 45, .pad = 181, .dac = 0, .bb_mult = 64, },
2037         { .gm = 7, .pga = 44, .pad = 181, .dac = 0, .bb_mult = 64, },
2038         { .gm = 7, .pga = 44, .pad = 175, .dac = 0, .bb_mult = 64, },
2039         { .gm = 7, .pga = 43, .pad = 175, .dac = 0, .bb_mult = 64, },
2040         { .gm = 7, .pga = 43, .pad = 170, .dac = 0, .bb_mult = 64, },
2041         { .gm = 7, .pga = 42, .pad = 170, .dac = 0, .bb_mult = 64, },
2042         { .gm = 7, .pga = 42, .pad = 166, .dac = 0, .bb_mult = 64, },
2043         { .gm = 7, .pga = 40, .pad = 166, .dac = 0, .bb_mult = 64, },
2044         { .gm = 7, .pga = 40, .pad = 161, .dac = 0, .bb_mult = 64, },
2045         { .gm = 7, .pga = 39, .pad = 161, .dac = 0, .bb_mult = 64, },
2046         { .gm = 7, .pga = 39, .pad = 156, .dac = 0, .bb_mult = 64, },
2047         { .gm = 7, .pga = 38, .pad = 156, .dac = 0, .bb_mult = 64, },
2048         { .gm = 7, .pga = 38, .pad = 152, .dac = 0, .bb_mult = 64, },
2049         { .gm = 7, .pga = 37, .pad = 152, .dac = 0, .bb_mult = 64, },
2050         { .gm = 7, .pga = 37, .pad = 148, .dac = 0, .bb_mult = 64, },
2051         { .gm = 7, .pga = 36, .pad = 148, .dac = 0, .bb_mult = 64, },
2052         { .gm = 7, .pga = 36, .pad = 143, .dac = 0, .bb_mult = 64, },
2053         { .gm = 7, .pga = 35, .pad = 143, .dac = 0, .bb_mult = 64, },
2054         { .gm = 7, .pga = 35, .pad = 139, .dac = 0, .bb_mult = 64, },
2055         { .gm = 7, .pga = 34, .pad = 139, .dac = 0, .bb_mult = 64, },
2056         { .gm = 7, .pga = 34, .pad = 135, .dac = 0, .bb_mult = 64, },
2057         { .gm = 7, .pga = 33, .pad = 135, .dac = 0, .bb_mult = 64, },
2058         { .gm = 7, .pga = 33, .pad = 132, .dac = 0, .bb_mult = 64, },
2059         { .gm = 7, .pga = 32, .pad = 132, .dac = 0, .bb_mult = 64, },
2060         { .gm = 7, .pga = 32, .pad = 128, .dac = 0, .bb_mult = 64, },
2061         { .gm = 7, .pga = 31, .pad = 128, .dac = 0, .bb_mult = 64, },
2062         { .gm = 7, .pga = 31, .pad = 124, .dac = 0, .bb_mult = 64, },
2063         { .gm = 7, .pga = 30, .pad = 124, .dac = 0, .bb_mult = 64, },
2064         { .gm = 7, .pga = 30, .pad = 121, .dac = 0, .bb_mult = 64, },
2065         { .gm = 7, .pga = 29, .pad = 121, .dac = 0, .bb_mult = 64, },
2066         { .gm = 7, .pga = 29, .pad = 117, .dac = 0, .bb_mult = 64, },
2067         { .gm = 7, .pga = 29, .pad = 117, .dac = 0, .bb_mult = 64, },
2068         { .gm = 7, .pga = 29, .pad = 114, .dac = 0, .bb_mult = 64, },
2069         { .gm = 7, .pga = 28, .pad = 114, .dac = 0, .bb_mult = 64, },
2070         { .gm = 7, .pga = 28, .pad = 111, .dac = 0, .bb_mult = 64, },
2071         { .gm = 7, .pga = 27, .pad = 111, .dac = 0, .bb_mult = 64, },
2072         { .gm = 7, .pga = 27, .pad = 108, .dac = 0, .bb_mult = 64, },
2073         { .gm = 7, .pga = 26, .pad = 108, .dac = 0, .bb_mult = 64, },
2074         { .gm = 7, .pga = 26, .pad = 104, .dac = 0, .bb_mult = 64, },
2075         { .gm = 7, .pga = 25, .pad = 104, .dac = 0, .bb_mult = 64, },
2076         { .gm = 7, .pga = 25, .pad = 102, .dac = 0, .bb_mult = 64, },
2077         { .gm = 7, .pga = 25, .pad = 102, .dac = 0, .bb_mult = 64, },
2078         { .gm = 7, .pga = 25, .pad = 99, .dac = 0, .bb_mult = 64, },
2079         { .gm = 7, .pga = 24, .pad = 99, .dac = 0, .bb_mult = 64, },
2080         { .gm = 7, .pga = 24, .pad = 96, .dac = 0, .bb_mult = 64, },
2081         { .gm = 7, .pga = 23, .pad = 96, .dac = 0, .bb_mult = 64, },
2082         { .gm = 7, .pga = 23, .pad = 93, .dac = 0, .bb_mult = 64, },
2083         { .gm = 7, .pga = 23, .pad = 93, .dac = 0, .bb_mult = 64, },
2084         { .gm = 7, .pga = 23, .pad = 90, .dac = 0, .bb_mult = 64, },
2085         { .gm = 7, .pga = 22, .pad = 90, .dac = 0, .bb_mult = 64, },
2086         { .gm = 7, .pga = 22, .pad = 88, .dac = 0, .bb_mult = 64, },
2087         { .gm = 7, .pga = 21, .pad = 88, .dac = 0, .bb_mult = 64, },
2088         { .gm = 7, .pga = 21, .pad = 85, .dac = 0, .bb_mult = 64, },
2089         { .gm = 7, .pga = 21, .pad = 85, .dac = 0, .bb_mult = 64, },
2090         { .gm = 7, .pga = 21, .pad = 83, .dac = 0, .bb_mult = 64, },
2091         { .gm = 7, .pga = 20, .pad = 83, .dac = 0, .bb_mult = 64, },
2092         { .gm = 7, .pga = 20, .pad = 81, .dac = 0, .bb_mult = 64, },
2093         { .gm = 7, .pga = 20, .pad = 81, .dac = 0, .bb_mult = 64, },
2094         { .gm = 7, .pga = 20, .pad = 78, .dac = 0, .bb_mult = 64, },
2095         { .gm = 7, .pga = 19, .pad = 78, .dac = 0, .bb_mult = 64, },
2096         { .gm = 7, .pga = 19, .pad = 76, .dac = 0, .bb_mult = 64, },
2097         { .gm = 7, .pga = 19, .pad = 76, .dac = 0, .bb_mult = 64, },
2098         { .gm = 7, .pga = 19, .pad = 74, .dac = 0, .bb_mult = 64, },
2099         { .gm = 7, .pga = 18, .pad = 74, .dac = 0, .bb_mult = 64, },
2100         { .gm = 7, .pga = 18, .pad = 72, .dac = 0, .bb_mult = 64, },
2101         { .gm = 7, .pga = 18, .pad = 72, .dac = 0, .bb_mult = 64, },
2102         { .gm = 7, .pga = 18, .pad = 70, .dac = 0, .bb_mult = 64, },
2103         { .gm = 7, .pga = 17, .pad = 70, .dac = 0, .bb_mult = 64, },
2104         { .gm = 7, .pga = 17, .pad = 68, .dac = 0, .bb_mult = 64, },
2105         { .gm = 7, .pga = 17, .pad = 68, .dac = 0, .bb_mult = 64, },
2106         { .gm = 7, .pga = 17, .pad = 66, .dac = 0, .bb_mult = 64, },
2107         { .gm = 7, .pga = 16, .pad = 66, .dac = 0, .bb_mult = 64, },
2108         { .gm = 7, .pga = 16, .pad = 64, .dac = 0, .bb_mult = 64, },
2109         { .gm = 7, .pga = 16, .pad = 64, .dac = 0, .bb_mult = 64, },
2110         { .gm = 7, .pga = 16, .pad = 62, .dac = 0, .bb_mult = 64, },
2111         { .gm = 7, .pga = 15, .pad = 62, .dac = 0, .bb_mult = 64, },
2112         { .gm = 7, .pga = 15, .pad = 60, .dac = 0, .bb_mult = 64, },
2113         { .gm = 7, .pga = 15, .pad = 60, .dac = 0, .bb_mult = 64, },
2114         { .gm = 7, .pga = 15, .pad = 59, .dac = 0, .bb_mult = 64, },
2115         { .gm = 7, .pga = 14, .pad = 59, .dac = 0, .bb_mult = 64, },
2116         { .gm = 7, .pga = 14, .pad = 57, .dac = 0, .bb_mult = 64, },
2117         { .gm = 7, .pga = 14, .pad = 57, .dac = 0, .bb_mult = 64, },
2118         { .gm = 7, .pga = 14, .pad = 55, .dac = 0, .bb_mult = 64, },
2119         { .gm = 7, .pga = 14, .pad = 55, .dac = 0, .bb_mult = 64, },
2120         { .gm = 7, .pga = 14, .pad = 54, .dac = 0, .bb_mult = 64, },
2121         { .gm = 7, .pga = 13, .pad = 54, .dac = 0, .bb_mult = 64, },
2122         { .gm = 7, .pga = 13, .pad = 52, .dac = 0, .bb_mult = 64, },
2123         { .gm = 7, .pga = 13, .pad = 52, .dac = 0, .bb_mult = 64, },
2124 };
2125 
2126 static struct lpphy_tx_gain_table_entry lpphy_rev2_5ghz_tx_gain_table[] = {
2127         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 152, },
2128         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 147, },
2129         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 143, },
2130         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 139, },
2131         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 135, },
2132         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 131, },
2133         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 128, },
2134         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 124, },
2135         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 121, },
2136         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 117, },
2137         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 114, },
2138         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 111, },
2139         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 107, },
2140         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 104, },
2141         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 101, },
2142         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 99, },
2143         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 96, },
2144         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 93, },
2145         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 90, },
2146         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 88, },
2147         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 85, },
2148         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 83, },
2149         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 81, },
2150         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 78, },
2151         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 76, },
2152         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 74, },
2153         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 72, },
2154         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 70, },
2155         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 68, },
2156         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 66, },
2157         { .gm = 255, .pga = 255, .pad = 255, .dac = 0, .bb_mult = 64, },
2158         { .gm = 255, .pga = 255, .pad = 248, .dac = 0, .bb_mult = 64, },
2159         { .gm = 255, .pga = 255, .pad = 241, .dac = 0, .bb_mult = 64, },
2160         { .gm = 255, .pga = 255, .pad = 234, .dac = 0, .bb_mult = 64, },
2161         { .gm = 255, .pga = 255, .pad = 227, .dac = 0, .bb_mult = 64, },
2162         { .gm = 255, .pga = 255, .pad = 221, .dac = 0, .bb_mult = 64, },
2163         { .gm = 255, .pga = 255, .pad = 215, .dac = 0, .bb_mult = 64, },
2164         { .gm = 255, .pga = 255, .pad = 208, .dac = 0, .bb_mult = 64, },
2165         { .gm = 255, .pga = 255, .pad = 203, .dac = 0, .bb_mult = 64, },
2166         { .gm = 255, .pga = 255, .pad = 197, .dac = 0, .bb_mult = 64, },
2167         { .gm = 255, .pga = 255, .pad = 191, .dac = 0, .bb_mult = 64, },
2168         { .gm = 255, .pga = 255, .pad = 186, .dac = 0, .bb_mult = 64, },
2169         { .gm = 255, .pga = 255, .pad = 181, .dac = 0, .bb_mult = 64, },
2170         { .gm = 255, .pga = 255, .pad = 175, .dac = 0, .bb_mult = 64, },
2171         { .gm = 255, .pga = 255, .pad = 170, .dac = 0, .bb_mult = 64, },
2172         { .gm = 255, .pga = 255, .pad = 166, .dac = 0, .bb_mult = 64, },
2173         { .gm = 255, .pga = 255, .pad = 161, .dac = 0, .bb_mult = 64, },
2174         { .gm = 255, .pga = 255, .pad = 156, .dac = 0, .bb_mult = 64, },
2175         { .gm = 255, .pga = 255, .pad = 152, .dac = 0, .bb_mult = 64, },
2176         { .gm = 255, .pga = 255, .pad = 148, .dac = 0, .bb_mult = 64, },
2177         { .gm = 255, .pga = 255, .pad = 143, .dac = 0, .bb_mult = 64, },
2178         { .gm = 255, .pga = 255, .pad = 139, .dac = 0, .bb_mult = 64, },
2179         { .gm = 255, .pga = 255, .pad = 135, .dac = 0, .bb_mult = 64, },
2180         { .gm = 255, .pga = 255, .pad = 132, .dac = 0, .bb_mult = 64, },
2181         { .gm = 255, .pga = 255, .pad = 128, .dac = 0, .bb_mult = 64, },
2182         { .gm = 255, .pga = 255, .pad = 124, .dac = 0, .bb_mult = 64, },
2183         { .gm = 255, .pga = 255, .pad = 121, .dac = 0, .bb_mult = 64, },
2184         { .gm = 255, .pga = 255, .pad = 117, .dac = 0, .bb_mult = 64, },
2185         { .gm = 255, .pga = 255, .pad = 114, .dac = 0, .bb_mult = 64, },
2186         { .gm = 255, .pga = 255, .pad = 111, .dac = 0, .bb_mult = 64, },
2187         { .gm = 255, .pga = 255, .pad = 108, .dac = 0, .bb_mult = 64, },
2188         { .gm = 255, .pga = 255, .pad = 104, .dac = 0, .bb_mult = 64, },
2189         { .gm = 255, .pga = 255, .pad = 102, .dac = 0, .bb_mult = 64, },
2190         { .gm = 255, .pga = 255, .pad = 99, .dac = 0, .bb_mult = 64, },
2191         { .gm = 255, .pga = 255, .pad = 96, .dac = 0, .bb_mult = 64, },
2192         { .gm = 255, .pga = 255, .pad = 93, .dac = 0, .bb_mult = 64, },
2193         { .gm = 255, .pga = 255, .pad = 90, .dac = 0, .bb_mult = 64, },
2194         { .gm = 255, .pga = 255, .pad = 88, .dac = 0, .bb_mult = 64, },
2195         { .gm = 255, .pga = 255, .pad = 85, .dac = 0, .bb_mult = 64, },
2196         { .gm = 255, .pga = 255, .pad = 83, .dac = 0, .bb_mult = 64, },
2197         { .gm = 255, .pga = 255, .pad = 81, .dac = 0, .bb_mult = 64, },
2198         { .gm = 255, .pga = 255, .pad = 78, .dac = 0, .bb_mult = 64, },
2199         { .gm = 255, .pga = 255, .pad = 76, .dac = 0, .bb_mult = 64, },
2200         { .gm = 255, .pga = 255, .pad = 74, .dac = 0, .bb_mult = 64, },
2201         { .gm = 255, .pga = 255, .pad = 72, .dac = 0, .bb_mult = 64, },
2202         { .gm = 255, .pga = 255, .pad = 70, .dac = 0, .bb_mult = 64, },
2203         { .gm = 255, .pga = 255, .pad = 68, .dac = 0, .bb_mult = 64, },
2204         { .gm = 255, .pga = 255, .pad = 66, .dac = 0, .bb_mult = 64, },
2205         { .gm = 255, .pga = 255, .pad = 64, .dac = 0, .bb_mult = 64, },
2206         { .gm = 255, .pga = 255, .pad = 64, .dac = 0, .bb_mult = 64, },
2207         { .gm = 255, .pga = 255, .pad = 62, .dac = 0, .bb_mult = 64, },
2208         { .gm = 255, .pga = 248, .pad = 62, .dac = 0, .bb_mult = 64, },
2209         { .gm = 255, .pga = 248, .pad = 60, .dac = 0, .bb_mult = 64, },
2210         { .gm = 255, .pga = 241, .pad = 60, .dac = 0, .bb_mult = 64, },
2211         { .gm = 255, .pga = 241, .pad = 59, .dac = 0, .bb_mult = 64, },
2212         { .gm = 255, .pga = 234, .pad = 59, .dac = 0, .bb_mult = 64, },
2213         { .gm = 255, .pga = 234, .pad = 57, .dac = 0, .bb_mult = 64, },
2214         { .gm = 255, .pga = 227, .pad = 57, .dac = 0, .bb_mult = 64, },
2215         { .gm = 255, .pga = 227, .pad = 55, .dac = 0, .bb_mult = 64, },
2216         { .gm = 255, .pga = 221, .pad = 55, .dac = 0, .bb_mult = 64, },
2217         { .gm = 255, .pga = 221, .pad = 54, .dac = 0, .bb_mult = 64, },
2218         { .gm = 255, .pga = 215, .pad = 54, .dac = 0, .bb_mult = 64, },
2219         { .gm = 255, .pga = 215, .pad = 52, .dac = 0, .bb_mult = 64, },
2220         { .gm = 255, .pga = 208, .pad = 52, .dac = 0, .bb_mult = 64, },
2221         { .gm = 255, .pga = 208, .pad = 51, .dac = 0, .bb_mult = 64, },
2222         { .gm = 255, .pga = 203, .pad = 51, .dac = 0, .bb_mult = 64, },
2223         { .gm = 255, .pga = 203, .pad = 49, .dac = 0, .bb_mult = 64, },
2224         { .gm = 255, .pga = 197, .pad = 49, .dac = 0, .bb_mult = 64, },
2225         { .gm = 255, .pga = 197, .pad = 48, .dac = 0, .bb_mult = 64, },
2226         { .gm = 255, .pga = 191, .pad = 48, .dac = 0, .bb_mult = 64, },
2227         { .gm = 255, .pga = 191, .pad = 47, .dac = 0, .bb_mult = 64, },
2228         { .gm = 255, .pga = 186, .pad = 47, .dac = 0, .bb_mult = 64, },
2229         { .gm = 255, .pga = 186, .pad = 45, .dac = 0, .bb_mult = 64, },
2230         { .gm = 255, .pga = 181, .pad = 45, .dac = 0, .bb_mult = 64, },
2231         { .gm = 255, .pga = 181, .pad = 44, .dac = 0, .bb_mult = 64, },
2232         { .gm = 255, .pga = 175, .pad = 44, .dac = 0, .bb_mult = 64, },
2233         { .gm = 255, .pga = 175, .pad = 43, .dac = 0, .bb_mult = 64, },
2234         { .gm = 255, .pga = 170, .pad = 43, .dac = 0, .bb_mult = 64, },
2235         { .gm = 255, .pga = 170, .pad = 42, .dac = 0, .bb_mult = 64, },
2236         { .gm = 255, .pga = 166, .pad = 42, .dac = 0, .bb_mult = 64, },
2237         { .gm = 255, .pga = 166, .pad = 40, .dac = 0, .bb_mult = 64, },
2238         { .gm = 255, .pga = 161, .pad = 40, .dac = 0, .bb_mult = 64, },
2239         { .gm = 255, .pga = 161, .pad = 39, .dac = 0, .bb_mult = 64, },
2240         { .gm = 255, .pga = 156, .pad = 39, .dac = 0, .bb_mult = 64, },
2241         { .gm = 255, .pga = 156, .pad = 38, .dac = 0, .bb_mult = 64, },
2242         { .gm = 255, .pga = 152, .pad = 38, .dac = 0, .bb_mult = 64, },
2243         { .gm = 255, .pga = 152, .pad = 37, .dac = 0, .bb_mult = 64, },
2244         { .gm = 255, .pga = 148, .pad = 37, .dac = 0, .bb_mult = 64, },
2245         { .gm = 255, .pga = 148, .pad = 36, .dac = 0, .bb_mult = 64, },
2246         { .gm = 255, .pga = 143, .pad = 36, .dac = 0, .bb_mult = 64, },
2247         { .gm = 255, .pga = 143, .pad = 35, .dac = 0, .bb_mult = 64, },
2248         { .gm = 255, .pga = 139, .pad = 35, .dac = 0, .bb_mult = 64, },
2249         { .gm = 255, .pga = 139, .pad = 34, .dac = 0, .bb_mult = 64, },
2250         { .gm = 255, .pga = 135, .pad = 34, .dac = 0, .bb_mult = 64, },
2251         { .gm = 255, .pga = 135, .pad = 33, .dac = 0, .bb_mult = 64, },
2252         { .gm = 255, .pga = 132, .pad = 33, .dac = 0, .bb_mult = 64, },
2253         { .gm = 255, .pga = 132, .pad = 32, .dac = 0, .bb_mult = 64, },
2254         { .gm = 255, .pga = 128, .pad = 32, .dac = 0, .bb_mult = 64, },
2255 };
2256 
2257 void lpphy_rev0_1_table_init(struct b43_wldev *dev)
2258 {
2259         B43_WARN_ON(dev->phy.rev >= 2);
2260 
2261         b43_lptab_write_bulk(dev, B43_LPTAB8(2, 0),
2262                 ARRAY_SIZE(lpphy_min_sig_sq_table), lpphy_min_sig_sq_table);
2263         b43_lptab_write_bulk(dev, B43_LPTAB16(1, 0),
2264                 ARRAY_SIZE(lpphy_rev01_noise_scale_table), lpphy_rev01_noise_scale_table);
2265         b43_lptab_write_bulk(dev, B43_LPTAB16(14, 0),
2266                 ARRAY_SIZE(lpphy_crs_gain_nft_table), lpphy_crs_gain_nft_table);
2267         b43_lptab_write_bulk(dev, B43_LPTAB16(8, 0),
2268                 ARRAY_SIZE(lpphy_rev01_filter_control_table), lpphy_rev01_filter_control_table);
2269         b43_lptab_write_bulk(dev, B43_LPTAB32(9, 0),
2270                 ARRAY_SIZE(lpphy_rev01_ps_control_table), lpphy_rev01_ps_control_table);
2271         b43_lptab_write_bulk(dev, B43_LPTAB8(6, 0),
2272                 ARRAY_SIZE(lpphy_pll_fraction_table), lpphy_pll_fraction_table);
2273         b43_lptab_write_bulk(dev, B43_LPTAB16(0, 0),
2274                 ARRAY_SIZE(lpphy_iqlo_cal_table), lpphy_iqlo_cal_table);
2275         if (dev->phy.rev == 0) {
2276                 b43_lptab_write_bulk(dev, B43_LPTAB16(13, 0),
2277                         ARRAY_SIZE(lpphy_rev0_ofdm_cck_gain_table), lpphy_rev0_ofdm_cck_gain_table);
2278                 b43_lptab_write_bulk(dev, B43_LPTAB16(12, 0),
2279                         ARRAY_SIZE(lpphy_rev0_ofdm_cck_gain_table), lpphy_rev0_ofdm_cck_gain_table);
2280         } else {
2281                 b43_lptab_write_bulk(dev, B43_LPTAB16(13, 0),
2282                         ARRAY_SIZE(lpphy_rev1_ofdm_cck_gain_table), lpphy_rev1_ofdm_cck_gain_table);
2283                 b43_lptab_write_bulk(dev, B43_LPTAB16(12, 0),
2284                         ARRAY_SIZE(lpphy_rev1_ofdm_cck_gain_table), lpphy_rev1_ofdm_cck_gain_table);
2285 }
2286         b43_lptab_write_bulk(dev, B43_LPTAB16(15, 0),
2287                 ARRAY_SIZE(lpphy_gain_delta_table), lpphy_gain_delta_table);
2288         b43_lptab_write_bulk(dev, B43_LPTAB32(10, 0),
2289                 ARRAY_SIZE(lpphy_tx_power_control_table), lpphy_tx_power_control_table);
2290 }
2291 
2292 void lpphy_rev2plus_table_init(struct b43_wldev *dev)
2293 {
2294         int i;
2295 
2296         B43_WARN_ON(dev->phy.rev < 2);
2297 
2298         for (i = 0; i < 704; i++)
2299                 b43_lptab_write(dev, B43_LPTAB32(7, i), 0);
2300 
2301         b43_lptab_write_bulk(dev, B43_LPTAB8(2, 0),
2302                 ARRAY_SIZE(lpphy_min_sig_sq_table), lpphy_min_sig_sq_table);
2303         b43_lptab_write_bulk(dev, B43_LPTAB16(1, 0),
2304                 ARRAY_SIZE(lpphy_rev2plus_noise_scale_table), lpphy_rev2plus_noise_scale_table);
2305         b43_lptab_write_bulk(dev, B43_LPTAB32(11, 0),
2306                 ARRAY_SIZE(lpphy_rev2plus_filter_control_table), lpphy_rev2plus_filter_control_table);
2307         b43_lptab_write_bulk(dev, B43_LPTAB32(12, 0),
2308                 ARRAY_SIZE(lpphy_rev2plus_ps_control_table), lpphy_rev2plus_ps_control_table);
2309         b43_lptab_write_bulk(dev, B43_LPTAB32(13, 0),
2310                 ARRAY_SIZE(lpphy_gain_idx_table), lpphy_gain_idx_table);
2311         b43_lptab_write_bulk(dev, B43_LPTAB16(14, 0),
2312                 ARRAY_SIZE(lpphy_aux_gain_idx_table), lpphy_aux_gain_idx_table);
2313         b43_lptab_write_bulk(dev, B43_LPTAB16(15, 0),
2314                 ARRAY_SIZE(lpphy_sw_control_table), lpphy_sw_control_table);
2315         b43_lptab_write_bulk(dev, B43_LPTAB8(16, 0),
2316                 ARRAY_SIZE(lpphy_hf_table), lpphy_hf_table);
2317         b43_lptab_write_bulk(dev, B43_LPTAB32(17, 0),
2318                 ARRAY_SIZE(lpphy_gain_value_table), lpphy_gain_value_table);
2319         b43_lptab_write_bulk(dev, B43_LPTAB16(18, 0),
2320                 ARRAY_SIZE(lpphy_gain_table), lpphy_gain_table);
2321         b43_lptab_write_bulk(dev, B43_LPTAB8(6, 0),
2322                 ARRAY_SIZE(lpphy_pll_fraction_table), lpphy_pll_fraction_table);
2323         b43_lptab_write_bulk(dev, B43_LPTAB16(0, 0),
2324                 ARRAY_SIZE(lpphy_iqlo_cal_table), lpphy_iqlo_cal_table);
2325         b43_lptab_write_bulk(dev, B43_LPTAB32(9, 0),
2326                 ARRAY_SIZE(lpphy_papd_eps_table), lpphy_papd_eps_table);
2327         b43_lptab_write_bulk(dev, B43_LPTAB32(10, 0),
2328                 ARRAY_SIZE(lpphy_papd_mult_table), lpphy_papd_mult_table);
2329 
2330         if ((dev->dev->chip_id == 0x4325) && (dev->dev->chip_rev == 0)) {
2331                 b43_lptab_write_bulk(dev, B43_LPTAB32(13, 0),
2332                         ARRAY_SIZE(lpphy_a0_gain_idx_table), lpphy_a0_gain_idx_table);
2333                 b43_lptab_write_bulk(dev, B43_LPTAB16(14, 0),
2334                         ARRAY_SIZE(lpphy_a0_aux_gain_idx_table), lpphy_a0_aux_gain_idx_table);
2335                 b43_lptab_write_bulk(dev, B43_LPTAB32(17, 0),
2336                         ARRAY_SIZE(lpphy_a0_gain_value_table), lpphy_a0_gain_value_table);
2337                 b43_lptab_write_bulk(dev, B43_LPTAB16(18, 0),
2338                         ARRAY_SIZE(lpphy_a0_gain_table), lpphy_a0_gain_table);
2339         }
2340 }
2341 
2342 static void lpphy_rev0_1_write_gain_table(struct b43_wldev *dev, int offset,
2343                                 struct lpphy_tx_gain_table_entry data)
2344 {
2345         u32 tmp;
2346 
2347         B43_WARN_ON(dev->phy.rev >= 2);
2348 
2349         tmp  = data.pad << 11;
2350         tmp |= data.pga << 7;
2351         tmp |= data.gm  << 4;
2352         tmp |= data.dac;
2353         b43_lptab_write(dev, B43_LPTAB32(10, 0xC0 + offset), tmp);
2354         tmp  = data.bb_mult << 20;
2355         b43_lptab_write(dev, B43_LPTAB32(10, 0x140 + offset), tmp);
2356 }
2357 
2358 static void lpphy_rev2plus_write_gain_table(struct b43_wldev *dev, int offset,
2359                                 struct lpphy_tx_gain_table_entry data)
2360 {
2361         u32 tmp;
2362 
2363         B43_WARN_ON(dev->phy.rev < 2);
2364 
2365         tmp  = data.pad << 16;
2366         tmp |= data.pga << 8;
2367         tmp |= data.gm;
2368         if (dev->phy.rev >= 3) {
2369                 if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ)
2370                         tmp |= 0x10 << 24;
2371                 else
2372                         tmp |= 0x70 << 24;
2373         } else {
2374                 if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ)
2375                         tmp |= 0x14 << 24;
2376                 else
2377                         tmp |= 0x7F << 24;
2378         }
2379         b43_lptab_write(dev, B43_LPTAB32(7, 0xC0 + offset), tmp);
2380         tmp  = data.bb_mult << 20;
2381         tmp |= data.dac << 28;
2382         b43_lptab_write(dev, B43_LPTAB32(7, 0x140 + offset), tmp);
2383 }
2384 
2385 void lpphy_write_gain_table(struct b43_wldev *dev, int offset,
2386                             struct lpphy_tx_gain_table_entry data)
2387 {
2388         if (dev->phy.rev >= 2)
2389                 lpphy_rev2plus_write_gain_table(dev, offset, data);
2390         else
2391                 lpphy_rev0_1_write_gain_table(dev, offset, data);
2392 }
2393 
2394 void lpphy_write_gain_table_bulk(struct b43_wldev *dev, int offset, int count,
2395                                  struct lpphy_tx_gain_table_entry *table)
2396 {
2397         int i;
2398 
2399         for (i = offset; i < count; i++)
2400                 lpphy_write_gain_table(dev, i, table[i]);
2401 }
2402 
2403 void lpphy_init_tx_gain_table(struct b43_wldev *dev)
2404 {
2405         struct ssb_sprom *sprom = dev->dev->bus_sprom;
2406 
2407         switch (dev->phy.rev) {
2408         case 0:
2409                 if ((sprom->boardflags_hi & B43_BFH_NOPA) ||
2410                     (sprom->boardflags_lo & B43_BFL_HGPA))
2411                         lpphy_write_gain_table_bulk(dev, 0, 128,
2412                                         lpphy_rev0_nopa_tx_gain_table);
2413                 else if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ)
2414                         lpphy_write_gain_table_bulk(dev, 0, 128,
2415                                         lpphy_rev0_2ghz_tx_gain_table);
2416                 else
2417                         lpphy_write_gain_table_bulk(dev, 0, 128,
2418                                         lpphy_rev0_5ghz_tx_gain_table);
2419                 break;
2420         case 1:
2421                 if ((sprom->boardflags_hi & B43_BFH_NOPA) ||
2422                     (sprom->boardflags_lo & B43_BFL_HGPA))
2423                         lpphy_write_gain_table_bulk(dev, 0, 128,
2424                                         lpphy_rev1_nopa_tx_gain_table);
2425                 else if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ)
2426                         lpphy_write_gain_table_bulk(dev, 0, 128,
2427                                         lpphy_rev1_2ghz_tx_gain_table);
2428                 else
2429                         lpphy_write_gain_table_bulk(dev, 0, 128,
2430                                         lpphy_rev1_5ghz_tx_gain_table);
2431                 break;
2432         default:
2433                 if (sprom->boardflags_hi & B43_BFH_NOPA)
2434                         lpphy_write_gain_table_bulk(dev, 0, 128,
2435                                         lpphy_rev2_nopa_tx_gain_table);
2436                 else if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ)
2437                         lpphy_write_gain_table_bulk(dev, 0, 128,
2438                                         lpphy_rev2_2ghz_tx_gain_table);
2439                 else
2440                         lpphy_write_gain_table_bulk(dev, 0, 128,
2441                                         lpphy_rev2_5ghz_tx_gain_table);
2442         }
2443 }

/* [<][>][^][v][top][bottom][index][help] */