xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8723bs/include/Hal8814PhyCfg.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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 #ifndef __INC_HAL8814PHYCFG_H__
16 #define __INC_HAL8814PHYCFG_H__
17 
18 
19 /*--------------------------Define Parameters-------------------------------*/
20 #define LOOP_LIMIT				5
21 #define MAX_STALL_TIME			50		/* us */
22 #define AntennaDiversityValue	0x80	/* (Adapter->bSoftwareAntennaDiversity ? 0x00 : 0x80) */
23 #define MAX_TXPWR_IDX_NMODE_92S	63
24 #define Reset_Cnt_Limit			3
25 
26 
27 #ifdef CONFIG_PCI_HCI
28 	#define MAX_AGGR_NUM	0x0B
29 #else
30 	#define MAX_AGGR_NUM	0x07
31 #endif /* CONFIG_PCI_HCI */
32 
33 
34 /*--------------------------Define Parameters-------------------------------*/
35 
36 /*------------------------------Define structure----------------------------*/
37 
38 
39 /* BB/RF related */
40 
41 #define	SIC_ENABLE				0
42 
43 /*------------------------------Define structure----------------------------*/
44 
45 
46 /*------------------------Export global variable----------------------------*/
47 /*------------------------Export global variable----------------------------*/
48 
49 
50 /*------------------------Export Marco Definition---------------------------*/
51 /*------------------------Export Marco Definition---------------------------*/
52 
53 
54 /*--------------------------Exported Function prototype---------------------*/
55 /* 1. BB register R/W API */
56 
57 extern	u32
58 PHY_QueryBBReg8814A(IN	PADAPTER	Adapter,
59 		    IN	u32		RegAddr,
60 		    IN	u32		BitMask);
61 
62 
63 VOID
64 PHY_SetBBReg8814A(IN	PADAPTER	Adapter,
65 		  IN	u32		RegAddr,
66 		  IN	u32		BitMask,
67 		  IN	u32		Data);
68 
69 
70 extern	u32
71 PHY_QueryRFReg8814A(IN	PADAPTER			Adapter,
72 		    IN	enum rf_path	eRFPath,
73 		    IN	u32			RegAddr,
74 		    IN	u32			BitMask);
75 
76 
77 void
78 PHY_SetRFReg8814A(IN	PADAPTER			Adapter,
79 		  IN	enum rf_path		eRFPath,
80 		  IN	u32				RegAddr,
81 		  IN	u32				BitMask,
82 		  IN	u32				Data);
83 
84 /* 1 3. Initial BB/RF config by reading MAC/BB/RF txt. */
85 s32
86 phy_BB8814A_Config_ParaFile(
87 	IN	PADAPTER	Adapter
88 );
89 
90 VOID
91 PHY_ConfigBB_8814A(
92 	IN	PADAPTER	Adapter
93 );
94 
95 
96 VOID
97 phy_ADC_CLK_8814A(
98 	IN	PADAPTER	Adapter
99 );
100 
101 s32
102 PHY_RFConfig8814A(
103 	IN	PADAPTER	Adapter
104 );
105 
106 /*
107  * RF Power setting
108  *
109  * BOOLEAN	PHY_SetRFPowerState8814A(PADAPTER Adapter, rt_rf_power_state	eRFPowerState); */
110 
111 /* 1 5. Tx  Power setting API */
112 
113 VOID
114 PHY_GetTxPowerLevel8814(
115 	IN	PADAPTER		Adapter,
116 	OUT ps4Byte			powerlevel
117 );
118 
119 VOID
120 PHY_SetTxPowerLevel8814(
121 	IN	PADAPTER		Adapter,
122 	IN	u8			Channel
123 );
124 
125 u8
126 phy_get_tx_power_index_8814a(
127 	IN	PADAPTER		Adapter,
128 	IN	enum rf_path		RFPath,
129 	IN	u8				Rate,
130 	IN	enum channel_width BandWidth,
131 	IN	u8				Channel
132 );
133 
134 u8
135 PHY_GetTxPowerIndex8814A(
136 	IN	PADAPTER		Adapter,
137 	IN	enum rf_path		RFPath,
138 	IN	u8				Rate,
139 	IN	u8				BandWidth,
140 	IN	u8				Channel,
141 	struct txpwr_idx_comp *tic
142 );
143 
144 VOID
145 PHY_SetTxPowerIndex_8814A(
146 	IN	PADAPTER		Adapter,
147 	IN	u32				PowerIndex,
148 	IN	enum rf_path		RFPath,
149 	IN	u8				Rate
150 );
151 
152 
153 BOOLEAN
154 PHY_UpdateTxPowerDbm8814A(
155 	IN	PADAPTER	Adapter,
156 	IN	s4Byte		powerInDbm
157 );
158 
159 
160 u32
161 PHY_GetTxBBSwing_8814A(
162 	IN	PADAPTER	Adapter,
163 	IN	BAND_TYPE	Band,
164 	IN	enum rf_path	RFPath
165 );
166 
167 
168 
169 /* 1 6. Channel setting API */
170 
171 VOID
172 PHY_SwChnlTimerCallback8814A(
173 	IN	struct timer_list		*p_timer
174 );
175 
176 VOID
177 PHY_SwChnlWorkItemCallback8814A(
178 	IN PVOID            pContext
179 );
180 
181 
182 VOID
183 HAL_HandleSwChnl8814A(
184 	IN	PADAPTER	pAdapter,
185 	IN	u8		channel
186 );
187 
188 VOID
189 PHY_SwChnlSynchronously8814A(IN	PADAPTER		pAdapter,
190 			     IN	u8			channel);
191 
192 VOID
193 PHY_SwChnlAndSetBWModeCallback8814A(IN PVOID            pContext);
194 
195 
196 VOID
197 PHY_HandleSwChnlAndSetBW8814A(
198 	IN	PADAPTER			Adapter,
199 	IN	BOOLEAN				bSwitchChannel,
200 	IN	BOOLEAN				bSetBandWidth,
201 	IN	u8					ChannelNum,
202 	IN	enum channel_width	ChnlWidth,
203 	IN	u8					ChnlOffsetOf40MHz,
204 	IN	u8					ChnlOffsetOf80MHz,
205 	IN	u8					CenterFrequencyIndex1
206 );
207 
208 
209 BOOLEAN
210 PHY_QueryRFPathSwitch_8814A(IN	PADAPTER	pAdapter);
211 
212 
213 
214 #if (USE_WORKITEM)
215 VOID
216 RtCheckForHangWorkItemCallback8814A(
217 	IN PVOID   pContext
218 );
219 #endif
220 
221 BOOLEAN
222 SetAntennaConfig8814A(
223 	IN	PADAPTER	Adapter,
224 	IN	u8		DefaultAnt
225 );
226 
227 VOID
228 PHY_SetRFEReg8814A(
229 	IN PADAPTER		Adapter,
230 	IN BOOLEAN		bInit,
231 	IN u8		Band
232 );
233 
234 
235 s32
236 PHY_SwitchWirelessBand8814A(
237 	IN PADAPTER		 Adapter,
238 	IN u8		Band
239 );
240 
241 VOID
242 PHY_SetIO_8814A(
243 	PADAPTER		pAdapter
244 );
245 
246 VOID
247 PHY_SetSwChnlBWMode8814(
248 	IN	PADAPTER			Adapter,
249 	IN	u8					channel,
250 	IN	enum channel_width	Bandwidth,
251 	IN	u8					Offset40,
252 	IN	u8					Offset80
253 );
254 
255 s32 PHY_MACConfig8814(PADAPTER Adapter);
256 int PHY_BBConfig8814(PADAPTER	Adapter);
257 VOID PHY_Set_SecCCATH_by_RXANT_8814A(PADAPTER	pAdapter, u4Byte ulAntennaRx);
258 
259 
260 
261 /*--------------------------Exported Function prototype---------------------*/
262 
263 /*--------------------------Exported Function prototype---------------------*/
264 #endif /* __INC_HAL8192CPHYCFG_H */
265