import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / connectivity / combo / drv_wlan / mt6620 / wlan / os / linux / hif / sdio / include / hif.h
CommitLineData
6fa3eb70
S
1/*
2** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/os/linux/hif/sdio/include/hif.h#1 $
3*/
4
5/*! \file "hif.h"
6 \brief Functions for the driver to register bus and setup the IRQ
7
8 Functions for the driver to register bus and setup the IRQ
9*/
10
11
12
13/*
14** $Log: hif.h $
15 *
16 * 11 01 2010 yarco.yang
17 * [WCXRP00000149] [MT6620 WI-Fi][Driver]Fine tune performance on MT6516 platform
18 * Add GPIO debug function
19 *
20 * 10 19 2010 jeffrey.chang
21 * [WCXRP00000120] [MT6620 Wi-Fi][Driver] Refine linux kernel module to the license of MTK propietary and enable MTK HIF by default
22 * Refine linux kernel module to the license of MTK and enable MTK HIF
23 *
24 * 08 18 2010 jeffrey.chang
25 * NULL
26 * support multi-function sdio
27 *
28 * 08 17 2010 cp.wu
29 * NULL
30 * add ENE SDIO host workaround for x86 linux platform.
31 *
32 * 07 08 2010 cp.wu
33 *
34 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
35 *
36 * 06 06 2010 kevin.huang
37 * [WPD00003832][MT6620 5931] Create driver base
38 * [MT6620 5931] Create driver base
39 *
40 * 03 24 2010 jeffrey.chang
41 * [WPD00003826]Initial import for Linux port
42 * initial import for Linux port
43** \main\maintrunk.MT5921\4 2009-10-20 17:38:28 GMT mtk01090
44** Refine driver unloading and clean up procedure. Block requests, stop main thread and clean up queued requests, and then stop hw.
45** \main\maintrunk.MT5921\3 2009-09-28 20:19:20 GMT mtk01090
46** Add private ioctl to carry OID structures. Restructure public/private ioctl interfaces to Linux kernel.
47** \main\maintrunk.MT5921\2 2009-08-18 22:57:05 GMT mtk01090
48** Add Linux SDIO (with mmc core) support.
49** Add Linux 2.6.21, 2.6.25, 2.6.26.
50** Fix compile warning in Linux.
51** \main\maintrunk.MT5921\2 2008-09-22 23:18:17 GMT mtk01461
52** Update driver for code review
53** Revision 1.1 2007/07/05 07:25:33 MTK01461
54** Add Linux initial code, modify doc, add 11BB, RF init code
55**
56** Revision 1.3 2007/06/27 02:18:51 MTK01461
57** Update SCAN_FSM, Initial(Can Load Module), Proc(Can do Reg R/W), TX API
58**
59*/
60
61#ifndef _HIF_H
62#define _HIF_H
63
64
65#if MTK_WCN_HIF_SDIO
66#include "hif_sdio.h"
67#endif
68
69/*******************************************************************************
70* C O M P I L E R F L A G S
71********************************************************************************
72*/
73
74
75/*******************************************************************************
76* E X T E R N A L R E F E R E N C E S
77********************************************************************************
78*/
79
80/*******************************************************************************
81* C O N S T A N T S
82********************************************************************************
83*/
84#define SDIO_X86_WORKAROUND_WRITE_MCR 0x00C4
85
86/*******************************************************************************
87* D A T A T Y P E S
88********************************************************************************
89*/
90
91/* host interface's private data structure, which is attached to os glue
92** layer info structure.
93 */
94typedef struct _GL_HIF_INFO_T {
95#if MTK_WCN_HIF_SDIO
96 MTK_WCN_HIF_SDIO_CLTCTX cltCtx;
97 const MTK_WCN_HIF_SDIO_FUNCINFO *prFuncInfo;
98#else
99 struct sdio_func *func;
100#endif
101 BOOLEAN fgIntReadClear;
102 BOOLEAN fgMbxReadClear;
103} GL_HIF_INFO_T, *P_GL_HIF_INFO_T;
104
105
106#if CFG_DBG_GPIO_PINS
107
108extern void mtk_wcn_stp_debug_gpio_assert(UINT_32 dwIndex, UINT_32 dwMethod);
109
110
111/* Platform DEPENDENT configurations: MT6516 GPIO pin name */
112#define GPIO_6516(x) (GPIO##x)
113#define GPIO_PLATFORM(x) GPIO_6516(x)
114
115/* Platform independent configurations */
116#define DBG_TIE_DIR 0x40000000UL
117#define DBG_LOW 0x0UL
118#define DBG_HIGH 0x1UL
119#define DBG_TIE_LOW (DBG_TIE_DIR | DBG_LOW)
120#define DBG_TIE_HIGH (DBG_TIE_DIR | DBG_HIGH)
121
122#define DBG_TOGGLE(x) (0x80000000UL | x)
123#define DBG_TOGGLE_NUM(x) (x & 0xFFF)
124#define GPIO_INVALID 0xFFFF
125
126typedef enum {
127 IDX_ERR = 0,
128 IDX_TX_THREAD,
129 IDX_TX_REQ,
130 IDX_TX_PORT_WRITE,
131 IDX_STP_MTX_BT,
132 IDX_STP_MTX_FM, /* 5 */
133 IDX_STP_MTX_GPS,
134 IDX_STP_MTX_WIFI,
135 IDX_STP_MTX_WMT,
136 IDX_LOOP_CNT,
137 IDX_NO_BUF, /*10 */
138 IDX_BT_TX,
139 IDX_BT_RX,
140 IDX_GPS_RX,
141 IDX_GPS_2,
142 IDX_GPS_3,
143 IDX_GPS_TX,
144 IDX_STP_MAX
145} DBG_PIN;
146
147#define DBG_MTX_OFFSET (IDX_STP_MTX_BT) /* index of mutex0 */
148#endif
149/*******************************************************************************
150* P U B L I C D A T A
151********************************************************************************
152*/
153
154/*******************************************************************************
155* P R I V A T E D A T A
156********************************************************************************
157*/
158
159/*******************************************************************************
160* M A C R O S
161********************************************************************************
162*/
163
164/*******************************************************************************
165* F U N C T I O N D E C L A R A T I O N S
166********************************************************************************
167*/
168
169WLAN_STATUS glRegisterBus(probe_card pfProbe, remove_card pfRemove);
170
171VOID glUnregisterBus(remove_card pfRemove);
172
173VOID glSetHifInfo(P_GLUE_INFO_T prGlueInfo, UINT_32 u4Cookie);
174
175VOID glClearHifInfo(P_GLUE_INFO_T prGlueInfo);
176
177BOOL glBusInit(PVOID pvData);
178
179VOID glBusRelease(PVOID pData);
180
181INT_32 glBusSetIrq(PVOID pvData, PVOID pfnIsr, PVOID pvCookie);
182
183VOID glBusFreeIrq(PVOID pvData, PVOID pvCookie);
184
185VOID glSetPowerState(IN P_GLUE_INFO_T prGlueInfo, IN UINT_32 ePowerMode);
186
187/*******************************************************************************
188* F U N C T I O N S
189********************************************************************************
190*/
191#endif /* _HIF_H */