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