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