blob: 9e22fb60588b2204f58cf3506498cc80342eb43d [file] [log] [blame]
Rafał Miłecki5192bf52011-06-19 12:17:19 +02001#ifndef B43_RADIO_2059_H_
2#define B43_RADIO_2059_H_
3
4#include <linux/types.h>
5
6#include "phy_ht.h"
7
Rafał Miłeckid6657db2013-03-16 23:24:21 +01008#define R2059_C1 0x000
9#define R2059_C2 0x400
10#define R2059_C3 0x800
Rafał Miłeckie8dec1e2011-06-28 00:08:52 +020011#define R2059_ALL 0xC00
12
Rafał Miłecki28f051f2014-09-09 21:17:08 +020013#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
Rafał Miłecki5192bf52011-06-19 12:17:19 +020025/* Values for various registers uploaded on channel switching */
26struct b43_phy_ht_channeltab_e_radio2059 {
27 /* The channel frequency in MHz */
28 u16 freq;
29 /* Values for radio registers */
Rafał Miłeckia6b7da52011-06-19 12:17:21 +020030 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;
Rafał Miłeckia6b7da52011-06-19 12:17:21 +020043 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;
Rafał Miłecki5192bf52011-06-19 12:17:19 +020051 /* Values for PHY registers */
52 struct b43_phy_ht_channeltab_e_phy phy_regs;
53};
54
Rafał Miłeckiea422b22014-09-09 21:17:09 +020055void r2059_upload_inittabs(struct b43_wldev *dev);
56
Rafał Miłecki5192bf52011-06-19 12:17:19 +020057const 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_ */