support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931 / include / nic / mt5931_reg.h
1 /*\r
2 ** $Id: //Department/DaVinci/TRUNK/MT6620_5931_WiFi_Driver/include/nic/mt5931_reg.h#3 $\r
3 */\r
4 \r
5 /*! \file   "mt5931_reg.h"\r
6     \brief  The common register definition of mt5931\r
7 \r
8     N/A\r
9 */\r
10 \r
11 /*******************************************************************************\r
12 * Copyright (c) 2010 MediaTek Inc.\r
13 *\r
14 * All rights reserved. Copying, compilation, modification, distribution\r
15 * or any other use whatsoever of this material is strictly prohibited\r
16 * except in accordance with a Software License Agreement with\r
17 * MediaTek Inc.\r
18 ********************************************************************************\r
19 */\r
20 \r
21 /*******************************************************************************\r
22 * LEGAL DISCLAIMER\r
23 *\r
24 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND\r
25 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK\r
26 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE\r
27 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY\r
28 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT\r
29 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r
30 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE\r
31 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY\r
32 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK\r
33 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY\r
34 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE\r
35 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO\r
36 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.\r
37 *\r
38 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE\r
39 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL\r
40 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT\r
41 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY\r
42 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.\r
43 *\r
44 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE\r
45 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT\r
46 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING\r
47 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN\r
48 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE\r
49 * (ICC).\r
50 ********************************************************************************\r
51 */\r
52 \r
53 /*\r
54 ** $Log: mt5931_reg.h $\r
55  *\r
56  * 02 25 2011 cp.wu\r
57  * [WCXRP00000496] [MT5931][Driver] Apply host-triggered chip reset before initializing firmware download procedures\r
58  * apply host-triggered chip reset mechanism before initializing firmware download procedures.\r
59  *\r
60  * 02 18 2011 terry.wu\r
61  * [WCXRP00000412] [MT6620 Wi-Fi][FW/Driver] Dump firmware assert info at android kernel log\r
62  * Add WHISR_D2H_SW_ASSERT_INFO_INT to MT5931_reg.\r
63  *\r
64  * 10 07 2010 cp.wu\r
65  * [WCXRP00000083] [MT5931][Driver][FW] Add necessary logic for MT5931 first connection\r
66  * add firmware download for MT5931.\r
67  *\r
68 */\r
69 \r
70 #ifndef _MT5931_REG_H\r
71 #define _MT5931_REG_H\r
72 \r
73 /*******************************************************************************\r
74 *                         C O M P I L E R   F L A G S\r
75 ********************************************************************************\r
76 */\r
77 \r
78 /*******************************************************************************\r
79 *                    E X T E R N A L   R E F E R E N C E S\r
80 ********************************************************************************\r
81 */\r
82 \r
83 /*******************************************************************************\r
84 *                              C O N S T A N T S\r
85 ********************************************************************************\r
86 */\r
87 \r
88 /*******************************************************************************\r
89 *                             D A T A   T Y P E S\r
90 ********************************************************************************\r
91 */\r
92 \r
93 \r
94 /*******************************************************************************\r
95 *                            P U B L I C   D A T A\r
96 ********************************************************************************\r
97 */\r
98 \r
99 /*******************************************************************************\r
100 *                           P R I V A T E   D A T A\r
101 ********************************************************************************\r
102 */\r
103 \r
104 /*******************************************************************************\r
105 *                                 M A C R O S\r
106 ********************************************************************************\r
107 */\r
108 \r
109 /*******************************************************************************\r
110 *                   F U N C T I O N   D E C L A R A T I O N S\r
111 ********************************************************************************\r
112 */\r
113 \r
114 /*******************************************************************************\r
115 *                              F U N C T I O N S\r
116 ********************************************************************************\r
117 */\r
118 \r
119 //1 MT5931 MCR Definition\r
120 \r
121 //2 Host Interface\r
122 \r
123 //4 CHIP ID Register\r
124 #define MCR_WCIR                            0x0000\r
125 \r
126 //4 HIF Low Power Control  Register\r
127 #define MCR_WHLPCR                          0x0004\r
128 \r
129 //4 Control  Status Register\r
130 #define MCR_WSDIOCSR                        0x0008\r
131 #define MCR_WSPICSR                         0x0008\r
132 \r
133 //4 HIF Control Register\r
134 #define MCR_WHCR                            0x000C\r
135 \r
136 //4 HIF Interrupt Status  Register\r
137 #define MCR_WHISR                           0x0010\r
138 \r
139 //4 HIF Interrupt Enable  Register\r
140 #define MCR_WHIER                           0x0014\r
141 \r
142 //4 Abnormal Status Register\r
143 #define MCR_WASR                            0x0018\r
144 \r
145 //4 WLAN Software Interrupt Control Register\r
146 #define MCR_WSICR                           0x001C\r
147 \r
148 //4 WLAN TX Status Register\r
149 #define MCR_WTSR0                           0x0020\r
150 \r
151 //4 WLAN TX Status Register\r
152 #define MCR_WTSR1                           0x0024\r
153 \r
154 //4 WLAN TX Data Register 0\r
155 #define MCR_WTDR0                           0x0028\r
156 \r
157 //4 WLAN TX Data Register 1\r
158 #define MCR_WTDR1                           0x002C\r
159 \r
160 //4 WLAN RX Data Register 0\r
161 #define MCR_WRDR0                           0x0030\r
162 \r
163 //4 WLAN RX Data Register 1\r
164 #define MCR_WRDR1                           0x0034\r
165 \r
166 //4 Host to Device Send Mailbox 0 Register\r
167 #define MCR_H2DSM0R                         0x0038\r
168 \r
169 //4 Host to Device Send Mailbox 1 Register\r
170 #define MCR_H2DSM1R                         0x003c\r
171 \r
172 //4 Device to Host Receive Mailbox 0 Register\r
173 #define MCR_D2HRM0R                         0x0040\r
174 \r
175 //4 Device to Host Receive Mailbox 1 Register\r
176 #define MCR_D2HRM1R                         0x0044\r
177 \r
178 //4 Device to Host Receive Mailbox 2 Register\r
179 #define MCR_D2HRM2R                         0x0048\r
180 \r
181 //4 WLAN RX Packet Length Register\r
182 #define MCR_WRPLR                           0x0050\r
183 \r
184 //4 EHPI Transaction Count Register\r
185 #define MCR_EHTCR                           0x0054\r
186 \r
187 //4 Firmware Download Data Register\r
188 #define MCR_FWDLDR                          0x0080\r
189 \r
190 //4 Firmware Download Destination Starting Address Register\r
191 #define MCR_FWDLDSAR                        0x0084\r
192 \r
193 //4 Firmware Download Status Register\r
194 #define MCR_FWDLSR                          0x0088\r
195 \r
196 //4 WLAN MCU Control & Status Register\r
197 #define MCR_WMCSR                           0x008c\r
198 \r
199 //4 WLAN Firmware Download Configuration\r
200 #define MCR_FWCFG                           0x0090\r
201 \r
202 \r
203 //#if CFG_SDIO_INTR_ENHANCE\r
204 typedef struct _ENHANCE_MODE_DATA_STRUCT_T {\r
205     UINT_32             u4WHISR;\r
206     union {\r
207         struct {\r
208             UINT_8              ucTQ0Cnt;\r
209             UINT_8              ucTQ1Cnt;\r
210             UINT_8              ucTQ2Cnt;\r
211             UINT_8              ucTQ3Cnt;\r
212             UINT_8              ucTQ4Cnt;\r
213             UINT_8              ucTQ5Cnt;\r
214             UINT_16             u2Rsrv;\r
215         } u;\r
216         UINT_32                 au4WTSR[2];\r
217     } rTxInfo;\r
218     union {\r
219         struct {\r
220             UINT_16             u2NumValidRx0Len;\r
221             UINT_16             u2NumValidRx1Len;\r
222             UINT_16             au2Rx0Len[16];\r
223             UINT_16             au2Rx1Len[16];\r
224         } u;\r
225         UINT_32                 au4RxStatusRaw[17];\r
226     } rRxInfo;\r
227     UINT_32                     u4RcvMailbox0;\r
228     UINT_32                     u4RcvMailbox1;\r
229 } ENHANCE_MODE_DATA_STRUCT_T, *P_ENHANCE_MODE_DATA_STRUCT_T;\r
230 // #endif /* ENHANCE_MODE_DATA_STRUCT_T */\r
231 \r
232 \r
233 //2 Definition in each register\r
234 //3 WCIR 0x0000\r
235 #define WCIR_WLAN_READY                  BIT(21)\r
236 #define WCIR_POR_INDICATOR               BIT(20)\r
237 #define WCIR_REVISION_ID                 BITS(16,19)\r
238 #define WCIR_CHIP_ID                     BITS(0,15)\r
239 \r
240 #define MTK_CHIP_REV                     0x00005931\r
241 #define MTK_CHIP_MP_REVERSION_ID         0x0\r
242 \r
243 //3 WHLPCR 0x0004\r
244 #define WHLPCR_FW_OWN_REQ_CLR            BIT(9)\r
245 #define WHLPCR_FW_OWN_REQ_SET            BIT(8)\r
246 #define WHLPCR_IS_DRIVER_OWN             BIT(8)\r
247 #define WHLPCR_INT_EN_CLR                BIT(1)\r
248 #define WHLPCR_INT_EN_SET                BIT(0)\r
249 \r
250 //3 WSDIOCSR 0x0008\r
251 #define WSDIOCSR_SDIO_RE_INIT_EN         BIT(0)\r
252 \r
253 //3 WSPICSR 0x0008\r
254 #define WCSR_SPI_MODE_SEL                BITS(3,4)\r
255 #define WCSR_SPI_ENDIAN_BIG              BIT(2)\r
256 #define WCSR_SPI_INT_OUT_MODE            BIT(1)\r
257 #define WCSR_SPI_DATA_OUT_MODE           BIT(0)\r
258 \r
259 //3 WHCR 0x000C\r
260 #define WHCR_RX_ENHANCE_MODE_EN         BIT(16)\r
261 #define WHCR_MAX_HIF_RX_LEN_NUM         BITS(4,7)\r
262 #define WHCR_W_MAILBOX_RD_CLR_EN        BIT(2)\r
263 #define WHCR_W_INT_CLR_CTRL             BIT(1)\r
264 #define WHCR_MCU_DBG_EN                 BIT(0)\r
265 #define WHCR_OFFSET_MAX_HIF_RX_LEN_NUM  4\r
266 \r
267 //3 WHISR 0x0010\r
268 #define WHISR_D2H_SW_INT                BITS(8,31)\r
269 #define WHISR_D2H_SW_ASSERT_INFO_INT    BIT(31)\r
270 #define WHISR_FW_OWN_BACK_INT           BIT(4)\r
271 #define WHISR_ABNORMAL_INT              BIT(3)\r
272 #define WHISR_RX1_DONE_INT              BIT(2)\r
273 #define WHISR_RX0_DONE_INT              BIT(1)\r
274 #define WHISR_TX_DONE_INT               BIT(0)\r
275 \r
276 \r
277 //3 WHIER 0x0014\r
278 #define WHIER_D2H_SW_INT                BITS(8,31)\r
279 #define WHIER_FW_OWN_BACK_INT_EN        BIT(4)\r
280 #define WHIER_ABNORMAL_INT_EN           BIT(3)\r
281 #define WHIER_RX1_DONE_INT_EN           BIT(2)\r
282 #define WHIER_RX0_DONE_INT_EN           BIT(1)\r
283 #define WHIER_TX_DONE_INT_EN            BIT(0)\r
284 #define WHIER_DEFAULT                   (WHIER_RX0_DONE_INT_EN    | \\r
285                                          WHIER_RX1_DONE_INT_EN    | \\r
286                                          WHIER_TX_DONE_INT_EN     | \\r
287                                          WHIER_ABNORMAL_INT_EN    | \\r
288                                          WHIER_D2H_SW_INT           \\r
289                                          )\r
290 \r
291 \r
292 //3 WASR 0x0018\r
293 #define WASR_FW_OWN_INVALID_ACCESS      BIT(4)\r
294 #define WASR_RX1_UNDER_FLOW             BIT(3)\r
295 #define WASR_RX0_UNDER_FLOW             BIT(2)\r
296 #define WASR_TX1_OVER_FLOW              BIT(1)\r
297 #define WASR_TX0_OVER_FLOW              BIT(0)\r
298 \r
299 \r
300 //3 WSICR 0x001C\r
301 #define WSICR_H2D_SW_INT_SET            BITS(16,31)\r
302 \r
303 \r
304 //3 WRPLR 0x0050\r
305 #define WRPLR_RX1_PACKET_LENGTH         BITS(16,31)\r
306 #define WRPLR_RX0_PACKET_LENGTH         BITS(0,15)\r
307 \r
308 \r
309 //3 FWDLSR 0x0088\r
310 #define FWDLSR_FWDL_RDY                 BIT(8)\r
311 #define FWDLSR_FWDL_MODE                BIT(0)\r
312 \r
313 \r
314 //3 WMCSR 0x008c\r
315 #define WMCSR_CHIP_RST                  BIT(15) /* write */\r
316 #define WMCSR_DL_OK                     BIT(15) /* read */\r
317 #define WMCSR_DL_FAIL                   BIT(14)\r
318 #define WMCSR_PLLRDY                    BIT(13)\r
319 #define WMCSR_WF_ON                     BIT(12)\r
320 #define WMCSR_INI_RDY                   BIT(11)\r
321 #define WMCSR_WF_EN                     BIT(6)\r
322 #define WMCSR_SW_EN                     BIT(5)\r
323 #define WMCSR_SPLLEN                    BIT(4)\r
324 #define WMCSR_SPWREN                    BIT(3)\r
325 #define WMCSR_HSTOPIL                   BIT(2)\r
326 #define WMCSR_FWDLRST                   BIT(1)\r
327 #define WMCSR_FWDLEN                    BIT(0)\r
328 \r
329 \r
330 //3 FWCFG 0x0090\r
331 #define FWCFG_KSEL                      BITS(14,15)\r
332 #define FWCFG_FLEN                      BITS(0,13)\r
333 \r
334 \r
335 #endif /* _MT5931_REG_H */\r
336 \r