support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / include / nic / mt6620_reg.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/nic/mt6620_reg.h#1 $
3 */
4
5 /*! \file   "mt6620_reg.h"
6     \brief  The common register definition of mt6620
7
8     N/A
9 */
10
11 /*******************************************************************************
12 * Copyright (c) 2007 MediaTek Inc.
13 *
14 * All rights reserved. Copying, compilation, modification, distribution
15 * or any other use whatsoever of this material is strictly prohibited
16 * except in accordance with a Software License Agreement with
17 * MediaTek Inc.
18 ********************************************************************************
19 */
20
21 /*******************************************************************************
22 * LEGAL DISCLAIMER
23 *
24 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
25 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
26 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
27 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
28 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
29 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
30 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
31 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
32 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
33 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
34 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
35 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
36 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
37 *
38 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
39 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
40 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
41 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
42 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
43 *
44 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
45 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
46 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
47 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
48 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
49 * (ICC).
50 ********************************************************************************
51 */
52
53 /*
54 ** $Log: mt6620_reg.h $
55  *
56  * 01 31 2011 terry.wu
57  * [WCXRP00000412] [MT6620 Wi-Fi][FW/Driver] Dump firmware assert info at android kernel log
58  * Print firmware ASSERT info at Android kernel log, driver side
59  *
60  * 07 08 2010 cp.wu
61  * 
62  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
63  *
64  * 06 06 2010 kevin.huang
65  * [WPD00003832][MT6620 5931] Create driver base 
66  * [MT6620 5931] Create driver base
67  *
68  * 03 19 2010 cp.wu
69  * [WPD00001943]Create WiFi test driver framework on WinXP 
70  * 1) add ACPI D0/D3 state switching support
71  *  *  *  * 2) use more formal way to handle interrupt when the status is retrieved from enhanced RX response
72 **  \main\maintrunk.MT6620WiFiDriver_Prj\15 2009-12-10 16:44:18 GMT mtk02752
73 **  remove 5921 definitions
74 **  \main\maintrunk.MT6620WiFiDriver_Prj\14 2009-11-09 22:56:32 GMT mtk01084
75 **  modify HW register definitions
76 **  \main\maintrunk.MT6620WiFiDriver_Prj\13 2009-11-04 14:11:04 GMT mtk01084
77 **  modify default IER bits
78 **  \main\maintrunk.MT6620WiFiDriver_Prj\12 2009-10-29 19:52:32 GMT mtk01084
79 **  modify data struture
80 **  \main\maintrunk.MT6620WiFiDriver_Prj\11 2009-10-23 16:08:20 GMT mtk01084
81 **  \main\maintrunk.MT6620WiFiDriver_Prj\10 2009-10-13 21:58:53 GMT mtk01084
82 **  update for new HW architecture design
83 **  \main\maintrunk.MT6620WiFiDriver_Prj\9 2009-09-09 17:26:11 GMT mtk01084
84 **  add CFG_TEST_WITH_MT5921
85 **  \main\maintrunk.MT6620WiFiDriver_Prj\8 2009-05-18 20:59:57 GMT mtk01426
86 **  Update WHIER_DEFAULT value
87 **  \main\maintrunk.MT6620WiFiDriver_Prj\7 2009-05-07 16:57:36 GMT mtk01426
88 **  Update CHIP ID to 0x6620, and WHLPCR bit definition
89 **  \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-04-28 10:34:57 GMT mtk01461
90 **  Add read WTSR and fix RX STATUS is DW align for SDIO_STATUS_ENHANCE mode
91 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-03-24 09:46:52 GMT mtk01084
92 **  fix LINT error
93 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-03-23 00:32:24 GMT mtk01461
94 **  Define constants for TX PATH
95 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-18 20:54:10 GMT mtk01426
96 **  Add WHCR_MAX_HIF_RX_AGG_LEN_OFFSET definition
97 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:16:29 GMT mtk01426
98 **  Init for develop
99 **
100 */
101
102 #ifndef _MT6620_REG_H
103 #define _MT6620_REG_H
104
105 /*******************************************************************************
106 *                         C O M P I L E R   F L A G S
107 ********************************************************************************
108 */
109
110 /*******************************************************************************
111 *                    E X T E R N A L   R E F E R E N C E S
112 ********************************************************************************
113 */
114
115 /*******************************************************************************
116 *                              C O N S T A N T S
117 ********************************************************************************
118 */
119
120 /*******************************************************************************
121 *                             D A T A   T Y P E S
122 ********************************************************************************
123 */
124
125
126 /*******************************************************************************
127 *                            P U B L I C   D A T A
128 ********************************************************************************
129 */
130
131 /*******************************************************************************
132 *                           P R I V A T E   D A T A
133 ********************************************************************************
134 */
135
136 /*******************************************************************************
137 *                                 M A C R O S
138 ********************************************************************************
139 */
140
141 /*******************************************************************************
142 *                   F U N C T I O N   D E C L A R A T I O N S
143 ********************************************************************************
144 */
145
146 /*******************************************************************************
147 *                              F U N C T I O N S
148 ********************************************************************************
149 */
150
151 //1 MT6620 MCR Definition
152
153 //2 Host Interface
154
155 //4 CHIP ID Register
156 #define MCR_WCIR                            0x0000
157
158 //4 HIF Low Power Control  Register
159 #define MCR_WHLPCR                          0x0004
160 //#define MCR_WHLPCR_BYTE1                    0x0005
161
162
163 //4 Control  Status Register
164 #define MCR_WSDIOCSR                        0x0008
165 #define MCR_WSPICSR                         0x0008
166
167 //4 HIF Control Register
168 #define MCR_WHCR                            0x000C
169
170 //4 HIF Interrupt Status  Register
171 #define MCR_WHISR                           0x0010
172
173 //4 HIF Interrupt Enable  Register
174 #define MCR_WHIER                           0x0014
175
176 //4 Abnormal Status Register
177 #define MCR_WASR                            0x0018
178
179 //4 WLAN Software Interrupt Control Register
180 #define MCR_WSICR                           0x001C
181
182 //4 WLAN TX Status Register
183 #define MCR_WTSR0                           0x0020
184
185 //4 WLAN TX Status Register
186 #define MCR_WTSR1                           0x0024
187
188 //4 WLAN TX Data Register 0
189 #define MCR_WTDR0                           0x0028
190
191 //4 WLAN TX Data Register 1
192 #define MCR_WTDR1                           0x002C
193
194 //4 WLAN RX Data Register 0
195 #define MCR_WRDR0                           0x0030
196
197 //4 WLAN RX Data Register 1
198 #define MCR_WRDR1                           0x0034
199
200 //4 Host to Device Send Mailbox 0 Register
201 #define MCR_H2DSM0R                         0x0038
202
203 //4 Host to Device Send Mailbox 1 Register
204 #define MCR_H2DSM1R                         0x003c
205
206 //4 Device to Host Receive Mailbox 0 Register
207 #define MCR_D2HRM0R                         0x0040
208
209 //4 Device to Host Receive Mailbox 1 Register
210 #define MCR_D2HRM1R                         0x0044
211
212 //4 WLAN RX Packet Length Register
213 #define MCR_WRPLR                           0x0048
214
215
216
217
218 //temp //#if CFG_SDIO_INTR_ENHANCE
219 typedef struct _ENHANCE_MODE_DATA_STRUCT_T {
220     UINT_32             u4WHISR;
221     union {
222         struct {
223             UINT_8              ucTQ0Cnt;
224             UINT_8              ucTQ1Cnt;
225             UINT_8              ucTQ2Cnt;
226             UINT_8              ucTQ3Cnt;
227             UINT_8              ucTQ4Cnt;
228             UINT_8              ucTQ5Cnt;
229             UINT_16             u2Rsrv;
230         } u;
231         UINT_32                 au4WTSR[2];
232     } rTxInfo;
233     union {
234         struct {
235             UINT_16             u2NumValidRx0Len;
236             UINT_16             u2NumValidRx1Len;
237             UINT_16             au2Rx0Len[16];
238             UINT_16             au2Rx1Len[16];
239         } u;
240         UINT_32                 au4RxStatusRaw[17];
241     } rRxInfo;
242     UINT_32                     u4RcvMailbox0;
243     UINT_32                     u4RcvMailbox1;
244 } ENHANCE_MODE_DATA_STRUCT_T, *P_ENHANCE_MODE_DATA_STRUCT_T;
245 // #endif /* ENHANCE_MODE_DATA_STRUCT_T */
246
247
248 //2 Definition in each register
249 //3 WCIR 0x0000
250 #define WCIR_WLAN_READY                  BIT(21)
251 #define WCIR_POR_INDICATOR               BIT(20)
252 #define WCIR_REVISION_ID                 BITS(16,19)
253 #define WCIR_CHIP_ID                     BITS(0,15)
254
255 #define MTK_CHIP_REV                     0x00006620
256 #define MTK_CHIP_MP_REVERSION_ID         0x0
257
258 //3 WHLPCR 0x0004
259 #define WHLPCR_FW_OWN_REQ_CLR            BIT(9)
260 #define WHLPCR_FW_OWN_REQ_SET            BIT(8)
261 #define WHLPCR_IS_DRIVER_OWN             BIT(8)
262 #define WHLPCR_INT_EN_CLR                BIT(1)
263 #define WHLPCR_INT_EN_SET                BIT(0)
264
265 //3 WSDIOCSR 0x0008
266 #define WSDIOCSR_SDIO_RE_INIT_EN         BIT(0)
267
268 //3 WSPICSR 0x0008
269 #define WCSR_SPI_MODE_SEL                BITS(3,4)
270 #define WCSR_SPI_ENDIAN_BIG              BIT(2)
271 #define WCSR_SPI_INT_OUT_MODE            BIT(1)
272 #define WCSR_SPI_DATA_OUT_MODE           BIT(0)
273
274 //3 WHCR 0x000C
275 #define WHCR_RX_ENHANCE_MODE_EN         BIT(16)
276 #define WHCR_MAX_HIF_RX_LEN_NUM         BITS(4,7)
277 #define WHCR_W_MAILBOX_RD_CLR_EN        BIT(2)
278 #define WHCR_W_INT_CLR_CTRL             BIT(1)
279 #define WHCR_MCU_DBG_EN                 BIT(0)
280 #define WHCR_OFFSET_MAX_HIF_RX_LEN_NUM  4
281
282 //3 WHISR 0x0010
283 #define WHISR_D2H_SW_INT                BITS(8,31)
284 #define WHISR_D2H_SW_ASSERT_INFO_INT    BIT(31)
285 #define WHISR_FW_INT_INDICATOR          BIT(7)
286 #define WHISR_FW_OWN_BACK_INT           BIT(4)
287 #define WHISR_ABNORMAL_INT              BIT(3)
288 #define WHISR_RX1_DONE_INT              BIT(2)
289 #define WHISR_RX0_DONE_INT              BIT(1)
290 #define WHISR_TX_DONE_INT               BIT(0)
291
292
293 //3 WHIER 0x0014
294 #define WHIER_D2H_SW_INT                BITS(8,31)
295 #define WHIER_FW_INT_INDICATOR_EN       BIT(7)
296 #define WHIER_FW_OWN_BACK_INT_EN        BIT(4)
297 #define WHIER_ABNORMAL_INT_EN           BIT(3)
298 #define WHIER_RX1_DONE_INT_EN           BIT(2)
299 #define WHIER_RX0_DONE_INT_EN           BIT(1)
300 #define WHIER_TX_DONE_INT_EN            BIT(0)
301 #define WHIER_DEFAULT                   (WHIER_RX0_DONE_INT_EN    | \
302                                          WHIER_RX1_DONE_INT_EN    | \
303                                          WHIER_TX_DONE_INT_EN     | \
304                                          WHIER_ABNORMAL_INT_EN    | \
305                                          WHIER_D2H_SW_INT           \
306                                          )
307
308
309 //3 WASR 0x0018
310 #define WASR_FW_OWN_INVALID_ACCESS      BIT(4)
311 #define WASR_RX1_UNDER_FLOW             BIT(3)
312 #define WASR_RX0_UNDER_FLOW             BIT(2)
313 #define WASR_TX1_OVER_FLOW              BIT(1)
314 #define WASR_TX0_OVER_FLOW              BIT(0)
315
316
317 //3 WSICR 0x001C
318 #define WSICR_H2D_SW_INT_SET            BITS(16,31)
319
320
321 //3 WTSR0 0x0044
322 #define WRPLR_RX1_PACKET_LENGTH         BITS(16,31)
323 #define WRPLR_RX0_PACKET_LENGTH         BITS(0,15)
324
325 #endif /* _MT6620_REG_H */
326