1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2010 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  * Modifications for inclusion into the Linux staging tree are
19  * Copyright(c) 2010 Larry Finger. All rights reserved.
20  *
21  * Contact information:
22  * WLAN FAE <wlanfae@realtek.com>
23  * Larry Finger <Larry.Finger@lwfinger.net>
24  *
25  ******************************************************************************/
26 #ifndef __RTL8712_CMD_H_
27 #define __RTL8712_CMD_H_
28 
29 u8 r8712_fw_cmd(struct _adapter *pAdapter, u32 cmd);
30 void r8712_fw_cmd_data(struct _adapter *pAdapter, u32 *value, u8 flag);
31 
32 
33 enum rtl8712_h2c_cmd {
34 	GEN_CMD_CODE(_Read_MACREG),	/*0*/
35 	GEN_CMD_CODE(_Write_MACREG),
36 	GEN_CMD_CODE(_Read_BBREG),
37 	GEN_CMD_CODE(_Write_BBREG),
38 	GEN_CMD_CODE(_Read_RFREG),
39 	GEN_CMD_CODE(_Write_RFREG), /*5*/
40 	GEN_CMD_CODE(_Read_EEPROM),
41 	GEN_CMD_CODE(_Write_EEPROM),
42 	GEN_CMD_CODE(_Read_EFUSE),
43 	GEN_CMD_CODE(_Write_EFUSE),
44 
45 	GEN_CMD_CODE(_Read_CAM),	/*10*/
46 	GEN_CMD_CODE(_Write_CAM),
47 	GEN_CMD_CODE(_setBCNITV),
48 	GEN_CMD_CODE(_setMBIDCFG),
49 	GEN_CMD_CODE(_JoinBss),   /*14*/
50 	GEN_CMD_CODE(_DisConnect), /*15*/
51 	GEN_CMD_CODE(_CreateBss),
52 	GEN_CMD_CODE(_SetOpMode),
53 	GEN_CMD_CODE(_SiteSurvey),  /*18*/
54 	GEN_CMD_CODE(_SetAuth),
55 
56 	GEN_CMD_CODE(_SetKey),	/*20*/
57 	GEN_CMD_CODE(_SetStaKey),
58 	GEN_CMD_CODE(_SetAssocSta),
59 	GEN_CMD_CODE(_DelAssocSta),
60 	GEN_CMD_CODE(_SetStaPwrState),
61 	GEN_CMD_CODE(_SetBasicRate), /*25*/
62 	GEN_CMD_CODE(_GetBasicRate),
63 	GEN_CMD_CODE(_SetDataRate),
64 	GEN_CMD_CODE(_GetDataRate),
65 	GEN_CMD_CODE(_SetPhyInfo),
66 
67 	GEN_CMD_CODE(_GetPhyInfo),	/*30*/
68 	GEN_CMD_CODE(_SetPhy),
69 	GEN_CMD_CODE(_GetPhy),
70 	GEN_CMD_CODE(_readRssi),
71 	GEN_CMD_CODE(_readGain),
72 	GEN_CMD_CODE(_SetAtim), /*35*/
73 	GEN_CMD_CODE(_SetPwrMode),
74 	GEN_CMD_CODE(_JoinbssRpt),
75 	GEN_CMD_CODE(_SetRaTable),
76 	GEN_CMD_CODE(_GetRaTable),
77 
78 	GEN_CMD_CODE(_GetCCXReport), /*40*/
79 	GEN_CMD_CODE(_GetDTMReport),
80 	GEN_CMD_CODE(_GetTXRateStatistics),
81 	GEN_CMD_CODE(_SetUsbSuspend),
82 	GEN_CMD_CODE(_SetH2cLbk),
83 	GEN_CMD_CODE(_AddBAReq), /*45*/
84 
85 	GEN_CMD_CODE(_SetChannel), /*46*/
86 /* MP_OFFLOAD Start (47~54)*/
87 	GEN_CMD_CODE(_SetTxPower),
88 	GEN_CMD_CODE(_SwitchAntenna),
89 	GEN_CMD_CODE(_SetCrystalCap),
90 	GEN_CMD_CODE(_SetSingleCarrierTx), /*50*/
91 	GEN_CMD_CODE(_SetSingleToneTx),
92 	GEN_CMD_CODE(_SetCarrierSuppressionTx),
93 	GEN_CMD_CODE(_SetContinuousTx),
94 	GEN_CMD_CODE(_SwitchBandwidth), /*54*/
95 /* MP_OFFLOAD End*/
96 	GEN_CMD_CODE(_TX_Beacon), /*55*/
97 	GEN_CMD_CODE(_SetPowerTracking),
98 	GEN_CMD_CODE(_AMSDU_TO_AMPDU), /*57*/
99 	GEN_CMD_CODE(_SetMacAddress), /*58*/
100 	MAX_H2CCMD
101 };
102 
103 
104 #define _GetBBReg_CMD_		_Read_BBREG_CMD_
105 #define _SetBBReg_CMD_		_Write_BBREG_CMD_
106 #define _GetRFReg_CMD_		_Read_RFREG_CMD_
107 #define _SetRFReg_CMD_		_Write_RFREG_CMD_
108 #define _DRV_INT_CMD_		(MAX_H2CCMD+1)
109 #define _SetRFIntFs_CMD_	(MAX_H2CCMD+2)
110 
111 #ifdef _RTL8712_CMD_C_
112 static struct _cmd_callback	cmd_callback[] = {
113 	{GEN_CMD_CODE(_Read_MACREG), NULL}, /*0*/
114 	{GEN_CMD_CODE(_Write_MACREG), NULL},
115 	{GEN_CMD_CODE(_Read_BBREG), &r8712_getbbrfreg_cmdrsp_callback},
116 	{GEN_CMD_CODE(_Write_BBREG), NULL},
117 	{GEN_CMD_CODE(_Read_RFREG), &r8712_getbbrfreg_cmdrsp_callback},
118 	{GEN_CMD_CODE(_Write_RFREG), NULL}, /*5*/
119 	{GEN_CMD_CODE(_Read_EEPROM), NULL},
120 	{GEN_CMD_CODE(_Write_EEPROM), NULL},
121 	{GEN_CMD_CODE(_Read_EFUSE), NULL},
122 	{GEN_CMD_CODE(_Write_EFUSE), NULL},
123 
124 	{GEN_CMD_CODE(_Read_CAM),	NULL},	/*10*/
125 	{GEN_CMD_CODE(_Write_CAM),	 NULL},
126 	{GEN_CMD_CODE(_setBCNITV), NULL},
127 	{GEN_CMD_CODE(_setMBIDCFG), NULL},
128 	{GEN_CMD_CODE(_JoinBss), &r8712_joinbss_cmd_callback},  /*14*/
129 	{GEN_CMD_CODE(_DisConnect), &r8712_disassoc_cmd_callback}, /*15*/
130 	{GEN_CMD_CODE(_CreateBss), &r8712_createbss_cmd_callback},
131 	{GEN_CMD_CODE(_SetOpMode), NULL},
132 	{GEN_CMD_CODE(_SiteSurvey), &r8712_survey_cmd_callback}, /*18*/
133 	{GEN_CMD_CODE(_SetAuth), NULL},
134 
135 	{GEN_CMD_CODE(_SetKey), NULL},	/*20*/
136 	{GEN_CMD_CODE(_SetStaKey), &r8712_setstaKey_cmdrsp_callback},
137 	{GEN_CMD_CODE(_SetAssocSta), &r8712_setassocsta_cmdrsp_callback},
138 	{GEN_CMD_CODE(_DelAssocSta), NULL},
139 	{GEN_CMD_CODE(_SetStaPwrState), NULL},
140 	{GEN_CMD_CODE(_SetBasicRate), NULL}, /*25*/
141 	{GEN_CMD_CODE(_GetBasicRate), NULL},
142 	{GEN_CMD_CODE(_SetDataRate), NULL},
143 	{GEN_CMD_CODE(_GetDataRate), NULL},
144 	{GEN_CMD_CODE(_SetPhyInfo), NULL},
145 
146 	{GEN_CMD_CODE(_GetPhyInfo), NULL}, /*30*/
147 	{GEN_CMD_CODE(_SetPhy), NULL},
148 	{GEN_CMD_CODE(_GetPhy), NULL},
149 	{GEN_CMD_CODE(_readRssi), NULL},
150 	{GEN_CMD_CODE(_readGain), NULL},
151 	{GEN_CMD_CODE(_SetAtim), NULL}, /*35*/
152 	{GEN_CMD_CODE(_SetPwrMode), NULL},
153 	{GEN_CMD_CODE(_JoinbssRpt), NULL},
154 	{GEN_CMD_CODE(_SetRaTable), NULL},
155 	{GEN_CMD_CODE(_GetRaTable), NULL},
156 
157 	{GEN_CMD_CODE(_GetCCXReport), NULL}, /*40*/
158 	{GEN_CMD_CODE(_GetDTMReport),	NULL},
159 	{GEN_CMD_CODE(_GetTXRateStatistics), NULL},
160 	{GEN_CMD_CODE(_SetUsbSuspend), NULL},
161 	{GEN_CMD_CODE(_SetH2cLbk), NULL},
162 	{GEN_CMD_CODE(_AddBAReq), NULL}, /*45*/
163 
164 	{GEN_CMD_CODE(_SetChannel), NULL},		/*46*/
165 /* MP_OFFLOAD Start (47~54)*/
166 	{GEN_CMD_CODE(_SetTxPower), NULL},
167 	{GEN_CMD_CODE(_SwitchAntenna), NULL},
168 	{GEN_CMD_CODE(_SetCrystalCap), NULL},
169 	{GEN_CMD_CODE(_SetSingleCarrierTx), NULL},	/*50*/
170 	{GEN_CMD_CODE(_SetSingleToneTx), NULL},
171 	{GEN_CMD_CODE(_SetCarrierSuppressionTx), NULL},
172 	{GEN_CMD_CODE(_SetContinuousTx), NULL},
173 	{GEN_CMD_CODE(_SwitchBandwidth), NULL},		/*54*/
174 /* MP_OFFLOAD End*/
175 	{GEN_CMD_CODE(_TX_Beacon), NULL}, /*55*/
176 	{GEN_CMD_CODE(_SetPowerTracking), NULL},
177 	{GEN_CMD_CODE(_AMSDU_TO_AMPDU), NULL}, /*57*/
178 	{GEN_CMD_CODE(_SetMacAddress), NULL}, /*58*/
179 };
180 #endif
181 
182 #endif
183