• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of version 2 of the GNU General Public License as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along with
16  * this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18  *
19  *
20  ******************************************************************************/
21 
22 #ifndef __HAL8188EPWRSEQ_H__
23 #define __HAL8188EPWRSEQ_H__
24 
25 #include "pwrseqcmd.h"
26 
27 /*
28 	Check document WM-20110607-Paul-RTL8188E_Power_Architecture-R02.vsd
29 	There are 6 HW Power States:
30 	0: POFF--Power Off
31 	1: PDN--Power Down
32 	2: CARDEMU--Card Emulation
33 	3: ACT--Active Mode
34 	4: LPS--Low Power State
35 	5: SUS--Suspend
36 
37 	The transision from different states are defined below
38 	TRANS_CARDEMU_TO_ACT
39 	TRANS_ACT_TO_CARDEMU
40 	TRANS_CARDEMU_TO_SUS
41 	TRANS_SUS_TO_CARDEMU
42 	TRANS_CARDEMU_TO_PDN
43 	TRANS_ACT_TO_LPS
44 	TRANS_LPS_TO_ACT
45 
46 	TRANS_END
47 
48     PWR SEQ Version: rtl8188E_PwrSeq_V09.h
49 */
50 #define RTL8188E_TRANS_CARDEMU_TO_ACT_STEPS	10
51 #define RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS	10
52 #define RTL8188E_TRANS_CARDEMU_TO_SUS_STEPS	10
53 #define RTL8188E_TRANS_SUS_TO_CARDEMU_STEPS	10
54 #define RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS	10
55 #define RTL8188E_TRANS_PDN_TO_CARDEMU_STEPS	10
56 #define RTL8188E_TRANS_ACT_TO_LPS_STEPS		15
57 #define RTL8188E_TRANS_LPS_TO_ACT_STEPS		15
58 #define RTL8188E_TRANS_END_STEPS		1
59 
60 
61 #define RTL8188E_TRANS_CARDEMU_TO_ACT					\
62 	/* format
63 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value
64 	 * },
65 	 * comment here
66 	 */								\
67 	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
68 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, BIT1},			\
69 	/* wait till 0x04[17] = 1    power ready*/	\
70 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
71 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0|BIT1, 0},			\
72 	/* 0x02[1:0] = 0	reset BB*/				\
73 	{0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
74 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7},			\
75 	/*0x24[23] = 2b'01 schmit trigger */				\
76 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
77 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0},			\
78 	/* 0x04[15] = 0 disable HWPDN (control by DRV)*/		\
79 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
80 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4|BIT3, 0},			\
81 	/*0x04[12:11] = 2b'00 disable WL suspend*/			\
82 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
83 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0},			\
84 	/*0x04[8] = 1 polling until return 0*/				\
85 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
86 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT0, 0},			\
87 	/*wait till 0x04[8] = 0*/					\
88 	{0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
89 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0},			\
90 	/*LDO normal mode*/						\
91 	{0x0074, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
92 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4},			\
93 	/*SDIO Driving*/
94 
95 #define RTL8188E_TRANS_ACT_TO_CARDEMU					\
96 	/* format
97 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value
98 	 * },
99 	 * comments here
100 	 */								\
101 	{0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
102 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0},			\
103 	/*0x1F[7:0] = 0 turn off RF*/					\
104 	{0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
105 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4},			\
106 	/*LDO Sleep mode*/						\
107 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
108 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1},			\
109 	/*0x04[9] = 1 turn off MAC by HW state machine*/		\
110 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
111 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, 0},			\
112 	/*wait till 0x04[9] = 0 polling until return 0 to disable*/
113 
114 #define RTL8188E_TRANS_CARDEMU_TO_SUS					\
115 	/* format
116 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
117 	 * value },
118 	 * comments here
119 	 */								\
120 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
121 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
122 	PWR_CMD_WRITE, BIT3|BIT4, BIT3},				\
123 	/* 0x04[12:11] = 2b'01enable WL suspend */			\
124 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
125 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3|BIT4},		\
126 	/* 0x04[12:11] = 2b'11enable WL suspend for PCIe */		\
127 	{0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
128 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
129 	PWR_CMD_WRITE, 0xFF, BIT7},					\
130 	/* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */\
131 	{0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
132 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
133 	PWR_CMD_WRITE, BIT4, 0},					\
134 	/*Clear SIC_EN register 0x40[12] = 1'b0 */			\
135 	{0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
136 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
137 	PWR_CMD_WRITE, BIT4, BIT4},					\
138 	/*Set USB suspend enable local register  0xfe10[4]=1 */		\
139 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
140 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0},			\
141 	/*Set SDIO suspend local register*/				\
142 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
143 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0},			\
144 	/*wait power state to suspend*/
145 
146 #define RTL8188E_TRANS_SUS_TO_CARDEMU					\
147 	/* format
148 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
149 	 * value },
150 	 * comments here
151 	 */								\
152 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
153 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0},			\
154 	/*Set SDIO suspend local register*/				\
155 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
156 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1},		\
157 	/*wait power state to suspend*/					\
158 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
159 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0},			\
160 	/*0x04[12:11] = 2b'01enable WL suspend*/
161 
162 #define RTL8188E_TRANS_CARDEMU_TO_CARDDIS				\
163 	/* format
164 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
165 	 * value },
166 	 * comments here
167 	 */								\
168 	{0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
169 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7},			\
170 	/*0x24[23] = 2b'01 schmit trigger */				\
171 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
172 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
173 	PWR_CMD_WRITE, BIT3|BIT4, BIT3},				\
174 	/*0x04[12:11] = 2b'01 enable WL suspend*/			\
175 	{0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
176 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
177 	PWR_CMD_WRITE, 0xFF, 0},					\
178 	/* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */\
179 	{0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
180 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
181 	PWR_CMD_WRITE, BIT4, 0},					\
182 	/*Clear SIC_EN register 0x40[12] = 1'b0 */			\
183 	{0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,	\
184 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4},			\
185 	/*Set USB suspend enable local register  0xfe10[4]=1 */		\
186 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
187 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0},			\
188 	/*Set SDIO suspend local register*/				\
189 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
190 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0},			\
191 	/*wait power state to suspend*/
192 
193 #define RTL8188E_TRANS_CARDDIS_TO_CARDEMU				\
194 	/* format
195 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
196 	 * value },
197 	 * comments here
198 	 */								\
199 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
200 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0},			\
201 	/*Set SDIO suspend local register*/				\
202 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
203 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1},		\
204 	/*wait power state to suspend*/					\
205 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
206 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0},			\
207 	/*0x04[12:11] = 2b'01enable WL suspend*/
208 
209 #define RTL8188E_TRANS_CARDEMU_TO_PDN					\
210 	/* format
211 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
212 	 * value },
213 	 * comments here
214 	 */								\
215 	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
216 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0},			\
217 	/* 0x04[16] = 0*/						\
218 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
219 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7},			\
220 	/* 0x04[15] = 1*/
221 
222 #define RTL8188E_TRANS_PDN_TO_CARDEMU					\
223 	/* format
224 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
225 	 * value },
226 	 * comments here
227 	 */								\
228 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
229 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0},			\
230 	/* 0x04[15] = 0*/
231 
232 /* This is used by driver for LPSRadioOff Procedure, not for FW LPS Step */
233 #define RTL8188E_TRANS_ACT_TO_LPS					\
234 	/* format
235 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
236 	 * value },
237 	 * comments here
238 	 */								\
239 	{0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
240 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F},/*Tx Pause*/	\
241 	{0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
242 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},			\
243 	/*Should be zero if no packet is transmitting*/			\
244 	{0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
245 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},			\
246 	/*Should be zero if no packet is transmitting*/			\
247 	{0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
248 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},			\
249 	/*Should be zero if no packet is transmitting*/			\
250 	{0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
251 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0},			\
252 	/*Should be zero if no packet is transmitting*/			\
253 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
254 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0},			\
255 	/*CCK and OFDM are disabled,and clock are gated*/		\
256 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
257 	PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0,				\
258 	PWRSEQ_DELAY_US},/*Delay 1us*/					\
259 	{0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
260 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F},/*Reset MAC TRX*/	\
261 	{0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
262 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0},/*check if removed later*/\
263 	{0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
264 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, BIT5},			\
265 	/*Respond TxOK to scheduler*/
266 
267 
268 #define RTL8188E_TRANS_LPS_TO_ACT					\
269 	/* format
270 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
271 	 * value },
272 	 * comments here
273 	 */								\
274 	{0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
275 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84}, /*SDIO RPWM*/	\
276 	{0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,	\
277 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, /*USB RPWM*/	\
278 	{0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
279 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, /*PCIe RPWM*/	\
280 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
281 	PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, /*Delay*/	\
282 	{0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
283 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0},			\
284 	/* 0x08[4] = 0 switch TSF to 40M */				\
285 	{0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
286 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT7, 0},			\
287 	/* Polling 0x109[7]=0  TSF in 40M */				\
288 	{0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
289 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6|BIT7, 0},			\
290 	/* 0x29[7:6] = 2b'00  enable BB clock */			\
291 	{0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
292 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1},			\
293 	/* 0x101[1] = 1 */						\
294 	{0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
295 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF},			\
296 	/* 0x100[7:0] = 0xFF enable WMAC TRX */				\
297 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
298 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0},		\
299 	/* 0x02[1:0] = 2b'11 enable BB macro */				\
300 	{0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
301 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, /*.	0x522 = 0*/
302 
303 #define RTL8188E_TRANS_END						\
304 	/* format
305 	 * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk,
306 	 * value },
307 	 * comments here
308 	 */								\
309 	{0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, 0,	\
310 	PWR_CMD_END, 0, 0},
311 
312 
313 extern struct wl_pwr_cfg rtl8188E_power_on_flow
314 		[RTL8188E_TRANS_CARDEMU_TO_ACT_STEPS + RTL8188E_TRANS_END_STEPS];
315 extern struct wl_pwr_cfg rtl8188E_radio_off_flow
316 		[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS + RTL8188E_TRANS_END_STEPS];
317 extern struct wl_pwr_cfg rtl8188E_card_disable_flow
318 		[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS +
319 		RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS +
320 		RTL8188E_TRANS_END_STEPS];
321 extern struct wl_pwr_cfg rtl8188E_card_enable_flow
322 		[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS +
323 		RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS +
324 		RTL8188E_TRANS_END_STEPS];
325 extern struct wl_pwr_cfg rtl8188E_suspend_flow[
326 		RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS +
327 		RTL8188E_TRANS_CARDEMU_TO_SUS_STEPS +
328 		RTL8188E_TRANS_END_STEPS];
329 extern struct wl_pwr_cfg rtl8188E_resume_flow
330 		[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS +
331 		RTL8188E_TRANS_CARDEMU_TO_SUS_STEPS +
332 		RTL8188E_TRANS_END_STEPS];
333 extern struct wl_pwr_cfg rtl8188E_hwpdn_flow
334 		[RTL8188E_TRANS_ACT_TO_CARDEMU_STEPS +
335 		RTL8188E_TRANS_CARDEMU_TO_PDN_STEPS + RTL8188E_TRANS_END_STEPS];
336 extern struct wl_pwr_cfg rtl8188E_enter_lps_flow
337 		[RTL8188E_TRANS_ACT_TO_LPS_STEPS + RTL8188E_TRANS_END_STEPS];
338 extern struct wl_pwr_cfg rtl8188E_leave_lps_flow
339 		[RTL8188E_TRANS_LPS_TO_ACT_STEPS + RTL8188E_TRANS_END_STEPS];
340 
341 #endif /* __HAL8188EPWRSEQ_H__ */
342