162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* Copyright(c) 2009-2013 Realtek Corporation.*/ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#ifndef __RTL8723E_PWRSEQ_H__ 562306a36Sopenharmony_ci#define __RTL8723E_PWRSEQ_H__ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include "../pwrseqcmd.h" 862306a36Sopenharmony_ci/* Check document WM-20110607-Paul-RTL8188EE_Power_Architecture-R02.vsd 962306a36Sopenharmony_ci * There are 6 HW Power States: 1062306a36Sopenharmony_ci * 0: POFF--Power Off 1162306a36Sopenharmony_ci * 1: PDN--Power Down 1262306a36Sopenharmony_ci * 2: CARDEMU--Card Emulation 1362306a36Sopenharmony_ci * 3: ACT--Active Mode 1462306a36Sopenharmony_ci * 4: LPS--Low Power State 1562306a36Sopenharmony_ci * 5: SUS--Suspend 1662306a36Sopenharmony_ci * 1762306a36Sopenharmony_ci * The transision from different states are defined below 1862306a36Sopenharmony_ci * TRANS_CARDEMU_TO_ACT 1962306a36Sopenharmony_ci * TRANS_ACT_TO_CARDEMU 2062306a36Sopenharmony_ci * TRANS_CARDEMU_TO_SUS 2162306a36Sopenharmony_ci * TRANS_SUS_TO_CARDEMU 2262306a36Sopenharmony_ci * TRANS_CARDEMU_TO_PDN 2362306a36Sopenharmony_ci * TRANS_ACT_TO_LPS 2462306a36Sopenharmony_ci * TRANS_LPS_TO_ACT 2562306a36Sopenharmony_ci * 2662306a36Sopenharmony_ci * TRANS_END 2762306a36Sopenharmony_ci * PWR SEQ Version: rtl8188ee_PwrSeq_V09.h 2862306a36Sopenharmony_ci */ 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_ACT_STEPS 10 3162306a36Sopenharmony_ci#define RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS 10 3262306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS 10 3362306a36Sopenharmony_ci#define RTL8188EE_TRANS_SUS_TO_CARDEMU_STEPS 10 3462306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS 10 3562306a36Sopenharmony_ci#define RTL8188EE_TRANS_PDN_TO_CARDEMU_STEPS 10 3662306a36Sopenharmony_ci#define RTL8188EE_TRANS_ACT_TO_LPS_STEPS 15 3762306a36Sopenharmony_ci#define RTL8188EE_TRANS_LPS_TO_ACT_STEPS 15 3862306a36Sopenharmony_ci#define RTL8188EE_TRANS_END_STEPS 1 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* The following macros have the following format: 4162306a36Sopenharmony_ci * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value 4262306a36Sopenharmony_ci * comments }, 4362306a36Sopenharmony_ci */ 4462306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_ACT \ 4562306a36Sopenharmony_ci {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 4662306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1) \ 4762306a36Sopenharmony_ci /* wait till 0x04[17] = 1 power ready*/}, \ 4862306a36Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 4962306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0)|BIT(1), 0 \ 5062306a36Sopenharmony_ci /* 0x02[1:0] = 0 reset BB*/}, \ 5162306a36Sopenharmony_ci {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 5262306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7) \ 5362306a36Sopenharmony_ci /*0x24[23] = 2b'01 schmit trigger */}, \ 5462306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 5562306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0 \ 5662306a36Sopenharmony_ci /* 0x04[15] = 0 disable HWPDN (control by DRV)*/}, \ 5762306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 5862306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4)|BIT(3), 0 \ 5962306a36Sopenharmony_ci /*0x04[12:11] = 2b'00 disable WL suspend*/}, \ 6062306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 6162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0) \ 6262306a36Sopenharmony_ci /*0x04[8] = 1 polling until return 0*/}, \ 6362306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 6462306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(0), 0 \ 6562306a36Sopenharmony_ci /*wait till 0x04[8] = 0*/}, \ 6662306a36Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 6762306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \ 6862306a36Sopenharmony_ci /*LDO normal mode*/}, \ 6962306a36Sopenharmony_ci {0x0074, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 7062306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \ 7162306a36Sopenharmony_ci /*SDIO Driving*/}, 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci#define RTL8188EE_TRANS_ACT_TO_CARDEMU \ 7462306a36Sopenharmony_ci {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 7562306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \ 7662306a36Sopenharmony_ci /*0x1F[7:0] = 0 turn off RF*/}, \ 7762306a36Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 7862306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \ 7962306a36Sopenharmony_ci /*LDO Sleep mode*/}, \ 8062306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 8162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1) \ 8262306a36Sopenharmony_ci /*0x04[9] = 1 turn off MAC by HW state machine*/}, \ 8362306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 8462306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0 \ 8562306a36Sopenharmony_ci /*wait till 0x04[9] = 0 polling until return 0 to disable*/}, 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_SUS \ 8862306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 8962306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 9062306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3) \ 9162306a36Sopenharmony_ci /*0x04[12:11] = 2b'01enable WL suspend*/}, \ 9262306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 9362306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)|BIT(4) \ 9462306a36Sopenharmony_ci /*0x04[12:11] = 2b'11enable WL suspend for PCIe*/}, \ 9562306a36Sopenharmony_ci {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 9662306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 9762306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, BIT(7) \ 9862306a36Sopenharmony_ci /* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */},\ 9962306a36Sopenharmony_ci {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 10062306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 10162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \ 10262306a36Sopenharmony_ci /*Clear SIC_EN register 0x40[12] = 1'b0 */}, \ 10362306a36Sopenharmony_ci {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 10462306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 10562306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \ 10662306a36Sopenharmony_ci /*Set USB suspend enable local register 0xfe10[4]=1 */}, \ 10762306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 10862306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0) \ 10962306a36Sopenharmony_ci /*Set SDIO suspend local register*/}, \ 11062306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 11162306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0 \ 11262306a36Sopenharmony_ci /*wait power state to suspend*/}, 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci#define RTL8188EE_TRANS_SUS_TO_CARDEMU \ 11562306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 11662306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0 \ 11762306a36Sopenharmony_ci /*Set SDIO suspend local register*/}, \ 11862306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 11962306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1) \ 12062306a36Sopenharmony_ci /*wait power state to suspend*/}, \ 12162306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 12262306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0 \ 12362306a36Sopenharmony_ci /*0x04[12:11] = 2b'00 disable WL suspend*/}, 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_CARDDIS \ 12662306a36Sopenharmony_ci {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 12762306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7) \ 12862306a36Sopenharmony_ci /*0x24[23] = 2b'01 schmit trigger */}, \ 12962306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 13062306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 13162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) \ 13262306a36Sopenharmony_ci /*0x04[12:11] = 2b'01 enable WL suspend*/}, \ 13362306a36Sopenharmony_ci {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 13462306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 13562306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \ 13662306a36Sopenharmony_ci /* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */},\ 13762306a36Sopenharmony_ci {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 13862306a36Sopenharmony_ci PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \ 13962306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \ 14062306a36Sopenharmony_ci /*Clear SIC_EN register 0x40[12] = 1'b0 */}, \ 14162306a36Sopenharmony_ci {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ 14262306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \ 14362306a36Sopenharmony_ci /*Set USB suspend enable local register 0xfe10[4]=1 */}, \ 14462306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 14562306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0) \ 14662306a36Sopenharmony_ci /*Set SDIO suspend local register*/}, \ 14762306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 14862306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0 \ 14962306a36Sopenharmony_ci /*wait power state to suspend*/}, 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDDIS_TO_CARDEMU \ 15262306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 15362306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0 \ 15462306a36Sopenharmony_ci /*Set SDIO suspend local register*/}, \ 15562306a36Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 15662306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1) \ 15762306a36Sopenharmony_ci /*wait power state to suspend*/}, \ 15862306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 15962306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0 \ 16062306a36Sopenharmony_ci /*0x04[12:11] = 2b'00 disable WL suspend*/}, 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci#define RTL8188EE_TRANS_CARDEMU_TO_PDN \ 16362306a36Sopenharmony_ci {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 16462306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0/* 0x04[16] = 0*/}, \ 16562306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 16662306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7) \ 16762306a36Sopenharmony_ci /* 0x04[15] = 1*/}, 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci#define RTL8188EE_TRANS_PDN_TO_CARDEMU \ 17062306a36Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 17162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0/* 0x04[15] = 0*/}, 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci#define RTL8188EE_TRANS_ACT_TO_LPS \ 17462306a36Sopenharmony_ci {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 17562306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F \ 17662306a36Sopenharmony_ci /*Tx Pause*/}, \ 17762306a36Sopenharmony_ci {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 17862306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \ 17962306a36Sopenharmony_ci /*Should be zero if no packet is transmitting*/}, \ 18062306a36Sopenharmony_ci {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 18162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \ 18262306a36Sopenharmony_ci /*Should be zero if no packet is transmitting*/}, \ 18362306a36Sopenharmony_ci {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 18462306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \ 18562306a36Sopenharmony_ci /*Should be zero if no packet is transmitting*/}, \ 18662306a36Sopenharmony_ci {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 18762306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \ 18862306a36Sopenharmony_ci /*Should be zero if no packet is transmitting*/}, \ 18962306a36Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 19062306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0 \ 19162306a36Sopenharmony_ci /*CCK and OFDM are disabled,and clock are gated*/}, \ 19262306a36Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 19362306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US \ 19462306a36Sopenharmony_ci /*Delay 1us*/}, \ 19562306a36Sopenharmony_ci {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 19662306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F \ 19762306a36Sopenharmony_ci /*Reset MAC TRX*/}, \ 19862306a36Sopenharmony_ci {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 19962306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0 \ 20062306a36Sopenharmony_ci /*check if removed later*/}, \ 20162306a36Sopenharmony_ci {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 20262306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5) \ 20362306a36Sopenharmony_ci /*Respond TxOK to scheduler*/}, 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci#define RTL8188EE_TRANS_LPS_TO_ACT \ 20762306a36Sopenharmony_ci {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 20862306a36Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84 \ 20962306a36Sopenharmony_ci /*SDIO RPWM*/}, \ 21062306a36Sopenharmony_ci {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ 21162306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \ 21262306a36Sopenharmony_ci /*USB RPWM*/}, \ 21362306a36Sopenharmony_ci {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 21462306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \ 21562306a36Sopenharmony_ci /*PCIe RPWM*/}, \ 21662306a36Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 21762306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS \ 21862306a36Sopenharmony_ci /*Delay*/}, \ 21962306a36Sopenharmony_ci {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 22062306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \ 22162306a36Sopenharmony_ci /*. 0x08[4] = 0 switch TSF to 40M*/}, \ 22262306a36Sopenharmony_ci {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 22362306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0 \ 22462306a36Sopenharmony_ci /*Polling 0x109[7]=0 TSF in 40M*/}, \ 22562306a36Sopenharmony_ci {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 22662306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6)|BIT(7), 0 \ 22762306a36Sopenharmony_ci /*. 0x29[7:6] = 2b'00 enable BB clock*/}, \ 22862306a36Sopenharmony_ci {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 22962306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1) \ 23062306a36Sopenharmony_ci /*. 0x101[1] = 1*/}, \ 23162306a36Sopenharmony_ci {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 23262306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \ 23362306a36Sopenharmony_ci /*. 0x100[7:0] = 0xFF enable WMAC TRX*/}, \ 23462306a36Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 23562306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1)|BIT(0), BIT(1)|BIT(0) \ 23662306a36Sopenharmony_ci /*. 0x02[1:0] = 2b'11 enable BB macro*/}, \ 23762306a36Sopenharmony_ci {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 23862306a36Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \ 23962306a36Sopenharmony_ci /*. 0x522 = 0*/}, 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci#define RTL8188EE_TRANS_END \ 24262306a36Sopenharmony_ci {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\ 24362306a36Sopenharmony_ci 0, PWR_CMD_END, 0, 0} 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_power_on_flow 24662306a36Sopenharmony_ci [RTL8188EE_TRANS_CARDEMU_TO_ACT_STEPS + 24762306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 24862306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_radio_off_flow 24962306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS + 25062306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 25162306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_card_disable_flow 25262306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS + 25362306a36Sopenharmony_ci RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS + 25462306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 25562306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_card_enable_flow 25662306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS + 25762306a36Sopenharmony_ci RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS + 25862306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 25962306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_suspend_flow 26062306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS + 26162306a36Sopenharmony_ci RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS + 26262306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 26362306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_resume_flow 26462306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS + 26562306a36Sopenharmony_ci RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS + 26662306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 26762306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_hwpdn_flow 26862306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS + 26962306a36Sopenharmony_ci RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS + 27062306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 27162306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_enter_lps_flow 27262306a36Sopenharmony_ci [RTL8188EE_TRANS_ACT_TO_LPS_STEPS + 27362306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 27462306a36Sopenharmony_ciextern struct wlan_pwr_cfg rtl8188ee_leave_lps_flow 27562306a36Sopenharmony_ci [RTL8188EE_TRANS_LPS_TO_ACT_STEPS + 27662306a36Sopenharmony_ci RTL8188EE_TRANS_END_STEPS]; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci/* RTL8723 Power Configuration CMDs for PCIe interface */ 27962306a36Sopenharmony_ci#define RTL8188EE_NIC_PWR_ON_FLOW rtl8188ee_power_on_flow 28062306a36Sopenharmony_ci#define RTL8188EE_NIC_RF_OFF_FLOW rtl8188ee_radio_off_flow 28162306a36Sopenharmony_ci#define RTL8188EE_NIC_DISABLE_FLOW rtl8188ee_card_disable_flow 28262306a36Sopenharmony_ci#define RTL8188EE_NIC_ENABLE_FLOW rtl8188ee_card_enable_flow 28362306a36Sopenharmony_ci#define RTL8188EE_NIC_SUSPEND_FLOW rtl8188ee_suspend_flow 28462306a36Sopenharmony_ci#define RTL8188EE_NIC_RESUME_FLOW rtl8188ee_resume_flow 28562306a36Sopenharmony_ci#define RTL8188EE_NIC_PDN_FLOW rtl8188ee_hwpdn_flow 28662306a36Sopenharmony_ci#define RTL8188EE_NIC_LPS_ENTER_FLOW rtl8188ee_enter_lps_flow 28762306a36Sopenharmony_ci#define RTL8188EE_NIC_LPS_LEAVE_FLOW rtl8188ee_leave_lps_flow 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci#endif 290