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