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