OSDN Git Service

rtl8723au: Remove some trailing white space
[android-x86/external-modules-rtl8723au.git] / hal / odm_RegConfig8723A.c
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
21 #include "odm_precomp.h"
22
23 #if (RTL8723A_SUPPORT == 1)
24
25 void
26 odm_ConfigRFReg_8723A(
27         IN      PDM_ODM_T                               pDM_Odm,
28         IN      u4Byte                                  Addr,
29         IN      u4Byte                                  Data,
30         IN  ODM_RF_RADIO_PATH_E     RF_PATH,
31         IN      u4Byte                              RegAddr
32         )
33 {
34         if(Addr == 0xfe)
35         {
36                 #ifdef CONFIG_LONG_DELAY_ISSUE
37                 ODM_sleep_ms(50);
38                 #else
39                 ODM_delay_ms(50);
40                 #endif
41         }
42         else if (Addr == 0xfd)
43         {
44                 ODM_delay_ms(5);
45         }
46         else if (Addr == 0xfc)
47         {
48                 ODM_delay_ms(1);
49         }
50         else if (Addr == 0xfb)
51         {
52                 ODM_delay_us(50);
53         }
54         else if (Addr == 0xfa)
55         {
56                 ODM_delay_us(5);
57         }
58         else if (Addr == 0xf9)
59         {
60                 ODM_delay_us(1);
61         }
62         else
63         {
64                 ODM_SetRFReg(pDM_Odm, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
65                 // Add 1us delay between BB/RF register setting.
66                 ODM_delay_us(1);
67         }
68 }
69
70
71 void
72 odm_ConfigRF_RadioA_8723A(
73         IN      PDM_ODM_T                               pDM_Odm,
74         IN      u4Byte                                  Addr,
75         IN      u4Byte                                  Data
76         )
77 {
78         u4Byte  content = 0x1000; // RF_Content: radioa_txt
79         u4Byte  maskforPhySet= (u4Byte)(content&0xE000);
80
81     odm_ConfigRFReg_8723A(pDM_Odm, Addr, Data, ODM_RF_PATH_A, Addr|maskforPhySet);
82
83         ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> ODM_ConfigRFWithHeaderFile: [RadioA] %08X %08X\n", Addr, Data));
84 }
85
86 void
87 odm_ConfigRF_RadioB_8723A(
88         IN      PDM_ODM_T                               pDM_Odm,
89         IN      u4Byte                                  Addr,
90         IN      u4Byte                                  Data
91         )
92 {
93         u4Byte  content = 0x1001; // RF_Content: radiob_txt
94         u4Byte  maskforPhySet= (u4Byte)(content&0xE000);
95
96     odm_ConfigRFReg_8723A(pDM_Odm, Addr, Data, ODM_RF_PATH_B, Addr|maskforPhySet);
97
98         ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> ODM_ConfigRFWithHeaderFile: [RadioB] %08X %08X\n", Addr, Data));
99
100 }
101
102 void
103 odm_ConfigMAC_8723A(
104         IN      PDM_ODM_T       pDM_Odm,
105         IN      u4Byte          Addr,
106         IN      u1Byte          Data
107         )
108 {
109         ODM_Write1Byte(pDM_Odm, Addr, Data);
110         ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> ODM_ConfigMACWithHeaderFile: [MAC_REG] %08X %08X\n", Addr, Data));
111 }
112
113 void
114 odm_ConfigBB_AGC_8723A(
115         IN      PDM_ODM_T       pDM_Odm,
116         IN      u4Byte          Addr,
117         IN      u4Byte          Bitmask,
118         IN      u4Byte          Data
119     )
120 {
121         ODM_SetBBReg(pDM_Odm, Addr, Bitmask, Data);
122         // Add 1us delay between BB/RF register setting.
123         ODM_delay_us(1);
124
125         ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> ODM_ConfigBBWithHeaderFile: [AGC_TAB] %08X %08X\n", Addr, Data));
126 }
127
128 void
129 odm_ConfigBB_PHY_REG_PG_8723A(
130         IN      PDM_ODM_T       pDM_Odm,
131         IN      u4Byte          Addr,
132         IN      u4Byte          Bitmask,
133         IN      u4Byte          Data
134     )
135 {
136         if (Addr == 0xfe)
137                 #ifdef CONFIG_LONG_DELAY_ISSUE
138                 ODM_sleep_ms(50);
139                 #else
140                 ODM_delay_ms(50);
141                 #endif
142         else if (Addr == 0xfd)
143                 ODM_delay_ms(5);
144         else if (Addr == 0xfc)
145                 ODM_delay_ms(1);
146         else if (Addr == 0xfb)
147                 ODM_delay_us(50);
148         else if (Addr == 0xfa)
149                 ODM_delay_us(5);
150         else if (Addr == 0xf9)
151                 ODM_delay_us(1);
152     // TODO: ODM_StorePwrIndexDiffRateOffset(...)
153         // storePwrIndexDiffRateOffset(Adapter, Addr, Bitmask, Data);
154
155     ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> ODM_ConfigBBWithHeaderFile: [PHY_REG] %08X %08X %08X\n", Addr, Bitmask, Data));
156 }
157
158 void
159 odm_ConfigBB_PHY_8723A(
160         IN      PDM_ODM_T       pDM_Odm,
161     IN  u4Byte          Addr,
162     IN  u4Byte          Bitmask,
163     IN  u4Byte          Data
164     )
165 {
166         if (Addr == 0xfe)
167                 #ifdef CONFIG_LONG_DELAY_ISSUE
168                 ODM_sleep_ms(50);
169                 #else
170                 ODM_delay_ms(50);
171                 #endif
172         else if (Addr == 0xfd)
173                 ODM_delay_ms(5);
174         else if (Addr == 0xfc)
175                 ODM_delay_ms(1);
176         else if (Addr == 0xfb)
177                 ODM_delay_us(50);
178         else if (Addr == 0xfa)
179                 ODM_delay_us(5);
180         else if (Addr == 0xf9)
181                 ODM_delay_us(1);
182         else if (Addr == 0xa24)
183                 pDM_Odm->RFCalibrateInfo.RegA24 = Data;
184         ODM_SetBBReg(pDM_Odm, Addr, Bitmask, Data);
185
186         // Add 1us delay between BB/RF register setting.
187         ODM_delay_us(1);
188
189     ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> ODM_ConfigBBWithHeaderFile: [PHY_REG] %08X %08X\n", Addr, Data));
190 }
191 #endif