GNU Linux-libre 4.14.290-gnu1
[releases.git] / drivers / staging / rtlwifi / halmac / halmac_88xx / halmac_88xx_cfg.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2016  Realtek Corporation.
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  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  *
22  * Larry Finger <Larry.Finger@lwfinger.net>
23  *
24  *****************************************************************************/
25 #ifndef _HALMAC_88XX_CFG_H_
26 #define _HALMAC_88XX_CFG_H_
27
28 #include "../halmac_2_platform.h"
29 #include "../halmac_type.h"
30 #include "../halmac_api.h"
31 #include "../halmac_bit2.h"
32 #include "../halmac_reg2.h"
33 #include "../halmac_pwr_seq_cmd.h"
34 #include "halmac_func_88xx.h"
35 #include "halmac_api_88xx.h"
36 #include "halmac_api_88xx_usb.h"
37 #include "halmac_api_88xx_pcie.h"
38 #include "halmac_api_88xx_sdio.h"
39
40 #define HALMAC_SVN_VER_88XX "13359M"
41
42 #define HALMAC_MAJOR_VER_88XX 0x0001 /* major version, ver_1 for async_api */
43 /* For halmac_api num change or prototype change, increment prototype version.
44  * Otherwise, increase minor version
45  */
46 #define HALMAC_PROTOTYPE_VER_88XX 0x0003 /* prototype version */
47 #define HALMAC_MINOR_VER_88XX 0x0005 /* minor version */
48 #define HALMAC_PATCH_VER_88XX 0x0000 /* patch version */
49
50 #define HALMAC_C2H_DATA_OFFSET_88XX 10
51 #define HALMAC_RX_AGG_ALIGNMENT_SIZE_88XX 8
52 #define HALMAC_TX_AGG_ALIGNMENT_SIZE_88XX 8
53 #define HALMAC_TX_AGG_BUFF_SIZE_88XX 32768
54
55 #define HALMAC_EXTRA_INFO_BUFF_SIZE_88XX 4096 /*4K*/
56 #define HALMAC_EXTRA_INFO_BUFF_SIZE_FULL_FIFO_88XX 16384 /*16K*/
57 #define HALMAC_FW_OFFLOAD_CMD_SIZE_88XX                                        \
58         12 /*Fw config parameter cmd size, each 12 byte*/
59
60 #define HALMAC_H2C_CMD_ORIGINAL_SIZE_88XX 8
61 #define HALMAC_H2C_CMD_SIZE_UNIT_88XX 32 /* Only support 32 byte packet now */
62
63 #define HALMAC_NLO_INFO_SIZE_88XX 1024
64
65 /* Download FW */
66 #define HALMAC_FW_SIZE_MAX_88XX 0x40000
67 #define HALMAC_FWHDR_SIZE_88XX 64
68 #define HALMAC_FW_CHKSUM_DUMMY_SIZE_88XX 8
69 #define HALMAC_FW_MAX_DL_SIZE_88XX 0x2000 /* need power of 2 */
70 /* Max dlfw size can not over 31K, because SDIO HW restriction */
71 #define HALMAC_FW_CFG_MAX_DL_SIZE_MAX_88XX 0x7C00
72
73 #define DLFW_RESTORE_REG_NUM_88XX 9
74 #define ID_INFORM_DLEMEM_RDY 0x80
75
76 /* FW header information */
77 #define HALMAC_FWHDR_OFFSET_VERSION_88XX 4
78 #define HALMAC_FWHDR_OFFSET_SUBVERSION_88XX 6
79 #define HALMAC_FWHDR_OFFSET_SUBINDEX_88XX 7
80 #define HALMAC_FWHDR_OFFSET_MEM_USAGE_88XX 24
81 #define HALMAC_FWHDR_OFFSET_H2C_FORMAT_VER_88XX 28
82 #define HALMAC_FWHDR_OFFSET_DMEM_ADDR_88XX 32
83 #define HALMAC_FWHDR_OFFSET_DMEM_SIZE_88XX 36
84 #define HALMAC_FWHDR_OFFSET_IRAM_SIZE_88XX 48
85 #define HALMAC_FWHDR_OFFSET_ERAM_SIZE_88XX 52
86 #define HALMAC_FWHDR_OFFSET_EMEM_ADDR_88XX 56
87 #define HALMAC_FWHDR_OFFSET_IRAM_ADDR_88XX 60
88
89 /* HW memory address */
90 #define HALMAC_OCPBASE_TXBUF_88XX 0x18780000
91 #define HALMAC_OCPBASE_DMEM_88XX 0x00200000
92 #define HALMAC_OCPBASE_IMEM_88XX 0x00000000
93
94 /* define the SDIO Bus CLK threshold, for avoiding CMD53 fails that
95  * result from SDIO CLK sync to ana_clk fail
96  */
97 #define HALMAC_SD_CLK_THRESHOLD_88XX 150000000 /* 150MHz */
98
99 /* MAC clock */
100 #define HALMAC_MAC_CLOCK_88XX 80 /* 80M */
101
102 /* H2C/C2H*/
103 #define HALMAC_H2C_CMD_SIZE_88XX 32
104 #define HALMAC_H2C_CMD_HDR_SIZE_88XX 8
105
106 #define HALMAC_PROTECTED_EFUSE_SIZE_88XX 0x60
107
108 /* Function enable */
109 #define HALMAC_FUNCTION_ENABLE_88XX 0xDC
110
111 /* FIFO size & packet size */
112 /* #define HALMAC_WOWLAN_PATTERN_SIZE   256 */
113
114 /* CFEND rate */
115 #define HALMAC_BASIC_CFEND_RATE_88XX 0x5
116 #define HALMAC_STBC_CFEND_RATE_88XX 0xF
117
118 /* Response rate */
119 #define HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX 0xFFFFF
120 #define HALMAC_RESPONSE_RATE_88XX HALMAC_RESPONSE_RATE_BITMAP_ALL_88XX
121
122 /* Spec SIFS */
123 #define HALMAC_SIFS_CCK_PTCL_88XX 16
124 #define HALMAC_SIFS_OFDM_PTCL_88XX 16
125
126 /* Retry limit */
127 #define HALMAC_LONG_RETRY_LIMIT_88XX 8
128 #define HALMAC_SHORT_RETRY_LIMIT_88XX 7
129
130 /* Slot, SIFS, PIFS time */
131 #define HALMAC_SLOT_TIME_88XX 0x05
132 #define HALMAC_PIFS_TIME_88XX 0x19
133 #define HALMAC_SIFS_CCK_CTX_88XX 0xA
134 #define HALMAC_SIFS_OFDM_CTX_88XX 0xA
135 #define HALMAC_SIFS_CCK_TRX_88XX 0x10
136 #define HALMAC_SIFS_OFDM_TRX_88XX 0x10
137
138 /* TXOP limit */
139 #define HALMAC_VO_TXOP_LIMIT_88XX 0x186
140 #define HALMAC_VI_TXOP_LIMIT_88XX 0x3BC
141
142 /* NAV */
143 #define HALMAC_RDG_NAV_88XX 0x05
144 #define HALMAC_TXOP_NAV_88XX 0x1B
145
146 /* TSF */
147 #define HALMAC_CCK_RX_TSF_88XX 0x30
148 #define HALMAC_OFDM_RX_TSF_88XX 0x30
149
150 /* Send beacon related */
151 #define HALMAC_TBTT_PROHIBIT_88XX 0x04
152 #define HALMAC_TBTT_HOLD_TIME_88XX 0x064
153 #define HALMAC_DRIVER_EARLY_INT_88XX 0x04
154 #define HALMAC_BEACON_DMA_TIM_88XX 0x02
155
156 /* RX filter */
157 #define HALMAC_RX_FILTER0_RECIVE_ALL_88XX 0xFFFFFFF
158 #define HALMAC_RX_FILTER0_88XX HALMAC_RX_FILTER0_RECIVE_ALL_88XX
159 #define HALMAC_RX_FILTER_RECIVE_ALL_88XX 0xFFFF
160 #define HALMAC_RX_FILTER_88XX HALMAC_RX_FILTER_RECIVE_ALL_88XX
161
162 /* RCR */
163 #define HALMAC_RCR_CONFIG_88XX 0xE400631E
164
165 /* Security config */
166 #define HALMAC_SECURITY_CONFIG_88XX 0x01CC
167
168 /* CCK rate ACK timeout */
169 #define HALMAC_ACK_TO_CCK_88XX 0x40
170
171 #endif