2 \brief Declaration of library functions
4 Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
12 #include <mach/mtk_wcn_cmb_stub.h>
14 //not to reference to internal wmt
15 //#include "wmt_core.h"
16 /*******************************************************************************
17 * C O M P I L E R F L A G S
18 ********************************************************************************
21 /*******************************************************************************
23 ********************************************************************************
25 #if 1 /* moved from wmt_lib.h */
27 #define DFT_TAG "[WMT-DFT]"
30 #define WMT_LOUD_FUNC(fmt, arg...) if (gWmtDbgLvl >= WMT_LOG_LOUD) { osal_dbg_print(DFT_TAG "[L]%s:" fmt, __FUNCTION__ ,##arg);}
31 #define WMT_INFO_FUNC(fmt, arg...) if (gWmtDbgLvl >= WMT_LOG_INFO) { osal_info_print(DFT_TAG "[I]%s:" fmt, __FUNCTION__ ,##arg);}
32 #define WMT_WARN_FUNC(fmt, arg...) if (gWmtDbgLvl >= WMT_LOG_WARN) { osal_warn_print(DFT_TAG "[W]%s:" fmt, __FUNCTION__ ,##arg);}
33 #define WMT_ERR_FUNC(fmt, arg...) if (gWmtDbgLvl >= WMT_LOG_ERR) { osal_err_print(DFT_TAG "[E]%s(%d):" fmt, __FUNCTION__ , __LINE__, ##arg);}
34 #define WMT_DBG_FUNC(fmt, arg...) if (gWmtDbgLvl >= WMT_LOG_DBG) { osal_dbg_print(DFT_TAG "[D]%s:" fmt, __FUNCTION__ ,##arg);}
35 #define WMT_TRC_FUNC(f) if (gWmtDbgLvl >= WMT_LOG_DBG) { osal_dbg_print(DFT_TAG "<%s> <%d>\n", __FUNCTION__, __LINE__);}
38 /*******************************************************************************
39 * E X T E R N A L R E F E R E N C E S
40 ********************************************************************************
42 #if 1 /* moved from wmt_lib.h */
43 extern UINT32 gWmtDbgLvl ;
46 /*******************************************************************************
48 ********************************************************************************
50 #if 1 /* moved from wmt_lib.h */
51 #define WMT_LOG_LOUD 4
53 #define WMT_LOG_INFO 2
54 #define WMT_LOG_WARN 1
58 #define CFG_WMT_PS_SUPPORT 1 /* moved from wmt_lib.h */
59 /*******************************************************************************
61 ********************************************************************************
63 typedef enum _ENUM_WMTDRV_TYPE_T {
70 WMTDRV_TYPE_SDIO1 = 6,
71 WMTDRV_TYPE_SDIO2 = 7,
73 WMTDRV_TYPE_COREDUMP = 9,
75 } ENUM_WMTDRV_TYPE_T, *P_ENUM_WMTDRV_TYPE_T;
77 // TODO: [ChangeFeature][GeorgeKuo] Reconsider usage of this type
78 // TODO: how do we extend for new chip and newer revision?
79 // TODO: This way is hard to extend
80 typedef enum _ENUM_WMTHWVER_TYPE_T{
81 WMTHWVER_MT6620_E1 = 0x0,
82 WMTHWVER_MT6620_E2 = 0x1,
83 WMTHWVER_MT6620_E3 = 0x2,
84 WMTHWVER_MT6620_E4 = 0x3,
85 WMTHWVER_MT6620_E5 = 0x4,
86 WMTHWVER_MT6620_E6 = 0x5,
87 WMTHWVER_MT6620_E7 = 0x6,
89 WMTHWVER_INVALID = 0xff
90 } ENUM_WMTHWVER_TYPE_T, *P_ENUM_WMTHWVER_TYPE_T;
92 typedef enum _ENUM_WMTCHIN_TYPE_T{
94 WMTCHIN_HWVER = WMTCHIN_CHIPID + 1,
95 WMTCHIN_MAPPINGHWVER = WMTCHIN_HWVER + 1,
96 WMTCHIN_FWVER = WMTCHIN_MAPPINGHWVER + 1,
99 }ENUM_WMT_CHIPINFO_TYPE_T, *P_ENUM_WMT_CHIPINFO_TYPE_T;
101 typedef enum _ENUM_WMTDSNS_TYPE_T{
102 WMTDSNS_FM_DISABLE = 0,
103 WMTDSNS_FM_ENABLE = 1,
104 WMTDSNS_FM_GPS_DISABLE = 2,
105 WMTDSNS_FM_GPS_ENABLE = 3,
107 } ENUM_WMTDSNS_TYPE_T, *P_ENUM_WMTDSNS_TYPE_T;
109 typedef enum _ENUM_WMTTHERM_TYPE_T{
111 WMTTHERM_ENABLE = WMTTHERM_ZERO + 1,
112 WMTTHERM_READ = WMTTHERM_ENABLE + 1,
113 WMTTHERM_DISABLE = WMTTHERM_READ + 1,
115 }ENUM_WMTTHERM_TYPE_T, *P_ENUM_WMTTHERM_TYPE_T;
117 typedef enum _ENUM_WMTMSG_TYPE_T {
118 WMTMSG_TYPE_POWER_ON = 0,
119 WMTMSG_TYPE_POWER_OFF = 1,
120 WMTMSG_TYPE_RESET = 2,
121 WMTMSG_TYPE_STP_RDY= 3,
122 WMTMSG_TYPE_HW_FUNC_ON= 4,
124 } ENUM_WMTMSG_TYPE_T, *P_ENUM_WMTMSG_TYPE_T;
126 typedef enum _ENUM_WMTRSTMSG_TYPE_T{
127 WMTRSTMSG_RESET_START = 0x0,
128 WMTRSTMSG_RESET_END = 0x1,
130 WMTRSTMSG_RESET_INVALID = 0xff
131 } ENUM_WMTRSTMSG_TYPE_T, *P_ENUM_WMTRSTMSG_TYPE_T;
133 typedef void (*PF_WMT_CB)(
134 ENUM_WMTDRV_TYPE_T, /* Source driver type */
135 ENUM_WMTDRV_TYPE_T, /* Destination driver type */
136 ENUM_WMTMSG_TYPE_T, /* Message type */
137 VOID *, /* READ-ONLY buffer. Buffer is allocated and freed by WMT_drv. Client
138 can't touch this buffer after this function return. */
139 UINT32 /* Buffer size in unit of byte */
142 typedef enum _SDIO_PS_OP{
149 typedef INT32 (*PF_WMT_SDIO_PSOP)(SDIO_PS_OP);
151 #if 1 /* moved from wmt_core.h */
153 WMT_SDIO_SLOT_INVALID = 0,
154 WMT_SDIO_SLOT_SDIO1 = 1, /* Wi-Fi dedicated SDIO1*/
155 WMT_SDIO_SLOT_SDIO2 = 2,
160 WMT_SDIO_FUNC_STP = 0,
161 WMT_SDIO_FUNC_WIFI = 1,
163 } WMT_SDIO_FUNC_TYPE;
166 /*******************************************************************************
167 * P U B L I C D A T A
168 ********************************************************************************
171 /*******************************************************************************
172 * P R I V A T E D A T A
173 ********************************************************************************
180 /*******************************************************************************
181 * F U N C T I O N D E C L A R A T I O N S
182 ********************************************************************************
184 /*subsystem function ctrl APIs*/
186 mtk_wcn_wmt_func_off (
187 ENUM_WMTDRV_TYPE_T type
191 mtk_wcn_wmt_func_on (
192 ENUM_WMTDRV_TYPE_T type
195 extern MTK_WCN_BOOL mtk_wcn_wmt_dsns_ctrl (
196 ENUM_WMTDSNS_TYPE_T eType
199 extern MTK_WCN_BOOL mtk_wcn_wmt_assert (
203 extern INT32 mtk_wcn_wmt_msgcb_reg (
204 ENUM_WMTDRV_TYPE_T eType,
208 extern INT32 mtk_wcn_wmt_msgcb_unreg (
209 ENUM_WMTDRV_TYPE_T eType
213 mtk_wcn_stp_wmt_sdio_op_reg (
214 PF_WMT_SDIO_PSOP own_cb
218 mtk_wcn_stp_wmt_sdio_host_awake(
223 enable/disable thermal sensor function: true(1)/false(0)
224 read thermal sensor function: thermal value
228 mtk_wcn_wmt_therm_ctrl (
229 ENUM_WMTTHERM_TYPE_T eType
232 extern ENUM_WMTHWVER_TYPE_T
233 mtk_wcn_wmt_hwver_get (VOID);
236 mtk_wcn_wmt_chipid_query (VOID);
239 extern INT32 wmt_lib_set_aif (
242 ); /* set AUDIO interface options */
244 wmt_lib_ps_irq_cb(VOID);
245 /*******************************************************************************
247 ********************************************************************************
250 #endif /* _WMT_EXP_H_ */