1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#ifndef __PHY_COMMON__
27#define __PHY_COMMON__
28
29#define RT_CANNOT_IO(hw) false
30
31enum swchnlcmd_id {
32 CMDID_END,
33 CMDID_SET_TXPOWEROWER_LEVEL,
34 CMDID_BBREGWRITE10,
35 CMDID_WRITEPORT_ULONG,
36 CMDID_WRITEPORT_USHORT,
37 CMDID_WRITEPORT_UCHAR,
38 CMDID_RF_WRITEREG,
39};
40
41struct swchnlcmd {
42 enum swchnlcmd_id cmdid;
43 u32 para1;
44 u32 para2;
45 u32 msdelay;
46};
47
48u32 rtl8723_phy_query_bb_reg(struct ieee80211_hw *hw,
49 u32 regaddr, u32 bitmask);
50void rtl8723_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr,
51 u32 bitmask, u32 data);
52u32 rtl8723_phy_calculate_bit_shift(u32 bitmask);
53u32 rtl8723_phy_rf_serial_read(struct ieee80211_hw *hw,
54 enum radio_path rfpath, u32 offset);
55void rtl8723_phy_rf_serial_write(struct ieee80211_hw *hw,
56 enum radio_path rfpath,
57 u32 offset, u32 data);
58long rtl8723_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw,
59 enum wireless_mode wirelessmode,
60 u8 txpwridx);
61void rtl8723_phy_init_bb_rf_reg_def(struct ieee80211_hw *hw);
62bool rtl8723_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable,
63 u32 cmdtableidx,
64 u32 cmdtablesz,
65 enum swchnlcmd_id cmdid,
66 u32 para1, u32 para2,
67 u32 msdelay);
68void rtl8723_phy_path_a_fill_iqk_matrix(struct ieee80211_hw *hw,
69 bool iqk_ok,
70 long result[][8],
71 u8 final_candidate,
72 bool btxonly);
73void rtl8723_save_adda_registers(struct ieee80211_hw *hw, u32 *addareg,
74 u32 *addabackup, u32 registernum);
75void rtl8723_phy_save_mac_registers(struct ieee80211_hw *hw,
76 u32 *macreg, u32 *macbackup);
77void rtl8723_phy_reload_adda_registers(struct ieee80211_hw *hw,
78 u32 *addareg, u32 *addabackup,
79 u32 regiesternum);
80void rtl8723_phy_reload_mac_registers(struct ieee80211_hw *hw,
81 u32 *macreg, u32 *macbackup);
82void rtl8723_phy_path_adda_on(struct ieee80211_hw *hw, u32 *addareg,
83 bool is_patha_on, bool is2t);
84void rtl8723_phy_mac_setting_calibration(struct ieee80211_hw *hw,
85 u32 *macreg, u32 *macbackup);
86void rtl8723_phy_path_a_standby(struct ieee80211_hw *hw);
87void rtl8723_phy_pi_mode_switch(struct ieee80211_hw *hw, bool pi_mode);
88
89#endif
90