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