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