0b8cf46f3baa3bb03c886dcd6d1d0fd0ddd38698
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / include / nic / mt5931_reg.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/nic/mt5931_reg.h#1 $
3 */
4
5 /*! \file   "mt5931_reg.h"
6     \brief  The common register definition of mt5931
7
8     N/A
9 */
10
11 /*******************************************************************************
12 * Copyright (c) 2010 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: mt5931_reg.h $
55  *
56  * 02 25 2011 cp.wu
57  * [WCXRP00000496] [MT5931][Driver] Apply host-triggered chip reset before initializing firmware download procedures
58  * apply host-triggered chip reset mechanism before initializing firmware download procedures.
59  *
60  * 02 18 2011 terry.wu
61  * [WCXRP00000412] [MT6620 Wi-Fi][FW/Driver] Dump firmware assert info at android kernel log
62  * Add WHISR_D2H_SW_ASSERT_INFO_INT to MT5931_reg.
63  *
64  * 10 07 2010 cp.wu
65  * [WCXRP00000083] [MT5931][Driver][FW] Add necessary logic for MT5931 first connection
66  * add firmware download for MT5931.
67  *
68 */
69
70 #ifndef _MT5931_REG_H
71 #define _MT5931_REG_H
72
73 /*******************************************************************************
74 *                         C O M P I L E R   F L A G S
75 ********************************************************************************
76 */
77
78 /*******************************************************************************
79 *                    E X T E R N A L   R E F E R E N C E S
80 ********************************************************************************
81 */
82
83 /*******************************************************************************
84 *                              C O N S T A N T S
85 ********************************************************************************
86 */
87
88 /*******************************************************************************
89 *                             D A T A   T Y P E S
90 ********************************************************************************
91 */
92
93
94 /*******************************************************************************
95 *                            P U B L I C   D A T A
96 ********************************************************************************
97 */
98
99 /*******************************************************************************
100 *                           P R I V A T E   D A T A
101 ********************************************************************************
102 */
103
104 /*******************************************************************************
105 *                                 M A C R O S
106 ********************************************************************************
107 */
108
109 /*******************************************************************************
110 *                   F U N C T I O N   D E C L A R A T I O N S
111 ********************************************************************************
112 */
113
114 /*******************************************************************************
115 *                              F U N C T I O N S
116 ********************************************************************************
117 */
118
119 //1 MT5931 MCR Definition
120
121 //2 Host Interface
122
123 //4 CHIP ID Register
124 #define MCR_WCIR                            0x0000
125
126 //4 HIF Low Power Control  Register
127 #define MCR_WHLPCR                          0x0004
128
129 //4 Control  Status Register
130 #define MCR_WSDIOCSR                        0x0008
131 #define MCR_WSPICSR                         0x0008
132
133 //4 HIF Control Register
134 #define MCR_WHCR                            0x000C
135
136 //4 HIF Interrupt Status  Register
137 #define MCR_WHISR                           0x0010
138
139 //4 HIF Interrupt Enable  Register
140 #define MCR_WHIER                           0x0014
141
142 //4 Abnormal Status Register
143 #define MCR_WASR                            0x0018
144
145 //4 WLAN Software Interrupt Control Register
146 #define MCR_WSICR                           0x001C
147
148 //4 WLAN TX Status Register
149 #define MCR_WTSR0                           0x0020
150
151 //4 WLAN TX Status Register
152 #define MCR_WTSR1                           0x0024
153
154 //4 WLAN TX Data Register 0
155 #define MCR_WTDR0                           0x0028
156
157 //4 WLAN TX Data Register 1
158 #define MCR_WTDR1                           0x002C
159
160 //4 WLAN RX Data Register 0
161 #define MCR_WRDR0                           0x0030
162
163 //4 WLAN RX Data Register 1
164 #define MCR_WRDR1                           0x0034
165
166 //4 Host to Device Send Mailbox 0 Register
167 #define MCR_H2DSM0R                         0x0038
168
169 //4 Host to Device Send Mailbox 1 Register
170 #define MCR_H2DSM1R                         0x003c
171
172 //4 Device to Host Receive Mailbox 0 Register
173 #define MCR_D2HRM0R                         0x0040
174
175 //4 Device to Host Receive Mailbox 1 Register
176 #define MCR_D2HRM1R                         0x0044
177
178 //4 Device to Host Receive Mailbox 2 Register
179 #define MCR_D2HRM2R                         0x0048
180
181 //4 WLAN RX Packet Length Register
182 #define MCR_WRPLR                           0x0050
183
184 //4 EHPI Transaction Count Register
185 #define MCR_EHTCR                           0x0054
186
187 //4 Firmware Download Data Register
188 #define MCR_FWDLDR                          0x0080
189
190 //4 Firmware Download Destination Starting Address Register
191 #define MCR_FWDLDSAR                        0x0084
192
193 //4 Firmware Download Status Register
194 #define MCR_FWDLSR                          0x0088
195
196 //4 WLAN MCU Control & Status Register
197 #define MCR_WMCSR                           0x008c
198
199 //4 WLAN Firmware Download Configuration
200 #define MCR_FWCFG                           0x0090
201
202
203 //#if CFG_SDIO_INTR_ENHANCE
204 typedef struct _ENHANCE_MODE_DATA_STRUCT_T {
205     UINT_32             u4WHISR;
206     union {
207         struct {
208             UINT_8              ucTQ0Cnt;
209             UINT_8              ucTQ1Cnt;
210             UINT_8              ucTQ2Cnt;
211             UINT_8              ucTQ3Cnt;
212             UINT_8              ucTQ4Cnt;
213             UINT_8              ucTQ5Cnt;
214             UINT_16             u2Rsrv;
215         } u;
216         UINT_32                 au4WTSR[2];
217     } rTxInfo;
218     union {
219         struct {
220             UINT_16             u2NumValidRx0Len;
221             UINT_16             u2NumValidRx1Len;
222             UINT_16             au2Rx0Len[16];
223             UINT_16             au2Rx1Len[16];
224         } u;
225         UINT_32                 au4RxStatusRaw[17];
226     } rRxInfo;
227     UINT_32                     u4RcvMailbox0;
228     UINT_32                     u4RcvMailbox1;
229 } ENHANCE_MODE_DATA_STRUCT_T, *P_ENHANCE_MODE_DATA_STRUCT_T;
230 // #endif /* ENHANCE_MODE_DATA_STRUCT_T */
231
232
233 //2 Definition in each register
234 //3 WCIR 0x0000
235 #define WCIR_WLAN_READY                  BIT(21)
236 #define WCIR_POR_INDICATOR               BIT(20)
237 #define WCIR_REVISION_ID                 BITS(16,19)
238 #define WCIR_CHIP_ID                     BITS(0,15)
239
240 #define MTK_CHIP_REV                     0x00005931
241 #define MTK_CHIP_MP_REVERSION_ID         0x0
242
243 //3 WHLPCR 0x0004
244 #define WHLPCR_FW_OWN_REQ_CLR            BIT(9)
245 #define WHLPCR_FW_OWN_REQ_SET            BIT(8)
246 #define WHLPCR_IS_DRIVER_OWN             BIT(8)
247 #define WHLPCR_INT_EN_CLR                BIT(1)
248 #define WHLPCR_INT_EN_SET                BIT(0)
249
250 //3 WSDIOCSR 0x0008
251 #define WSDIOCSR_SDIO_RE_INIT_EN         BIT(0)
252
253 //3 WSPICSR 0x0008
254 #define WCSR_SPI_MODE_SEL                BITS(3,4)
255 #define WCSR_SPI_ENDIAN_BIG              BIT(2)
256 #define WCSR_SPI_INT_OUT_MODE            BIT(1)
257 #define WCSR_SPI_DATA_OUT_MODE           BIT(0)
258
259 //3 WHCR 0x000C
260 #define WHCR_RX_ENHANCE_MODE_EN         BIT(16)
261 #define WHCR_MAX_HIF_RX_LEN_NUM         BITS(4,7)
262 #define WHCR_W_MAILBOX_RD_CLR_EN        BIT(2)
263 #define WHCR_W_INT_CLR_CTRL             BIT(1)
264 #define WHCR_MCU_DBG_EN                 BIT(0)
265 #define WHCR_OFFSET_MAX_HIF_RX_LEN_NUM  4
266
267 //3 WHISR 0x0010
268 #define WHISR_D2H_SW_INT                BITS(8,31)
269 #define WHISR_D2H_SW_ASSERT_INFO_INT    BIT(31)
270 #define WHISR_FW_OWN_BACK_INT           BIT(4)
271 #define WHISR_ABNORMAL_INT              BIT(3)
272 #define WHISR_RX1_DONE_INT              BIT(2)
273 #define WHISR_RX0_DONE_INT              BIT(1)
274 #define WHISR_TX_DONE_INT               BIT(0)
275
276
277 //3 WHIER 0x0014
278 #define WHIER_D2H_SW_INT                BITS(8,31)
279 #define WHIER_FW_OWN_BACK_INT_EN        BIT(4)
280 #define WHIER_ABNORMAL_INT_EN           BIT(3)
281 #define WHIER_RX1_DONE_INT_EN           BIT(2)
282 #define WHIER_RX0_DONE_INT_EN           BIT(1)
283 #define WHIER_TX_DONE_INT_EN            BIT(0)
284 #define WHIER_DEFAULT                   (WHIER_RX0_DONE_INT_EN    | \
285                                          WHIER_RX1_DONE_INT_EN    | \
286                                          WHIER_TX_DONE_INT_EN     | \
287                                          WHIER_ABNORMAL_INT_EN    | \
288                                          WHIER_D2H_SW_INT           \
289                                          )
290
291
292 //3 WASR 0x0018
293 #define WASR_FW_OWN_INVALID_ACCESS      BIT(4)
294 #define WASR_RX1_UNDER_FLOW             BIT(3)
295 #define WASR_RX0_UNDER_FLOW             BIT(2)
296 #define WASR_TX1_OVER_FLOW              BIT(1)
297 #define WASR_TX0_OVER_FLOW              BIT(0)
298
299
300 //3 WSICR 0x001C
301 #define WSICR_H2D_SW_INT_SET            BITS(16,31)
302
303
304 //3 WRPLR 0x0050
305 #define WRPLR_RX1_PACKET_LENGTH         BITS(16,31)
306 #define WRPLR_RX0_PACKET_LENGTH         BITS(0,15)
307
308
309 //3 FWDLSR 0x0088
310 #define FWDLSR_FWDL_RDY                 BIT(8)
311 #define FWDLSR_FWDL_MODE                BIT(0)
312
313
314 //3 WMCSR 0x008c
315 #define WMCSR_CHIP_RST                  BIT(15) /* write */
316 #define WMCSR_DL_OK                     BIT(15) /* read */
317 #define WMCSR_DL_FAIL                   BIT(14)
318 #define WMCSR_PLLRDY                    BIT(13)
319 #define WMCSR_WF_ON                     BIT(12)
320 #define WMCSR_INI_RDY                   BIT(11)
321 #define WMCSR_WF_EN                     BIT(6)
322 #define WMCSR_SW_EN                     BIT(5)
323 #define WMCSR_SPLLEN                    BIT(4)
324 #define WMCSR_SPWREN                    BIT(3)
325 #define WMCSR_HSTOPIL                   BIT(2)
326 #define WMCSR_FWDLRST                   BIT(1)
327 #define WMCSR_FWDLEN                    BIT(0)
328
329
330 //3 FWCFG 0x0090
331 #define FWCFG_KSEL                      BITS(14,15)
332 #define FWCFG_FLEN                      BITS(0,13)
333
334
335 #endif /* _MT5931_REG_H */
336