support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / os / linux / hif / ehpi / include / hif.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/os/linux/hif/ehpi/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 * 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: hif.h $
55  *
56  * 04 01 2011 cp.wu
57  * [WCXRP00000540] [MT5931][Driver] Add eHPI8/eHPI16 support to Linux Glue Layer
58  * 1. simplify config.h due to aggregation options could be also applied for eHPI/SPI interface
59  * 2. use spin-lock instead of semaphore for protecting eHPI access because of possible access from ISR
60  * 3. request_irq() API has some changes between linux kernel 2.6.12 and 2.6.26
61  *
62  * 03 11 2011 cp.wu
63  * [WCXRP00000540] [MT5931][Driver] Add eHPI8/eHPI16 support to Linux Glue Layer
64  * add porting layer for eHPI.
65  *
66 */
67
68 #ifndef _HIF_H
69 #define _HIF_H
70
71 /*******************************************************************************
72 *                         C O M P I L E R   F L A G S
73 ********************************************************************************
74 */
75
76
77 /*******************************************************************************
78 *                    E X T E R N A L   R E F E R E N C E S
79 ********************************************************************************
80 */
81
82 /*******************************************************************************
83 *                              C O N S T A N T S
84 ********************************************************************************
85 */
86
87 /*******************************************************************************
88 *                             D A T A   T Y P E S
89 ********************************************************************************
90 */
91
92 /* host interface's private data structure, which is attached to os glue
93 ** layer info structure.
94  */
95 typedef struct _GL_HIF_INFO_T {
96     void __iomem            *mcr_addr_base;
97     void __iomem            *mcr_data_base;
98     BOOLEAN                 fgIntReadClear;
99     BOOLEAN                 fgMbxReadClear;
100 } GL_HIF_INFO_T, *P_GL_HIF_INFO_T;
101
102 /*******************************************************************************
103 *                            P U B L I C   D A T A
104 ********************************************************************************
105 */
106
107 /*******************************************************************************
108 *                           P R I V A T E   D A T A
109 ********************************************************************************
110 */
111
112 /*******************************************************************************
113 *                                 M A C R O S
114 ********************************************************************************
115 */
116
117 /*******************************************************************************
118 *                   F U N C T I O N   D E C L A R A T I O N S
119 ********************************************************************************
120 */
121
122 WLAN_STATUS
123 glRegisterBus(
124     probe_card pfProbe,
125     remove_card pfRemove
126     );
127
128 VOID
129 glUnregisterBus(
130     remove_card pfRemove
131     );
132
133 VOID
134 glSetHifInfo (
135     P_GLUE_INFO_T prGlueInfo,
136     UINT_32 u4Cookie
137     );
138
139 VOID
140 glClearHifInfo (
141     P_GLUE_INFO_T prGlueInfo
142     );
143
144 BOOL
145 glBusInit (
146     PVOID pvData
147     );
148
149 VOID
150 glBusRelease (
151     PVOID pData
152     );
153
154 INT_32
155 glBusSetIrq (
156     PVOID pvData,
157     PVOID pfnIsr,
158     PVOID pvCookie
159     );
160
161 VOID
162 glBusFreeIrq (
163     PVOID pvData,
164     PVOID pvCookie
165     );
166
167 VOID
168 glSetPowerState (
169     IN P_GLUE_INFO_T  prGlueInfo,
170     IN UINT_32 ePowerMode
171     );
172
173 /*******************************************************************************
174 *                              F U N C T I O N S
175 ********************************************************************************
176 */
177 #endif /* _HIF_H */