1 #ifndef _HALMAC_8821C_CFG_H_
2 #define _HALMAC_8821C_CFG_H_
3 
4 #include "halmac_8821c_pwr_seq.h"
5 #include "halmac_api_8821c.h"
6 #include "halmac_api_8821c_usb.h"
7 #include "halmac_api_8821c_pcie.h"
8 #include "halmac_api_8821c_sdio.h"
9 #include "../../halmac_bit2.h"
10 #include "../../halmac_reg2.h"
11 #include "../../halmac_api.h"
12 
13 #if HALMAC_PLATFORM_TESTPROGRAM
14 #include "halmisc_api_8821c.h"
15 #include "halmisc_api_8821c_usb.h"
16 #include "halmisc_api_8821c_sdio.h"
17 #include "halmisc_api_8821c_pcie.h"
18 #endif
19 
20 #define HALMAC_TX_FIFO_SIZE_8821C				65536 /* 64k */
21 #define HALMAC_TX_FIFO_SIZE_LA_8821C			32768 /* 32k */
22 #define HALMAC_RX_FIFO_SIZE_8821C				16384 /* 16k */
23 #define HALMAC_TX_PAGE_SIZE_8821C				128 /* PageSize 128Byte */
24 #define HALMAC_TX_PAGE_SIZE_2_POWER_8821C		7 /* 128 = 2^7 */
25 #define HALMAC_SECURITY_CAM_ENTRY_NUM_8821C		64 /* CAM Entry Size */
26 #define HALMAC_TX_DESC_SIZE_8821C				48
27 #define HALMAC_RX_DESC_SIZE_8821C				24
28 #define HALMAC_WOWLAN_PATTERN_SIZE_8821C		256
29 
30 #define HALMAC_EFUSE_SIZE_8821C					512 /* 0x2000 */
31 #define HALMAC_EEPROM_SIZE_8821C				0x200
32 #define HALMAC_BT_EFUSE_SIZE_8821C				128
33 
34 #define HALMAC_CR_TRX_ENABLE_8821C      (BIT_HCI_TXDMA_EN | BIT_HCI_RXDMA_EN | BIT_TXDMA_EN | \
35 					 BIT_RXDMA_EN | BIT_PROTOCOL_EN | BIT_SCHEDULE_EN | \
36 					 BIT_MACTXEN | BIT_MACRXEN)
37 
38 #define HALMAC_BLK_DESC_NUM_8821C   0x3 /* Only for USB */
39 
40 typedef enum _HALMAC_NORMAL_RXAGG_TH_TO_8821C {
41 	HALMAC_NORMAL_RXAGG_THRESHOLD_8821C = 0xFF,
42 	HALMAC_NORMAL_RXAGG_TIMEOUT_8821C = 0x01,
43 } HALMAC_NORMAL_RXAGG_TH_TO_8821C;
44 
45 typedef enum _HALMAC_LOOPBACK_RXAGG_TH_TO_8821C {
46 	HALMAC_LOOPBACK_RXAGG_THRESHOLD_8821C = 0xFF,
47 	HALMAC_LOOPBACK_RXAGG_TIMEOUT_8821C = 0x01,
48 } HALMAC_LOOPBACK_RXAGG_TH_TO_8821C;
49 
50 #define HALMAC_RSVD_DRV_PGNUM_8821C					16 /*2048*/
51 #define HALMAC_RSVD_H2C_EXTRAINFO_PGNUM_8821C		32 /*4096*/
52 #define HALMAC_RSVD_H2C_QUEUE_PGNUM_8821C			8 /*1024*/
53 #define HALMAC_RSVD_CPU_INSTRUCTION_PGNUM_8821C		0 /*0*/
54 #define HALMAC_RSVD_FW_TXBUFF_PGNUM_8821C			4 /*512*/
55 
56 /*
57  * Normal mode
58  */
59 #define HALMAC_NORMAL_HPQ_PGNUM_8821C           16 /*2048*/
60 #define HALMAC_NORMAL_NPQ_PGNUM_8821C           16 /*2048*/
61 #define HALMAC_NORMAL_LPQ_PGNUM_8821C           16 /*2048*/
62 #define HALMAC_NORMAL_EXPQ_PGNUM_8821C          14 /**/
63 #define HALMAC_NORMAL_GAP_PGNUM_8821C           1 /*128*/
64 
65 /*
66  * Loopback mode
67  */
68 #define HALMAC_LB_HPQ_PGNUM_8821C		16 /*2048*/
69 #define HALMAC_LB_NPQ_PGNUM_8821C       16 /*2048*/
70 #define HALMAC_LB_LPQ_PGNUM_8821C       16 /*2048*/
71 #define HALMAC_LB_EXPQ_PGNUM_8821C      14 /**/
72 #define HALMAC_LB_GAP_PGNUM_8821C       256 /**/
73 
74 /*
75  * Normal mode - 2Bulkout
76  */
77 #define HALMAC_NORMAL_2BULKOUT_HPQ_PGNUM_8821C       16 /*2048*/
78 #define HALMAC_NORMAL_2BULKOUT_NPQ_PGNUM_8821C       16 /*2048*/
79 #define HALMAC_NORMAL_2BULKOUT_LPQ_PGNUM_8821C       0 /*0*/
80 #define HALMAC_NORMAL_2BULKOUT_EXPQ_PGNUM_8821C      0 /*0*/
81 #define HALMAC_NORMAL_2BULKOUT_GAP_PGNUM_8821C       1 /*128*/
82 
83 /*
84  * Loopback mode - 2Bulkout
85  */
86 #define HALMAC_LB_2BULKOUT_HPQ_PGNUM_8821C		16 /*2048*/
87 #define HALMAC_LB_2BULKOUT_NPQ_PGNUM_8821C      16 /*2048*/
88 #define HALMAC_LB_2BULKOUT_LPQ_PGNUM_8821C      0 /*0*/
89 #define HALMAC_LB_2BULKOUT_EXPQ_PGNUM_8821C     0 /*0*/
90 #define HALMAC_LB_2BULKOUT_GAP_PGNUM_8821C      256 /**/
91 
92 /*
93  * Normal mode - 3BULKOUT
94  */
95 #define HALMAC_NORMAL_3BULKOUT_HPQ_PGNUM_8821C          16 /*2048*/
96 #define HALMAC_NORMAL_3BULKOUT_NPQ_PGNUM_8821C          16 /*2048*/
97 #define HALMAC_NORMAL_3BULKOUT_LPQ_PGNUM_8821C          16 /*2048*/
98 #define HALMAC_NORMAL_3BULKOUT_EXPQ_PGNUM_8821C         0 /*0*/
99 #define HALMAC_NORMAL_3BULKOUT_GAP_PGNUM_8821C          1 /*128*/
100 
101 /*
102  * Loopback mode - 3BULKOUT
103  */
104 #define HALMAC_LB_3BULKOUT_HPQ_PGNUM_8821C           16 /*2048*/
105 #define HALMAC_LB_3BULKOUT_NPQ_PGNUM_8821C           16 /*2048*/
106 #define HALMAC_LB_3BULKOUT_LPQ_PGNUM_8821C           16 /*2048*/
107 #define HALMAC_LB_3BULKOUT_EXPQ_PGNUM_8821C          0 /*0*/
108 #define HALMAC_LB_3BULKOUT_GAP_PGNUM_8821C           256 /**/
109 
110 /*
111  * WMM mode
112  */
113 #define HALMAC_WMM_HPQ_PGNUM_8821C			16 /*2048*/
114 #define HALMAC_WMM_NPQ_PGNUM_8821C			16 /*2048*/
115 #define HALMAC_WMM_LPQ_PGNUM_8821C			16 /*2048*/
116 #define HALMAC_WMM_EXPQ_PGNUM_8821C			14 /**/
117 #define HALMAC_WMM_GAP_PGNUM_8821C			1 /*128*/
118 
119 #endif
120