1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2017 Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  *****************************************************************************/
15 
16 #ifndef __HAL_PHY_RF_8723B_H__
17 #define __HAL_PHY_RF_8723B_H__
18 
19 /*--------------------------Define Parameters-------------------------------*/
20 #define	index_mapping_NUM_8723B		15
21 #define AVG_THERMAL_NUM_8723B		4
22 
23 #include "halrf/halphyrf_win.h"
24 
25 void configure_txpower_track_8723b(
26 	struct _TXPWRTRACK_CFG	*p_config
27 );
28 
29 void do_iqk_8723b(
30 	void		*p_dm_void,
31 	u8		delta_thermal_index,
32 	u8		thermal_value,
33 	u8		threshold
34 );
35 
36 void
37 odm_tx_pwr_track_set_pwr_8723b(
38 	void *p_dm_void,
39 	enum pwrtrack_method	method,
40 	u8				rf_path,
41 	u8				channel_mapped_index
42 );
43 
44 /* 1 7.	IQK */
45 
46 void
47 phy_iq_calibrate_8723b(
48 	void		*p_dm_void,
49 	boolean	is_recovery);
50 
51 boolean
52 odm_set_iqc_by_rfpath(
53 	/* #if (DM_ODM_SUPPORT_TYPE & ODM_AP) */
54 	struct PHY_DM_STRUCT		*p_dm,
55 	/* #else */
56 	/* struct _ADAPTER*	p_adapter,
57 	* #endif */
58 	u32 rf_path
59 );
60 
61 /*
62  * LC calibrate
63  *   */
64 void
65 phy_lc_calibrate_8723b(
66 	void		*p_dm_void
67 );
68 
69 /*
70  * AP calibrate
71  *   */
72 void
73 phy_ap_calibrate_8723b(
74 #if (DM_ODM_SUPPORT_TYPE & ODM_AP)
75 	struct PHY_DM_STRUCT		*p_dm,
76 #else
77 	struct _ADAPTER	*p_adapter,
78 #endif
79 	s8		delta);
80 void
81 phy_digital_predistortion_8723b(struct _ADAPTER	*p_adapter);
82 
83 
84 void
85 _phy_save_adda_registers_8723b(
86 #if (DM_ODM_SUPPORT_TYPE & ODM_AP)
87 	struct PHY_DM_STRUCT		*p_dm,
88 #else
89 	struct _ADAPTER	*p_adapter,
90 #endif
91 	u32		*adda_reg,
92 	u32		*adda_backup,
93 	u32		register_num
94 );
95 
96 void
97 _phy_path_adda_on_8723b(
98 #if (DM_ODM_SUPPORT_TYPE & ODM_AP)
99 	struct PHY_DM_STRUCT		*p_dm,
100 #else
101 	struct _ADAPTER	*p_adapter,
102 #endif
103 	u32		*adda_reg,
104 	boolean		is_path_a_on,
105 	boolean		is2T
106 );
107 
108 void
109 halrf_rf_lna_setting_8723b(
110 	struct PHY_DM_STRUCT	*p_dm,
111 	enum phydm_lna_set type
112 );
113 
114 
115 void
116 _phy_mac_setting_calibration_8723b(
117 #if (DM_ODM_SUPPORT_TYPE & ODM_AP)
118 	struct PHY_DM_STRUCT		*p_dm,
119 #else
120 	struct _ADAPTER	*p_adapter,
121 #endif
122 	u32		*mac_reg,
123 	u32		*mac_backup
124 );
125 
126 #endif	/*  #ifndef __HAL_PHY_RF_8188E_H__ */
127