xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/broadcom/b43/radio_2059.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef B43_RADIO_2059_H_
3*4882a593Smuzhiyun #define B43_RADIO_2059_H_
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <linux/types.h>
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include "phy_ht.h"
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #define R2059_C1			0x000
10*4882a593Smuzhiyun #define R2059_C2			0x400
11*4882a593Smuzhiyun #define R2059_C3			0x800
12*4882a593Smuzhiyun #define R2059_ALL			0xC00
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define R2059_RCAL_CONFIG			0x004
15*4882a593Smuzhiyun #define R2059_RFPLL_MASTER			0x011
16*4882a593Smuzhiyun #define R2059_RFPLL_MISC_EN			0x02b
17*4882a593Smuzhiyun #define R2059_RFPLL_MISC_CAL_RESETN		0x02e
18*4882a593Smuzhiyun #define R2059_XTAL_CONFIG2			0x0c0
19*4882a593Smuzhiyun #define R2059_RCCAL_START_R1_Q1_P1		0x13c
20*4882a593Smuzhiyun #define R2059_RCCAL_X1				0x13d
21*4882a593Smuzhiyun #define R2059_RCCAL_TRC0			0x13e
22*4882a593Smuzhiyun #define R2059_RCCAL_DONE_OSCCAP			0x140
23*4882a593Smuzhiyun #define R2059_RCAL_STATUS			0x145
24*4882a593Smuzhiyun #define R2059_RCCAL_MASTER			0x17f
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun /* Values for various registers uploaded on channel switching */
27*4882a593Smuzhiyun struct b43_phy_ht_channeltab_e_radio2059 {
28*4882a593Smuzhiyun 	/* The channel frequency in MHz */
29*4882a593Smuzhiyun 	u16 freq;
30*4882a593Smuzhiyun 	/* Values for radio registers */
31*4882a593Smuzhiyun 	u8 radio_syn16;
32*4882a593Smuzhiyun 	u8 radio_syn17;
33*4882a593Smuzhiyun 	u8 radio_syn22;
34*4882a593Smuzhiyun 	u8 radio_syn25;
35*4882a593Smuzhiyun 	u8 radio_syn27;
36*4882a593Smuzhiyun 	u8 radio_syn28;
37*4882a593Smuzhiyun 	u8 radio_syn29;
38*4882a593Smuzhiyun 	u8 radio_syn2c;
39*4882a593Smuzhiyun 	u8 radio_syn2d;
40*4882a593Smuzhiyun 	u8 radio_syn37;
41*4882a593Smuzhiyun 	u8 radio_syn41;
42*4882a593Smuzhiyun 	u8 radio_syn43;
43*4882a593Smuzhiyun 	u8 radio_syn47;
44*4882a593Smuzhiyun 	u8 radio_rxtx4a;
45*4882a593Smuzhiyun 	u8 radio_rxtx58;
46*4882a593Smuzhiyun 	u8 radio_rxtx5a;
47*4882a593Smuzhiyun 	u8 radio_rxtx6a;
48*4882a593Smuzhiyun 	u8 radio_rxtx6d;
49*4882a593Smuzhiyun 	u8 radio_rxtx6e;
50*4882a593Smuzhiyun 	u8 radio_rxtx92;
51*4882a593Smuzhiyun 	u8 radio_rxtx98;
52*4882a593Smuzhiyun 	/* Values for PHY registers */
53*4882a593Smuzhiyun 	struct b43_phy_ht_channeltab_e_phy phy_regs;
54*4882a593Smuzhiyun };
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun void r2059_upload_inittabs(struct b43_wldev *dev);
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun const struct b43_phy_ht_channeltab_e_radio2059
59*4882a593Smuzhiyun *b43_phy_ht_get_channeltab_e_r2059(struct b43_wldev *dev, u16 freq);
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #endif /* B43_RADIO_2059_H_ */
62