xref: /linux/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/pwrseq.h (revision e58e871becec2d3b04ed91c0c16fe8deac9c9dfa)
1 /******************************************************************************
2  *
3  * Copyright(c) 2009-2013  Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  *
22  * Larry Finger <Larry.Finger@lwfinger.net>
23  *
24  *****************************************************************************/
25 
26 #ifndef __RTL8723E_PWRSEQ_H__
27 #define __RTL8723E_PWRSEQ_H__
28 
29 #include "../pwrseqcmd.h"
30 /* Check document WM-20110607-Paul-RTL8188EE_Power_Architecture-R02.vsd
31  *	There are 6 HW Power States:
32  *	0: POFF--Power Off
33  *	1: PDN--Power Down
34  *	2: CARDEMU--Card Emulation
35  *	3: ACT--Active Mode
36  *	4: LPS--Low Power State
37  *	5: SUS--Suspend
38  *
39  *	The transision from different states are defined below
40  *	TRANS_CARDEMU_TO_ACT
41  *	TRANS_ACT_TO_CARDEMU
42  *	TRANS_CARDEMU_TO_SUS
43  *	TRANS_SUS_TO_CARDEMU
44  *	TRANS_CARDEMU_TO_PDN
45  *	TRANS_ACT_TO_LPS
46  *	TRANS_LPS_TO_ACT
47  *
48  *	TRANS_END
49  *	PWR SEQ Version: rtl8188ee_PwrSeq_V09.h
50  */
51 
52 #define	RTL8188EE_TRANS_CARDEMU_TO_ACT_STEPS	10
53 #define	RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS	10
54 #define	RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS	10
55 #define	RTL8188EE_TRANS_SUS_TO_CARDEMU_STEPS	10
56 #define	RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS	10
57 #define	RTL8188EE_TRANS_PDN_TO_CARDEMU_STEPS	10
58 #define	RTL8188EE_TRANS_ACT_TO_LPS_STEPS		15
59 #define	RTL8188EE_TRANS_LPS_TO_ACT_STEPS		15
60 #define	RTL8188EE_TRANS_END_STEPS		1
61 
62 /* The following macros have the following format:
63  * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value
64  *   comments },
65  */
66 #define RTL8188EE_TRANS_CARDEMU_TO_ACT					\
67 	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
68 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1)		\
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, BIT(0)|BIT(1), 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, BIT(7), BIT(7)			\
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, BIT(7), 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, BIT(4)|BIT(3), 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, BIT(0), BIT(0)			\
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, BIT(0), 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, BIT(4), 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, BIT(4), BIT(4)			\
93 	/*SDIO Driving*/},
94 
95 #define RTL8188EE_TRANS_ACT_TO_CARDEMU					\
96 	{0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
97 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0			\
98 	/*0x1F[7:0] = 0 turn off RF*/},					\
99 	{0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
100 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)			\
101 	/*LDO Sleep mode*/},						\
102 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
103 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)			\
104 	/*0x04[9] = 1 turn off MAC by HW state machine*/},		\
105 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
106 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0			\
107 	/*wait till 0x04[9] = 0 polling until return 0 to disable*/},
108 
109 #define RTL8188EE_TRANS_CARDEMU_TO_SUS					\
110 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
111 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
112 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)		\
113 	/*0x04[12:11] = 2b'01enable WL suspend*/},			\
114 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
115 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)|BIT(4)	\
116 	/*0x04[12:11] = 2b'11enable WL suspend for PCIe*/},		\
117 	{0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
118 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
119 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, BIT(7)			\
120 	/*  0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */},\
121 	{0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
122 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
123 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0			\
124 	/*Clear SIC_EN register 0x40[12] = 1'b0 */},			\
125 	{0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
126 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
127 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)			\
128 	/*Set USB suspend enable local register  0xfe10[4]=1 */},	\
129 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
130 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)		\
131 	/*Set SDIO suspend local register*/},				\
132 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
133 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0			\
134 	/*wait power state to suspend*/},
135 
136 #define RTL8188EE_TRANS_SUS_TO_CARDEMU					\
137 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
138 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0			\
139 	/*Set SDIO suspend local register*/},				\
140 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
141 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)		\
142 	/*wait power state to suspend*/},				\
143 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
144 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0		\
145 	/*0x04[12:11] = 2b'01enable WL suspend*/},
146 
147 #define RTL8188EE_TRANS_CARDEMU_TO_CARDDIS				\
148 	{0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
149 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)			\
150 	/*0x24[23] = 2b'01 schmit trigger */},				\
151 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
152 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
153 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)	\
154 	/*0x04[12:11] = 2b'01 enable WL suspend*/},			\
155 	{0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
156 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
157 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0			\
158 	/*  0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */},\
159 	{0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
160 	PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,				\
161 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0			\
162 	/*Clear SIC_EN register 0x40[12] = 1'b0 */},			\
163 	{0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,	\
164 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)			\
165 	/*Set USB suspend enable local register  0xfe10[4]=1 */},	\
166 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
167 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)		\
168 	/*Set SDIO suspend local register*/},				\
169 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
170 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0			\
171 	/*wait power state to suspend*/},
172 
173 #define RTL8188EE_TRANS_CARDDIS_TO_CARDEMU				\
174 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
175 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0			\
176 	/*Set SDIO suspend local register*/},				\
177 	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
178 	PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)		\
179 	/*wait power state to suspend*/},				\
180 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
181 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0		\
182 	/*0x04[12:11] = 2b'01enable WL suspend*/},
183 
184 #define RTL8188EE_TRANS_CARDEMU_TO_PDN					\
185 	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
186 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0/* 0x04[16] = 0*/},	\
187 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
188 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)			\
189 	/* 0x04[15] = 1*/},
190 
191 #define RTL8188EE_TRANS_PDN_TO_CARDEMU					\
192 	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
193 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0/* 0x04[15] = 0*/},
194 
195 #define RTL8188EE_TRANS_ACT_TO_LPS					\
196 	{0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
197 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F			\
198 	/*Tx Pause*/},							\
199 	{0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
200 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0			\
201 	/*Should be zero if no packet is transmitting*/},		\
202 	{0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
203 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0			\
204 	/*Should be zero if no packet is transmitting*/},		\
205 	{0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
206 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0			\
207 	/*Should be zero if no packet is transmitting*/},		\
208 	{0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
209 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0			\
210 	/*Should be zero if no packet is transmitting*/},		\
211 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
212 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0			\
213 	/*CCK and OFDM are disabled,and clock are gated*/},		\
214 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
215 	PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US		\
216 	/*Delay 1us*/},							\
217 	{0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
218 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F			\
219 	/*Reset MAC TRX*/},						\
220 	{0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
221 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0			\
222 	/*check if removed later*/},					\
223 	{0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
224 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5)			\
225 	/*Respond TxOK to scheduler*/},
226 
227 
228 #define RTL8188EE_TRANS_LPS_TO_ACT					\
229 	{0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
230 	PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84			\
231 	/*SDIO RPWM*/},							\
232 	{0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,	\
233 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84			\
234 	/*USB RPWM*/},							\
235 	{0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
236 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84			\
237 	/*PCIe RPWM*/},							\
238 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
239 	PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS		\
240 	/*Delay*/},							\
241 	{0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
242 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0			\
243 	/*.	0x08[4] = 0		 switch TSF to 40M*/},		\
244 	{0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
245 	PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0			\
246 	/*Polling 0x109[7]=0  TSF in 40M*/},				\
247 	{0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
248 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6)|BIT(7), 0		\
249 	/*.	0x29[7:6] = 2b'00	 enable BB clock*/},		\
250 	{0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
251 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)			\
252 	/*.	0x101[1] = 1*/},					\
253 	{0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
254 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF			\
255 	/*.	0x100[7:0] = 0xFF	 enable WMAC TRX*/},		\
256 	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
257 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1)|BIT(0), BIT(1)|BIT(0)	\
258 	/*.	0x02[1:0] = 2b'11	 enable BB macro*/},		\
259 	{0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
260 	PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0			\
261 	/*.	0x522 = 0*/},
262 
263 #define RTL8188EE_TRANS_END		\
264 	{0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
265 	0, PWR_CMD_END, 0, 0}
266 
267 extern struct wlan_pwr_cfg rtl8188ee_power_on_flow
268 		[RTL8188EE_TRANS_CARDEMU_TO_ACT_STEPS +
269 		 RTL8188EE_TRANS_END_STEPS];
270 extern struct wlan_pwr_cfg rtl8188ee_radio_off_flow
271 		[RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
272 		 RTL8188EE_TRANS_END_STEPS];
273 extern struct wlan_pwr_cfg rtl8188ee_card_disable_flow
274 		[RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
275 		 RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS +
276 		 RTL8188EE_TRANS_END_STEPS];
277 extern struct wlan_pwr_cfg rtl8188ee_card_enable_flow
278 		[RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
279 		 RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS +
280 		 RTL8188EE_TRANS_END_STEPS];
281 extern struct wlan_pwr_cfg rtl8188ee_suspend_flow
282 		[RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
283 		 RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS +
284 		 RTL8188EE_TRANS_END_STEPS];
285 extern struct wlan_pwr_cfg rtl8188ee_resume_flow
286 		[RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
287 		 RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS +
288 		 RTL8188EE_TRANS_END_STEPS];
289 extern struct wlan_pwr_cfg rtl8188ee_hwpdn_flow
290 		[RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
291 		 RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS +
292 		 RTL8188EE_TRANS_END_STEPS];
293 extern struct wlan_pwr_cfg rtl8188ee_enter_lps_flow
294 		[RTL8188EE_TRANS_ACT_TO_LPS_STEPS +
295 		 RTL8188EE_TRANS_END_STEPS];
296 extern struct wlan_pwr_cfg rtl8188ee_leave_lps_flow
297 		[RTL8188EE_TRANS_LPS_TO_ACT_STEPS +
298 		 RTL8188EE_TRANS_END_STEPS];
299 
300 /* RTL8723 Power Configuration CMDs for PCIe interface */
301 #define RTL8188EE_NIC_PWR_ON_FLOW	rtl8188ee_power_on_flow
302 #define RTL8188EE_NIC_RF_OFF_FLOW	rtl8188ee_radio_off_flow
303 #define RTL8188EE_NIC_DISABLE_FLOW	rtl8188ee_card_disable_flow
304 #define RTL8188EE_NIC_ENABLE_FLOW	rtl8188ee_card_enable_flow
305 #define RTL8188EE_NIC_SUSPEND_FLOW	rtl8188ee_suspend_flow
306 #define RTL8188EE_NIC_RESUME_FLOW	rtl8188ee_resume_flow
307 #define RTL8188EE_NIC_PDN_FLOW		rtl8188ee_hwpdn_flow
308 #define RTL8188EE_NIC_LPS_ENTER_FLOW	rtl8188ee_enter_lps_flow
309 #define RTL8188EE_NIC_LPS_LEAVE_FLOW	rtl8188ee_leave_lps_flow
310 
311 #endif
312