1/* SPDX-License-Identifier: GPL-2.0 */
2/* Copyright(c) 2009-2014  Realtek Corporation.*/
3
4#ifndef __RTL92E_PWRSEQ_H__
5#define __RTL92E_PWRSEQ_H__
6
7#include "../pwrseqcmd.h"
8/**
9 *	Check document WM-20110607-Paul-RTL8192E_Power_Architecture-R02.vsd
10 *	There are 6 HW Power States:
11 *	0: POFF--Power Off
12 *	1: PDN--Power Down
13 *	2: CARDEMU--Card Emulation
14 *	3: ACT--Active Mode
15 *	4: LPS--Low Power State
16 *	5: SUS--Suspend
17 *
18 *	The transision from different states are defined below
19 *	TRANS_CARDEMU_TO_ACT
20 *	TRANS_ACT_TO_CARDEMU
21 *	TRANS_CARDEMU_TO_SUS
22 *	TRANS_SUS_TO_CARDEMU
23 *	TRANS_CARDEMU_TO_PDN
24 *	TRANS_ACT_TO_LPS
25 *	TRANS_LPS_TO_ACT
26 *
27 *	TRANS_END
28 *	PWR SEQ Version: rtl8192E_PwrSeq_V09.h
29 */
30
31#define	RTL8192E_TRANS_CARDEMU_TO_ACT_STEPS	18
32#define	RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS	18
33#define	RTL8192E_TRANS_CARDEMU_TO_SUS_STEPS	18
34#define	RTL8192E_TRANS_SUS_TO_CARDEMU_STEPS	18
35#define	RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS	18
36#define	RTL8192E_TRANS_PDN_TO_CARDEMU_STEPS	18
37#define	RTL8192E_TRANS_ACT_TO_LPS_STEPS		23
38#define	RTL8192E_TRANS_LPS_TO_ACT_STEPS		23
39#define	RTL8192E_TRANS_END_STEPS		1
40
41#define RTL8192E_TRANS_CARDEMU_TO_ACT					\
42	/* format */							\
43	/* comments here */						\
44	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
45	/* disable HWPDN 0x04[15]=0*/					\
46	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
47	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), 0},			\
48	/* disable SW LPS 0x04[10]=0*/					\
49	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
50	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), 0},			\
51	/* disable WL suspend*/						\
52	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
53	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, (BIT(4)|BIT(3)), 0},		\
54	/* wait till 0x04[17] = 1    power ready*/			\
55	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
56	 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(1), BIT(1)},		\
57	/* release WLON reset  0x04[16]=1*/				\
58	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
59	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), BIT(0)},		\
60	/* polling until return 0*/					\
61	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
62	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), BIT(0)},		\
63	/**/								\
64	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
65	 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(0), 0},
66
67#define RTL8192E_TRANS_ACT_TO_CARDEMU					\
68	/* format */							\
69	/* comments here */						\
70	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
71	/*0x1F[7:0] = 0 turn off RF*/					\
72	{0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
73	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0},			\
74	/*0x4C[23]=0x4E[7]=0, switch DPDT_SEL_P output from register 0x65[2] */\
75	{0x004E, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
76	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), 0},			\
77	/*0x04[9] = 1 turn off MAC by HW state machine*/		\
78	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
79	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), BIT(1)},		\
80	/*wait till 0x04[9] = 0 polling until return 0 to disable*/	\
81	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
82	 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(1), 0},
83
84#define RTL8192E_TRANS_CARDEMU_TO_SUS					\
85	/* format */							\
86	/* comments here */						\
87	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
88	/*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/		\
89	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
90	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(4) | BIT(3), (BIT(4) | BIT(3))},\
91	/*0x04[12:11] = 2b'01 enable WL suspend*/			\
92	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
93	 PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,	\
94	 PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)},				\
95	/*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/		\
96	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
97	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)},\
98	/*Set SDIO suspend local register*/				\
99	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
100	 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), BIT(0)},		\
101	 /*wait power state to suspend*/				\
102	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
103	 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), 0},
104
105#define RTL8192E_TRANS_SUS_TO_CARDEMU					\
106	/* format */							\
107	/* comments here */						\
108	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
109	/*Set SDIO suspend local register*/				\
110	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
111	 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), 0},			\
112	/*wait power state to suspend*/					\
113	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
114	 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), BIT(1)},		\
115	/*0x04[12:11] = 2b'00 disable WL suspend*/			\
116	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
117	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(3) | BIT(4), 0},
118
119#define RTL8192E_TRANS_CARDEMU_TO_CARDDIS				\
120	/* format */							\
121	/* comments here */						\
122	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
123	/*0x07=0x20 , SOP option to disable BG/MB*/			\
124	{0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
125	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x20},			\
126	/*Unlock small LDO Register*/					\
127	{0x00CC, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
128	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), BIT(2)},		\
129	/*Disable small LDO*/						\
130	{0x0011, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
131	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), 0},			\
132	/*0x04[12:11] = 2b'01 enable WL suspend*/			\
133	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK,			\
134	 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC,		\
135	 PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)},				\
136	/*0x04[10] = 1, enable SW LPS*/					\
137	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
138	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), BIT(2)},		\
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_WRITE, BIT(0), BIT(0)},		\
142	/*wait power state to suspend*/					\
143	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
144	 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), 0},
145
146#define RTL8192E_TRANS_CARDDIS_TO_CARDEMU				\
147	/* format */							\
148	/* comments here */						\
149	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
150	/*Set SDIO suspend local register*/				\
151	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
152	 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, BIT(0), 0},			\
153	/*wait power state to suspend*/					\
154	{0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
155	 PWR_BASEADDR_SDIO , PWR_CMD_POLLING, BIT(1), BIT(1)},		\
156	/*Enable small LDO*/						\
157	{0x0011, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
158	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), BIT(0)},		\
159	/*Lock small LDO Register*/					\
160	{0x00CC, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
161	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(2), 0},			\
162	/*0x04[12:11] = 2b'00 disable WL suspend*/			\
163	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
164	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(3) | BIT(4), 0},
165
166#define RTL8192E_TRANS_CARDEMU_TO_PDN					\
167	/* format */							\
168	/* comments here */						\
169	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
170	/* 0x04[16] = 0*/						\
171	{0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
172	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), 0},			\
173	/* 0x04[15] = 1*/						\
174	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
175	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), BIT(7)},
176
177#define RTL8192E_TRANS_PDN_TO_CARDEMU					\
178	/* format */							\
179	/* comments here */						\
180	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
181	/* 0x04[15] = 0*/						\
182	{0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
183	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(7), 0},
184
185#define RTL8192E_TRANS_ACT_TO_LPS					\
186	/* format */							\
187	/* comments here */						\
188	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
189	/*PCIe DMA stop*/						\
190	{0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
191	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF},			\
192	/*Tx Pause*/							\
193	{0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
194	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF},			\
195	/*Should be zero if no packet is transmitting*/			\
196	{0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
197	 PWR_BASEADDR_MAC , PWR_CMD_POLLING, 0xFF, 0},			\
198	/*Should be zero if no packet is transmitting*/			\
199	{0x05F9, 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	{0x05FA, 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	{0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
206	 PWR_BASEADDR_MAC , PWR_CMD_POLLING, 0xFF, 0},			\
207	/*CCK and OFDM are disabled,and clock are gated*/		\
208	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
209	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(0), 0},			\
210	/*Delay 1us*/							\
211	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
212	 PWR_BASEADDR_MAC , PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US},		\
213	/*Whole BB is reset*/						\
214	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
215	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), 0},			\
216	/*Reset MAC TRX*/						\
217	{0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
218	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x03},			\
219	/*check if removed later*/					\
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	/*When driver enter Sus/ Disable, enable LOP for BT*/		\
223	{0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
224	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x00},			\
225	/*Respond TxOK to scheduler*/					\
226	{0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
227	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(5), BIT(5)},
228
229#define RTL8192E_TRANS_LPS_TO_ACT					\
230	/* format */							\
231	/* comments here */						\
232	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
233	/*SDIO RPWM, For Repeatly In and out, Taggle bit should be changed*/\
234	{0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,	\
235	 PWR_BASEADDR_SDIO , PWR_CMD_WRITE, 0xFF, 0x84},		\
236	/*USB RPWM*/							\
237	{0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,	\
238	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x84},			\
239	/*PCIe RPWM*/							\
240	{0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,	\
241	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0x84},			\
242	/*Delay*/							\
243	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
244	 PWR_BASEADDR_MAC , PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS},		\
245	/*0x08[4] = 0 switch TSF to 40M*/				\
246	{0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
247	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(4), 0},			\
248	/*Polling 0x109[7]=0  TSF in 40M*/				\
249	{0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
250	 PWR_BASEADDR_MAC , PWR_CMD_POLLING, BIT(7), 0},		\
251	/*0x101[1] = 1*/						\
252	{0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
253	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1), BIT(1)},		\
254	/*0x100[7:0] = 0xFF  enable WMAC TRX*/				\
255	{0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
256	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF},			\
257	/* 0x02[1:0] = 2b'11 enable BB macro*/				\
258	{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
259	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)},\
260	/*0x522 = 0*/							\
261	{0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
262	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0},			\
263	/*Clear ISR*/							\
264	{0x013D, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
265	 PWR_BASEADDR_MAC , PWR_CMD_WRITE, 0xFF, 0xFF},
266
267#define RTL8192E_TRANS_END						\
268	/* format */							\
269	/* comments here */						\
270	/* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\
271	{0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,	\
272	 0, PWR_CMD_END, 0, 0},
273
274extern struct wlan_pwr_cfg rtl8192E_power_on_flow
275					[RTL8192E_TRANS_CARDEMU_TO_ACT_STEPS +
276					 RTL8192E_TRANS_END_STEPS];
277extern struct wlan_pwr_cfg rtl8192E_radio_off_flow
278					[RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS +
279					 RTL8192E_TRANS_END_STEPS];
280extern struct wlan_pwr_cfg rtl8192E_card_disable_flow
281					[RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS +
282					 RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS +
283					 RTL8192E_TRANS_END_STEPS];
284extern struct wlan_pwr_cfg rtl8192E_card_enable_flow
285					[RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS +
286					 RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS +
287					 RTL8192E_TRANS_END_STEPS];
288extern struct wlan_pwr_cfg rtl8192E_suspend_flow
289					[RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS +
290					 RTL8192E_TRANS_CARDEMU_TO_SUS_STEPS +
291					 RTL8192E_TRANS_END_STEPS];
292extern struct wlan_pwr_cfg rtl8192E_resume_flow
293					[RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS +
294					 RTL8192E_TRANS_CARDEMU_TO_SUS_STEPS +
295					 RTL8192E_TRANS_END_STEPS];
296extern struct wlan_pwr_cfg rtl8192E_hwpdn_flow
297					[RTL8192E_TRANS_ACT_TO_CARDEMU_STEPS +
298					 RTL8192E_TRANS_CARDEMU_TO_PDN_STEPS +
299					 RTL8192E_TRANS_END_STEPS];
300extern struct wlan_pwr_cfg rtl8192E_enter_lps_flow
301					[RTL8192E_TRANS_ACT_TO_LPS_STEPS +
302					 RTL8192E_TRANS_END_STEPS];
303extern struct wlan_pwr_cfg rtl8192E_leave_lps_flow
304					[RTL8192E_TRANS_LPS_TO_ACT_STEPS +
305					 RTL8192E_TRANS_END_STEPS];
306
307/* RTL8192EE Power Configuration CMDs for PCIe interface */
308#define RTL8192E_NIC_PWR_ON_FLOW	rtl8192E_power_on_flow
309#define RTL8192E_NIC_RF_OFF_FLOW	rtl8192E_radio_off_flow
310#define RTL8192E_NIC_DISABLE_FLOW	rtl8192E_card_disable_flow
311#define RTL8192E_NIC_ENABLE_FLOW	rtl8192E_card_enable_flow
312#define RTL8192E_NIC_SUSPEND_FLOW	rtl8192E_suspend_flow
313#define RTL8192E_NIC_RESUME_FLOW	rtl8192E_resume_flow
314#define RTL8192E_NIC_PDN_FLOW		rtl8192E_hwpdn_flow
315#define RTL8192E_NIC_LPS_ENTER_FLOW	rtl8192E_enter_lps_flow
316#define RTL8192E_NIC_LPS_LEAVE_FLOW	rtl8192E_leave_lps_flow
317
318#endif
319