wifi: renew patch drivers/net/wireless
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rtl8188eu / include / hal_com_phycfg.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
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  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  *
19  ******************************************************************************/
20 #ifndef __HAL_COM_PHYCFG_H__
21 #define __HAL_COM_PHYCFG_H__
22
23 #define         PathA                                           0x0     // Useless
24 #define         PathB                                           0x1
25 #define         PathC                                           0x2
26 #define         PathD                                           0x3
27
28 typedef enum _RATE_SECTION {
29         CCK = 0,
30         OFDM,
31         HT_MCS0_MCS7,
32         HT_MCS8_MCS15,
33         HT_MCS16_MCS23,
34         HT_MCS24_MCS31,
35         VHT_1SSMCS0_1SSMCS9,
36         VHT_2SSMCS0_2SSMCS9,
37         VHT_3SSMCS0_3SSMCS9,
38         VHT_4SSMCS0_4SSMCS9,
39 } RATE_SECTION;
40
41 typedef enum _RF_TX_NUM {
42         RF_1TX = 0,
43         RF_2TX,
44         RF_3TX,
45         RF_4TX,
46         RF_MAX_TX_NUM,
47         RF_TX_NUM_NONIMPLEMENT,
48 } RF_TX_NUM;
49
50 #define MAX_POWER_INDEX                 0x3F
51
52 typedef enum _REGULATION_TXPWR_LMT {
53         TXPWR_LMT_FCC = 0,
54         TXPWR_LMT_MKK = 1,
55         TXPWR_LMT_ETSI = 2,
56         TXPWR_LMT_WW = 3,       
57
58         TXPWR_LMT_MAX_REGULATION_NUM = 4
59 } REGULATION_TXPWR_LMT;
60
61 /*------------------------------Define structure----------------------------*/ 
62 typedef struct _BB_REGISTER_DEFINITION{
63         u32 rfintfs;                    // set software control: 
64                                                 //              0x870~0x877[8 bytes]
65                                                         
66         u32 rfintfo;                    // output data: 
67                                                 //              0x860~0x86f [16 bytes]
68                                                         
69         u32 rfintfe;                    // output enable: 
70                                                 //              0x860~0x86f [16 bytes]
71                                                         
72         u32 rf3wireOffset;      // LSSI data:
73                                                 //              0x840~0x84f [16 bytes]
74
75         u32 rfHSSIPara2;        // wire parameter control2 : 
76                                                 //              0x824~0x827,0x82c~0x82f, 0x834~0x837, 0x83c~0x83f [16 bytes]
77                                                                 
78         u32 rfLSSIReadBack;     //LSSI RF readback data SI mode
79                                                 //              0x8a0~0x8af [16 bytes]
80
81         u32 rfLSSIReadBackPi;   //LSSI RF readback data PI mode 0x8b8-8bc for Path A and B
82
83 }BB_REGISTER_DEFINITION_T, *PBB_REGISTER_DEFINITION_T;
84
85
86 //----------------------------------------------------------------------
87 s32
88 phy_TxPwrIdxToDbm(
89         IN      PADAPTER                Adapter,
90         IN      WIRELESS_MODE   WirelessMode,
91         IN      u8                              TxPwrIdx        
92         );
93
94 u8
95 PHY_GetTxPowerByRateBase(
96         IN      PADAPTER                Adapter,
97         IN      u8                              Band,
98         IN      u8                              RfPath,
99         IN      u8                              TxNum,
100         IN      RATE_SECTION    RateSection
101         );
102
103 u8
104 PHY_GetRateSectionIndexOfTxPowerByRate(
105         IN      PADAPTER        pAdapter,
106         IN      u32                     RegAddr,
107         IN      u32                     BitMask
108         );
109
110 VOID
111 PHY_GetRateValuesOfTxPowerByRate(
112         IN      PADAPTER        pAdapter,
113         IN      u32                     RegAddr,
114         IN      u32                     BitMask,
115         IN      u32                     Value,
116         OUT     u8*                     RateIndex,
117         OUT     s8*                     PwrByRateVal,
118         OUT     u8*                     RateNum
119         );
120
121 u8
122 PHY_GetRateIndexOfTxPowerByRate(
123         IN      u8      Rate
124         );
125
126 VOID 
127 PHY_SetTxPowerIndexByRateSection(
128         IN      PADAPTER                pAdapter,
129         IN      u8                              RFPath, 
130         IN      u8                              Channel,
131         IN      u8                              RateSection
132         );
133
134 s8
135 PHY_GetTxPowerByRate( 
136         IN      PADAPTER        pAdapter, 
137         IN      u8                      Band, 
138         IN      u8                      RFPath, 
139         IN      u8                      TxNum, 
140         IN      u8                      RateIndex
141         );
142
143 VOID
144 PHY_SetTxPowerByRate( 
145         IN      PADAPTER        pAdapter, 
146         IN      u8                      Band, 
147         IN      u8                      RFPath, 
148         IN      u8                      TxNum, 
149         IN      u8                      Rate,
150         IN      s8                      Value
151         );
152
153 VOID
154 PHY_SetTxPowerLevelByPath(
155         IN      PADAPTER        Adapter,
156         IN      u8                      channel,
157         IN      u8                      path
158         );
159
160 VOID 
161 PHY_SetTxPowerIndexByRateArray(
162         IN      PADAPTER                pAdapter,
163         IN      u8                              RFPath,
164         IN      CHANNEL_WIDTH   BandWidth,      
165         IN      u8                              Channel,
166         IN      u8*                             Rates,
167         IN      u8                              RateArraySize
168         );
169
170 VOID
171 PHY_InitTxPowerByRate(
172         IN      PADAPTER        pAdapter
173         );
174
175 VOID
176 PHY_StoreTxPowerByRate(
177         IN      PADAPTER        pAdapter,
178         IN      u32                     Band,
179         IN      u32                     RfPath,
180         IN      u32                     TxNum,
181         IN      u32                     RegAddr,
182         IN      u32                     BitMask,
183         IN      u32                     Data
184         );
185
186 VOID
187 PHY_TxPowerByRateConfiguration(
188         IN  PADAPTER                    pAdapter
189         );
190
191 u8
192 PHY_GetTxPowerIndexBase(
193         IN      PADAPTER                pAdapter,
194         IN      u8                              RFPath,
195         IN      u8                              Rate,   
196         IN      CHANNEL_WIDTH   BandWidth,      
197         IN      u8                              Channel,
198         OUT PBOOLEAN            bIn24G
199         );
200
201 s8
202 PHY_GetTxPowerLimit(
203         IN      PADAPTER                Adapter,
204         IN      u32                             RegPwrTblSel,
205         IN      BAND_TYPE               Band,
206         IN      CHANNEL_WIDTH   Bandwidth,
207         IN      u8                              RfPath,
208         IN      u8                              DataRate,
209         IN      u8                              Channel
210         );
211
212 VOID
213 PHY_SetTxPowerLimit(
214         IN      PADAPTER                        Adapter,
215         IN      u8                                      *Regulation,
216         IN      u8                                      *Band,
217         IN      u8                                      *Bandwidth,
218         IN      u8                                      *RateSection,
219         IN      u8                                      *RfPath,
220         IN      u8                                      *Channel,
221         IN      u8                                      *PowerLimit
222         );
223
224 VOID 
225 PHY_ConvertTxPowerLimitToPowerIndex(
226         IN      PADAPTER                        Adapter
227         );
228
229 VOID
230 PHY_InitTxPowerLimit(
231         IN      PADAPTER                        Adapter
232         );
233
234 s8
235 PHY_GetTxPowerTrackingOffset( 
236         PADAPTER        pAdapter,
237         u8                      Rate,
238         u8                      RFPath
239         );
240
241 u8
242 PHY_GetTxPowerIndex(
243         IN      PADAPTER                        pAdapter,
244         IN      u8                                      RFPath,
245         IN      u8                                      Rate,   
246         IN      CHANNEL_WIDTH           BandWidth,      
247         IN      u8                                      Channel
248         );
249
250 VOID
251 PHY_SetTxPowerIndex(
252         IN      PADAPTER                pAdapter,
253         IN      u32                             PowerIndex,
254         IN      u8                              RFPath, 
255         IN      u8                              Rate
256         );
257
258 VOID
259 Hal_ChannelPlanToRegulation(
260         IN      PADAPTER                Adapter,
261         IN      u16                             ChannelPlan
262         );
263
264 #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
265 #define MAX_PARA_FILE_BUF_LEN   25600
266
267 #define LOAD_MAC_PARA_FILE                              BIT0
268 #define LOAD_BB_PARA_FILE                                       BIT1
269 #define LOAD_BB_PG_PARA_FILE                            BIT2
270 #define LOAD_BB_MP_PARA_FILE                            BIT3
271 #define LOAD_RF_PARA_FILE                                       BIT4
272 #define LOAD_RF_TXPWR_TRACK_PARA_FILE   BIT5
273 #define LOAD_RF_TXPWR_LMT_PARA_FILE             BIT6
274
275 int phy_ConfigMACWithParaFile(IN PADAPTER       Adapter, IN char*       pFileName);
276
277 int phy_ConfigBBWithParaFile(IN PADAPTER        Adapter, IN char*       pFileName, IN u32       ConfigType);
278
279 int phy_ConfigBBWithPgParaFile(IN PADAPTER      Adapter, IN char*       pFileName);
280
281 int phy_ConfigBBWithMpParaFile(IN PADAPTER      Adapter, IN char*       pFileName);
282
283 int PHY_ConfigRFWithParaFile(IN PADAPTER        Adapter, IN char*       pFileName, IN u8        eRFPath);
284
285 int PHY_ConfigRFWithTxPwrTrackParaFile(IN PADAPTER      Adapter, IN char*       pFileName);
286
287 int PHY_ConfigRFWithPowerLimitTableParaFile(IN PADAPTER Adapter, IN char*       pFileName);
288 #endif
289
290
291 #endif //__HAL_COMMON_H__
292