1dbf8e132SAdrian Chadd /*
2dbf8e132SAdrian Chadd 
3dbf8e132SAdrian Chadd   Broadcom B43 wireless driver
4dbf8e132SAdrian Chadd   IEEE 802.11n PHY data tables
5dbf8e132SAdrian Chadd 
6dbf8e132SAdrian Chadd   Copyright (c) 2008 Michael Buesch <m@bues.ch>
7dbf8e132SAdrian Chadd   Copyright (c) 2010 Rafał Miłecki <zajec5@gmail.com>
8dbf8e132SAdrian Chadd 
9dbf8e132SAdrian Chadd   This program is free software; you can redistribute it and/or modify
10dbf8e132SAdrian Chadd   it under the terms of the GNU General Public License as published by
11dbf8e132SAdrian Chadd   the Free Software Foundation; either version 2 of the License, or
12dbf8e132SAdrian Chadd   (at your option) any later version.
13dbf8e132SAdrian Chadd 
14dbf8e132SAdrian Chadd   This program is distributed in the hope that it will be useful,
15dbf8e132SAdrian Chadd   but WITHOUT ANY WARRANTY; without even the implied warranty of
16dbf8e132SAdrian Chadd   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17dbf8e132SAdrian Chadd   GNU General Public License for more details.
18dbf8e132SAdrian Chadd 
19dbf8e132SAdrian Chadd   You should have received a copy of the GNU General Public License
20dbf8e132SAdrian Chadd   along with this program; see the file COPYING.  If not, write to
21dbf8e132SAdrian Chadd   the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
22dbf8e132SAdrian Chadd   Boston, MA 02110-1301, USA.
23dbf8e132SAdrian Chadd 
24dbf8e132SAdrian Chadd */
25dbf8e132SAdrian Chadd 
26dbf8e132SAdrian Chadd /*
27dbf8e132SAdrian Chadd  */
28dbf8e132SAdrian Chadd 
29dbf8e132SAdrian Chadd #ifndef	__IF_BWN_TABLES_NPHY_H__
30dbf8e132SAdrian Chadd #define	__IF_BWN_TABLES_NPHY_H__
31dbf8e132SAdrian Chadd 
32dbf8e132SAdrian Chadd struct bwn_phy_n_sfo_cfg {
33dbf8e132SAdrian Chadd 	uint16_t phy_bw1a;
34dbf8e132SAdrian Chadd 	uint16_t phy_bw2;
35dbf8e132SAdrian Chadd 	uint16_t phy_bw3;
36dbf8e132SAdrian Chadd 	uint16_t phy_bw4;
37dbf8e132SAdrian Chadd 	uint16_t phy_bw5;
38dbf8e132SAdrian Chadd 	uint16_t phy_bw6;
39dbf8e132SAdrian Chadd };
40dbf8e132SAdrian Chadd 
41dbf8e132SAdrian Chadd struct bwn_mac;
42dbf8e132SAdrian Chadd 
43dbf8e132SAdrian Chadd struct bwn_nphy_txiqcal_ladder {
44dbf8e132SAdrian Chadd 	uint8_t percent;
45dbf8e132SAdrian Chadd 	uint8_t g_env;
46dbf8e132SAdrian Chadd };
47dbf8e132SAdrian Chadd 
48dbf8e132SAdrian Chadd struct bwn_nphy_rf_control_override_rev2 {
49dbf8e132SAdrian Chadd 	uint8_t addr0;
50dbf8e132SAdrian Chadd 	uint8_t addr1;
51dbf8e132SAdrian Chadd 	uint16_t bmask;
52dbf8e132SAdrian Chadd 	uint8_t shift;
53dbf8e132SAdrian Chadd };
54dbf8e132SAdrian Chadd 
55dbf8e132SAdrian Chadd struct bwn_nphy_rf_control_override_rev3 {
56dbf8e132SAdrian Chadd 	uint16_t val_mask;
57dbf8e132SAdrian Chadd 	uint8_t val_shift;
58dbf8e132SAdrian Chadd 	uint8_t en_addr0;
59dbf8e132SAdrian Chadd 	uint8_t val_addr0;
60dbf8e132SAdrian Chadd 	uint8_t en_addr1;
61dbf8e132SAdrian Chadd 	uint8_t val_addr1;
62dbf8e132SAdrian Chadd };
63dbf8e132SAdrian Chadd 
64dbf8e132SAdrian Chadd struct bwn_nphy_rf_control_override_rev7 {
65dbf8e132SAdrian Chadd 	uint16_t field;
66dbf8e132SAdrian Chadd 	uint16_t val_addr_core0;
67dbf8e132SAdrian Chadd 	uint16_t val_addr_core1;
68dbf8e132SAdrian Chadd 	uint16_t val_mask;
69dbf8e132SAdrian Chadd 	uint8_t val_shift;
70dbf8e132SAdrian Chadd };
71dbf8e132SAdrian Chadd 
72dbf8e132SAdrian Chadd struct bwn_nphy_gain_ctl_workaround_entry {
73dbf8e132SAdrian Chadd 	int8_t lna1_gain[4];
74dbf8e132SAdrian Chadd 	int8_t lna2_gain[4];
75dbf8e132SAdrian Chadd 	uint8_t gain_db[10];
76dbf8e132SAdrian Chadd 	uint8_t gain_bits[10];
77dbf8e132SAdrian Chadd 
78dbf8e132SAdrian Chadd 	uint16_t init_gain;
79dbf8e132SAdrian Chadd 	uint16_t rfseq_init[4];
80dbf8e132SAdrian Chadd 
81dbf8e132SAdrian Chadd 	uint16_t cliphi_gain;
82dbf8e132SAdrian Chadd 	uint16_t clipmd_gain;
83dbf8e132SAdrian Chadd 	uint16_t cliplo_gain;
84dbf8e132SAdrian Chadd 
85dbf8e132SAdrian Chadd 	uint16_t crsmin;
86dbf8e132SAdrian Chadd 	uint16_t crsminl;
87dbf8e132SAdrian Chadd 	uint16_t crsminu;
88dbf8e132SAdrian Chadd 
89dbf8e132SAdrian Chadd 	uint16_t nbclip;
90dbf8e132SAdrian Chadd 	uint16_t wlclip;
91dbf8e132SAdrian Chadd };
92dbf8e132SAdrian Chadd 
93dbf8e132SAdrian Chadd /* Get entry with workaround values for gain ctl. Does not return NULL. */
94dbf8e132SAdrian Chadd struct bwn_nphy_gain_ctl_workaround_entry *bwn_nphy_get_gain_ctl_workaround_ent(
95dbf8e132SAdrian Chadd 	struct bwn_mac *mac, bool ghz5, bool ext_lna);
96dbf8e132SAdrian Chadd 
97dbf8e132SAdrian Chadd 
98dbf8e132SAdrian Chadd /* The N-PHY tables. */
99dbf8e132SAdrian Chadd #define BWN_NTAB_TYPEMASK		0xF0000000
100dbf8e132SAdrian Chadd #define BWN_NTAB_8BIT			0x10000000
101dbf8e132SAdrian Chadd #define BWN_NTAB_16BIT			0x20000000
102dbf8e132SAdrian Chadd #define BWN_NTAB_32BIT			0x30000000
103dbf8e132SAdrian Chadd #define BWN_NTAB8(table, offset)	(((table) << 10) | (offset) | BWN_NTAB_8BIT)
104dbf8e132SAdrian Chadd #define BWN_NTAB16(table, offset)	(((table) << 10) | (offset) | BWN_NTAB_16BIT)
105dbf8e132SAdrian Chadd #define BWN_NTAB32(table, offset)	(((table) << 10) | (offset) | BWN_NTAB_32BIT)
106dbf8e132SAdrian Chadd 
107dbf8e132SAdrian Chadd /* Static N-PHY tables */
108dbf8e132SAdrian Chadd #define BWN_NTAB_FRAMESTRUCT		BWN_NTAB32(0x0A, 0x000) /* Frame Struct Table */
109dbf8e132SAdrian Chadd #define BWN_NTAB_FRAMESTRUCT_SIZE	832
110dbf8e132SAdrian Chadd #define BWN_NTAB_FRAMELT		BWN_NTAB8 (0x18, 0x000) /* Frame Lookup Table */
111dbf8e132SAdrian Chadd #define BWN_NTAB_FRAMELT_SIZE		32
112dbf8e132SAdrian Chadd #define BWN_NTAB_TMAP			BWN_NTAB32(0x0C, 0x000) /* T Map Table */
113dbf8e132SAdrian Chadd #define BWN_NTAB_TMAP_SIZE		448
114dbf8e132SAdrian Chadd #define BWN_NTAB_TDTRN			BWN_NTAB32(0x0E, 0x000) /* TDTRN Table */
115dbf8e132SAdrian Chadd #define BWN_NTAB_TDTRN_SIZE		704
116dbf8e132SAdrian Chadd #define BWN_NTAB_INTLEVEL		BWN_NTAB32(0x0D, 0x000) /* Int Level Table */
117dbf8e132SAdrian Chadd #define BWN_NTAB_INTLEVEL_SIZE		7
118dbf8e132SAdrian Chadd #define BWN_NTAB_PILOT			BWN_NTAB16(0x0B, 0x000) /* Pilot Table */
119dbf8e132SAdrian Chadd #define BWN_NTAB_PILOT_SIZE		88
120dbf8e132SAdrian Chadd #define BWN_NTAB_PILOTLT		BWN_NTAB32(0x14, 0x000) /* Pilot Lookup Table */
121dbf8e132SAdrian Chadd #define BWN_NTAB_PILOTLT_SIZE		6
122dbf8e132SAdrian Chadd #define BWN_NTAB_TDI20A0		BWN_NTAB32(0x13, 0x080) /* TDI Table 20 Antenna 0 */
123dbf8e132SAdrian Chadd #define BWN_NTAB_TDI20A0_SIZE		55
124dbf8e132SAdrian Chadd #define BWN_NTAB_TDI20A1		BWN_NTAB32(0x13, 0x100) /* TDI Table 20 Antenna 1 */
125dbf8e132SAdrian Chadd #define BWN_NTAB_TDI20A1_SIZE		55
126dbf8e132SAdrian Chadd #define BWN_NTAB_TDI40A0		BWN_NTAB32(0x13, 0x280) /* TDI Table 40 Antenna 0 */
127dbf8e132SAdrian Chadd #define BWN_NTAB_TDI40A0_SIZE		110
128dbf8e132SAdrian Chadd #define BWN_NTAB_TDI40A1		BWN_NTAB32(0x13, 0x300) /* TDI Table 40 Antenna 1 */
129dbf8e132SAdrian Chadd #define BWN_NTAB_TDI40A1_SIZE		110
130dbf8e132SAdrian Chadd #define BWN_NTAB_BDI			BWN_NTAB16(0x15, 0x000) /* BDI Table */
131dbf8e132SAdrian Chadd #define BWN_NTAB_BDI_SIZE		6
132dbf8e132SAdrian Chadd #define BWN_NTAB_CHANEST		BWN_NTAB32(0x16, 0x000) /* Channel Estimate Table */
133dbf8e132SAdrian Chadd #define BWN_NTAB_CHANEST_SIZE		96
134dbf8e132SAdrian Chadd #define BWN_NTAB_MCS			BWN_NTAB8 (0x12, 0x000) /* MCS Table */
135dbf8e132SAdrian Chadd #define BWN_NTAB_MCS_SIZE		128
136dbf8e132SAdrian Chadd 
137dbf8e132SAdrian Chadd /* Volatile N-PHY tables */
138dbf8e132SAdrian Chadd #define BWN_NTAB_NOISEVAR10		BWN_NTAB32(0x10, 0x000) /* Noise Var Table 10 */
139dbf8e132SAdrian Chadd #define BWN_NTAB_NOISEVAR10_SIZE	256
140dbf8e132SAdrian Chadd #define BWN_NTAB_NOISEVAR11		BWN_NTAB32(0x10, 0x080) /* Noise Var Table 11 */
141dbf8e132SAdrian Chadd #define BWN_NTAB_NOISEVAR11_SIZE	256
142dbf8e132SAdrian Chadd #define BWN_NTAB_C0_ESTPLT		BWN_NTAB8 (0x1A, 0x000) /* Estimate Power Lookup Table Core 0 */
143dbf8e132SAdrian Chadd #define BWN_NTAB_C0_ESTPLT_SIZE		64
144dbf8e132SAdrian Chadd #define BWN_NTAB_C0_ADJPLT		BWN_NTAB8 (0x1A, 0x040) /* Adjust Power Lookup Table Core 0 */
145dbf8e132SAdrian Chadd #define BWN_NTAB_C0_ADJPLT_SIZE		128
146dbf8e132SAdrian Chadd #define BWN_NTAB_C0_GAINCTL		BWN_NTAB32(0x1A, 0x0C0) /* Gain Control Lookup Table Core 0 */
147dbf8e132SAdrian Chadd #define BWN_NTAB_C0_GAINCTL_SIZE	128
148dbf8e132SAdrian Chadd #define BWN_NTAB_C0_IQLT		BWN_NTAB32(0x1A, 0x140) /* IQ Lookup Table Core 0 */
149dbf8e132SAdrian Chadd #define BWN_NTAB_C0_IQLT_SIZE		128
150dbf8e132SAdrian Chadd #define BWN_NTAB_C0_LOFEEDTH		BWN_NTAB16(0x1A, 0x1C0) /* Local Oscillator Feed Through Lookup Table Core 0 */
151dbf8e132SAdrian Chadd #define BWN_NTAB_C0_LOFEEDTH_SIZE	128
152dbf8e132SAdrian Chadd #define BWN_NTAB_C1_ESTPLT		BWN_NTAB8 (0x1B, 0x000) /* Estimate Power Lookup Table Core 1 */
153dbf8e132SAdrian Chadd #define BWN_NTAB_C1_ESTPLT_SIZE		64
154dbf8e132SAdrian Chadd #define BWN_NTAB_C1_ADJPLT		BWN_NTAB8 (0x1B, 0x040) /* Adjust Power Lookup Table Core 1 */
155dbf8e132SAdrian Chadd #define BWN_NTAB_C1_ADJPLT_SIZE		128
156dbf8e132SAdrian Chadd #define BWN_NTAB_C1_GAINCTL		BWN_NTAB32(0x1B, 0x0C0) /* Gain Control Lookup Table Core 1 */
157dbf8e132SAdrian Chadd #define BWN_NTAB_C1_GAINCTL_SIZE	128
158dbf8e132SAdrian Chadd #define BWN_NTAB_C1_IQLT		BWN_NTAB32(0x1B, 0x140) /* IQ Lookup Table Core 1 */
159dbf8e132SAdrian Chadd #define BWN_NTAB_C1_IQLT_SIZE		128
160dbf8e132SAdrian Chadd #define BWN_NTAB_C1_LOFEEDTH		BWN_NTAB16(0x1B, 0x1C0) /* Local Oscillator Feed Through Lookup Table Core 1 */
161dbf8e132SAdrian Chadd #define BWN_NTAB_C1_LOFEEDTH_SIZE	128
162dbf8e132SAdrian Chadd 
163dbf8e132SAdrian Chadd /* Volatile N-PHY tables, PHY revision >= 3 */
164dbf8e132SAdrian Chadd #define BWN_NTAB_ANT_SW_CTL_R3		BWN_NTAB16( 9,   0) /* antenna software control */
165dbf8e132SAdrian Chadd 
166dbf8e132SAdrian Chadd /* Static N-PHY tables, PHY revision >= 3 */
167dbf8e132SAdrian Chadd #define BWN_NTAB_FRAMESTRUCT_R3		BWN_NTAB32(10,   0) /* frame struct  */
168dbf8e132SAdrian Chadd #define BWN_NTAB_PILOT_R3		BWN_NTAB16(11,   0) /* pilot  */
169dbf8e132SAdrian Chadd #define BWN_NTAB_TMAP_R3		BWN_NTAB32(12,   0) /* TM AP  */
170dbf8e132SAdrian Chadd #define BWN_NTAB_INTLEVEL_R3		BWN_NTAB32(13,   0) /* INT LV  */
171dbf8e132SAdrian Chadd #define BWN_NTAB_TDTRN_R3		BWN_NTAB32(14,   0) /* TD TRN  */
172dbf8e132SAdrian Chadd #define BWN_NTAB_NOISEVAR_R3		BWN_NTAB32(16,   0) /* noise variance */
173dbf8e132SAdrian Chadd #define BWN_NTAB_MCS_R3			BWN_NTAB16(18,   0) /* MCS  */
174dbf8e132SAdrian Chadd #define BWN_NTAB_TDI20A0_R3		BWN_NTAB32(19, 128) /* TDI 20/0  */
175dbf8e132SAdrian Chadd #define BWN_NTAB_TDI20A1_R3		BWN_NTAB32(19, 256) /* TDI 20/1  */
176dbf8e132SAdrian Chadd #define BWN_NTAB_TDI40A0_R3		BWN_NTAB32(19, 640) /* TDI 40/0  */
177dbf8e132SAdrian Chadd #define BWN_NTAB_TDI40A1_R3		BWN_NTAB32(19, 768) /* TDI 40/1  */
178dbf8e132SAdrian Chadd #define BWN_NTAB_PILOTLT_R3		BWN_NTAB32(20,   0) /* PLT lookup  */
179dbf8e132SAdrian Chadd #define BWN_NTAB_CHANEST_R3		BWN_NTAB32(22,   0) /* channel estimate  */
180dbf8e132SAdrian Chadd #define BWN_NTAB_FRAMELT_R3		 BWN_NTAB8(24,   0) /* frame lookup  */
181dbf8e132SAdrian Chadd #define BWN_NTAB_C0_ESTPLT_R3		 BWN_NTAB8(26,   0) /* estimated power lookup 0  */
182dbf8e132SAdrian Chadd #define BWN_NTAB_C0_ADJPLT_R3		 BWN_NTAB8(26,  64) /* adjusted power lookup 0  */
183dbf8e132SAdrian Chadd #define BWN_NTAB_C0_GAINCTL_R3		BWN_NTAB32(26, 192) /* gain control lookup 0  */
184dbf8e132SAdrian Chadd #define BWN_NTAB_C0_IQLT_R3		BWN_NTAB32(26, 320) /* I/Q lookup 0  */
185dbf8e132SAdrian Chadd #define BWN_NTAB_C0_LOFEEDTH_R3		BWN_NTAB16(26, 448) /* Local Oscillator Feed Through lookup 0  */
186dbf8e132SAdrian Chadd #define BWN_NTAB_C0_PAPD_COMP_R3	BWN_NTAB16(26, 576)
187dbf8e132SAdrian Chadd #define BWN_NTAB_C1_ESTPLT_R3		 BWN_NTAB8(27,   0) /* estimated power lookup 1  */
188dbf8e132SAdrian Chadd #define BWN_NTAB_C1_ADJPLT_R3		 BWN_NTAB8(27,  64) /* adjusted power lookup 1  */
189dbf8e132SAdrian Chadd #define BWN_NTAB_C1_GAINCTL_R3		BWN_NTAB32(27, 192) /* gain control lookup 1  */
190dbf8e132SAdrian Chadd #define BWN_NTAB_C1_IQLT_R3		BWN_NTAB32(27, 320) /* I/Q lookup 1  */
191dbf8e132SAdrian Chadd #define BWN_NTAB_C1_LOFEEDTH_R3		BWN_NTAB16(27, 448) /* Local Oscillator Feed Through lookup 1 */
192dbf8e132SAdrian Chadd #define BWN_NTAB_C1_PAPD_COMP_R3	BWN_NTAB16(27, 576)
193dbf8e132SAdrian Chadd 
194dbf8e132SAdrian Chadd /* Static N-PHY tables, PHY revision >= 7 */
195dbf8e132SAdrian Chadd #define BWN_NTAB_TMAP_R7		BWN_NTAB32(12,   0) /* TM AP */
196dbf8e132SAdrian Chadd #define BWN_NTAB_NOISEVAR_R7		BWN_NTAB32(16,   0) /* noise variance */
197dbf8e132SAdrian Chadd 
198dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_LOFT_LADDER_40_SIZE	18
199dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_LOFT_LADDER_20_SIZE	18
200dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_IQIMB_LADDER_40_SIZE	18
201dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_IQIMB_LADDER_20_SIZE	18
202dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3		11
203dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_STARTCOEFS			9
204dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_CMDS_RECAL_REV3		12
205dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_CMDS_RECAL			10
206dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_CMDS_FULLCAL		10
207dbf8e132SAdrian Chadd #define BWN_NTAB_TX_IQLO_CAL_CMDS_FULLCAL_REV3		12
208dbf8e132SAdrian Chadd 
209dbf8e132SAdrian Chadd uint32_t bwn_ntab_read(struct bwn_mac *mac, uint32_t offset);
210dbf8e132SAdrian Chadd void bwn_ntab_read_bulk(struct bwn_mac *mac, uint32_t offset,
211dbf8e132SAdrian Chadd 			 unsigned int nr_elements, void *_data);
212dbf8e132SAdrian Chadd void bwn_ntab_write(struct bwn_mac *mac, uint32_t offset, uint32_t value);
213dbf8e132SAdrian Chadd void bwn_ntab_write_bulk(struct bwn_mac *mac, uint32_t offset,
214dbf8e132SAdrian Chadd 			  unsigned int nr_elements, const void *_data);
215dbf8e132SAdrian Chadd 
216dbf8e132SAdrian Chadd void bwn_nphy_tables_init(struct bwn_mac *mac);
217dbf8e132SAdrian Chadd 
218dbf8e132SAdrian Chadd const uint32_t *bwn_nphy_get_tx_gain_table(struct bwn_mac *mac);
219dbf8e132SAdrian Chadd 
220dbf8e132SAdrian Chadd const int16_t *bwn_ntab_get_rf_pwr_offset_table(struct bwn_mac *mac);
221dbf8e132SAdrian Chadd 
222dbf8e132SAdrian Chadd extern const int8_t bwn_ntab_papd_pga_gain_delta_ipa_2g[];
223dbf8e132SAdrian Chadd 
224dbf8e132SAdrian Chadd extern const uint16_t tbl_iqcal_gainparams[2][9][8];
225dbf8e132SAdrian Chadd extern const struct bwn_nphy_txiqcal_ladder ladder_lo[];
226dbf8e132SAdrian Chadd extern const struct bwn_nphy_txiqcal_ladder ladder_iq[];
227dbf8e132SAdrian Chadd extern const uint16_t loscale[];
228dbf8e132SAdrian Chadd 
229dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_loft_ladder_40[];
230dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_loft_ladder_20[];
231dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_iqimb_ladder_40[];
232dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_iqimb_ladder_20[];
233dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_startcoefs_nphyrev3[];
234dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_startcoefs[];
235dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_cmds_recal_nphyrev3[];
236dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_cmds_recal[];
237dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_cmds_fullcal[];
238dbf8e132SAdrian Chadd extern const uint16_t tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[];
239dbf8e132SAdrian Chadd extern const int16_t tbl_tx_filter_coef_rev4[7][15];
240dbf8e132SAdrian Chadd 
241dbf8e132SAdrian Chadd extern const struct bwn_nphy_rf_control_override_rev2
242dbf8e132SAdrian Chadd 	tbl_rf_control_override_rev2[];
243dbf8e132SAdrian Chadd extern const struct bwn_nphy_rf_control_override_rev3
244dbf8e132SAdrian Chadd 	tbl_rf_control_override_rev3[];
245dbf8e132SAdrian Chadd const struct bwn_nphy_rf_control_override_rev7 *bwn_nphy_get_rf_ctl_over_rev7(
246dbf8e132SAdrian Chadd 	struct bwn_mac *mac, uint16_t field, uint8_t override);
247dbf8e132SAdrian Chadd 
248dbf8e132SAdrian Chadd #endif	/* __IF_BWN_PHY_TABLES_N_H__ */
249