b85978a80e76dd5f778701126410016584fae1f4
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931 / os / linux / include / gl_rst.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/os/linux/include/gl_rst.h#1 $
3 */
4
5 /*! \file   gl_rst.h
6     \brief  Declaration of functions and finite state machine for 
7             MT6620 Whole-Chip Reset Mechanism
8 */
9
10
11
12
13 #ifndef _GL_RST_H
14 #define _GL_RST_H
15
16 /*******************************************************************************
17 *                         C O M P I L E R   F L A G S
18 ********************************************************************************
19 */
20
21 /*******************************************************************************
22 *                    E X T E R N A L   R E F E R E N C E S
23 ********************************************************************************
24 */
25 #include "gl_typedef.h"
26
27 /*******************************************************************************
28 *                              C O N S T A N T S
29 ********************************************************************************
30 */
31
32 /*******************************************************************************
33 *                             D A T A   T Y P E S
34 ********************************************************************************
35 */
36 /* duplicated from wmt_exp.h for better driver isolation */
37 typedef enum _ENUM_WMTDRV_TYPE_T {
38     WMTDRV_TYPE_BT = 0,
39     WMTDRV_TYPE_FM = 1,
40     WMTDRV_TYPE_GPS = 2,
41     WMTDRV_TYPE_WIFI = 3,
42     WMTDRV_TYPE_WMT = 4,
43     WMTDRV_TYPE_STP = 5,
44     WMTDRV_TYPE_SDIO1 = 6,
45     WMTDRV_TYPE_SDIO2 = 7,
46     WMTDRV_TYPE_LPBK = 8,
47     WMTDRV_TYPE_MAX
48 } ENUM_WMTDRV_TYPE_T, *P_ENUM_WMTDRV_TYPE_T;
49
50 typedef enum _ENUM_WMTMSG_TYPE_T {
51     WMTMSG_TYPE_POWER_ON = 0,
52     WMTMSG_TYPE_POWER_OFF = 1,
53     WMTMSG_TYPE_RESET = 2,
54     WMTMSG_TYPE_STP_RDY= 3,
55     WMTMSG_TYPE_HW_FUNC_ON= 4,
56     WMTMSG_TYPE_MAX
57 } ENUM_WMTMSG_TYPE_T, *P_ENUM_WMTMSG_TYPE_T;
58
59 typedef enum _ENUM_WMTRSTMSG_TYPE_T{
60     WMTRSTMSG_RESET_START = 0x0,
61     WMTRSTMSG_RESET_END = 0x1,
62     WMTRSTMSG_RESET_MAX,
63     WMTRSTMSG_RESET_INVALID = 0xff
64 } ENUM_WMTRSTMSG_TYPE_T, *P_ENUM_WMTRSTMSG_TYPE_T;
65
66 typedef void (*PF_WMT_CB)(
67     ENUM_WMTDRV_TYPE_T, /* Source driver type */
68     ENUM_WMTDRV_TYPE_T, /* Destination driver type */
69     ENUM_WMTMSG_TYPE_T, /* Message type */
70     void *, /* READ-ONLY buffer. Buffer is allocated and freed by WMT_drv. Client
71                can't touch this buffer after this function return. */
72     unsigned int /* Buffer size in unit of byte */
73     );
74
75
76 typedef enum _ENUM_WIFI_NETLINK_GRP_T{
77     WIFI_NETLINK_GRP_RESET,
78     WIFI_NETLINK_GRP_MAX
79 } ENUM_WIFI_NETLINK_GRP_T, *P_ENUM_WIFI_NETLINK_GRP_T;
80
81
82 /*******************************************************************************
83 *                            P U B L I C   D A T A
84 ********************************************************************************
85 */
86
87 /*******************************************************************************
88 *                           P R I V A T E   D A T A
89 ********************************************************************************
90 */
91
92 /*******************************************************************************
93 *                                 M A C R O S
94 ********************************************************************************
95 */
96
97 /*******************************************************************************
98 *                  F U N C T I O N   D E C L A R A T I O N S
99 ********************************************************************************
100 */
101
102 /*******************************************************************************
103 *                              F U N C T I O N S
104 ********************************************************************************
105 */
106
107 /*----------------------------------------------------------------------------*/
108 /* Reset Initialization/Uninitialization                                      */
109 /*----------------------------------------------------------------------------*/
110 VOID
111 glResetInit(
112     VOID
113     );
114
115 VOID
116 glResetUninit(
117     VOID
118     );
119
120 VOID
121 glSendResetRequest(
122     VOID
123     );
124
125 BOOLEAN
126 kalIsResetting(
127     VOID
128     );
129
130
131 #endif /* _GL_RST_H */