18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* Copyright(c) 2009-2014 Realtek Corporation.*/ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#ifndef __RTL8723BE_PWRSEQ_H__ 58c2ecf20Sopenharmony_ci#define __RTL8723BE_PWRSEQ_H__ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include "../pwrseqcmd.h" 88c2ecf20Sopenharmony_ci/** 98c2ecf20Sopenharmony_ci * Check document WM-20130425-JackieLau-RTL8723B_Power_Architecture v05.vsd 108c2ecf20Sopenharmony_ci * There are 6 HW Power States: 118c2ecf20Sopenharmony_ci * 0: POFF--Power Off 128c2ecf20Sopenharmony_ci * 1: PDN--Power Down 138c2ecf20Sopenharmony_ci * 2: CARDEMU--Card Emulation 148c2ecf20Sopenharmony_ci * 3: ACT--Active Mode 158c2ecf20Sopenharmony_ci * 4: LPS--Low Power State 168c2ecf20Sopenharmony_ci * 5: SUS--Suspend 178c2ecf20Sopenharmony_ci * 188c2ecf20Sopenharmony_ci * The transision from different states are defined below 198c2ecf20Sopenharmony_ci * TRANS_CARDEMU_TO_ACT 208c2ecf20Sopenharmony_ci * TRANS_ACT_TO_CARDEMU 218c2ecf20Sopenharmony_ci * TRANS_CARDEMU_TO_SUS 228c2ecf20Sopenharmony_ci * TRANS_SUS_TO_CARDEMU 238c2ecf20Sopenharmony_ci * TRANS_CARDEMU_TO_PDN 248c2ecf20Sopenharmony_ci * TRANS_ACT_TO_LPS 258c2ecf20Sopenharmony_ci * TRANS_LPS_TO_ACT 268c2ecf20Sopenharmony_ci * 278c2ecf20Sopenharmony_ci * TRANS_END 288c2ecf20Sopenharmony_ci */ 298c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_ACT_STEPS 23 308c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS 15 318c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS 15 328c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_SUS_TO_CARDEMU_STEPS 15 338c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS 15 348c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_PDN_TO_CARDEMU_STEPS 15 358c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_ACT_TO_LPS_STEPS 15 368c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_LPS_TO_ACT_STEPS 15 378c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_END_STEPS 1 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_ACT \ 408c2ecf20Sopenharmony_ci /* format */ \ 418c2ecf20Sopenharmony_ci /* comments here */ \ 428c2ecf20Sopenharmony_ci /* {offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value}, */\ 438c2ecf20Sopenharmony_ci /*0x20[0] = 1b'1 enable LDOA12 MACRO block for all interface*/ \ 448c2ecf20Sopenharmony_ci {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 458c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ 468c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 478c2ecf20Sopenharmony_ci /*0x67[0] = 0 to disable BT_GPS_SEL pins*/ \ 488c2ecf20Sopenharmony_ci {0x0067, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 498c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ 508c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ 518c2ecf20Sopenharmony_ci /*Delay 1ms*/ \ 528c2ecf20Sopenharmony_ci {0x0001, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 538c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ 548c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_DELAY, 1, PWRSEQ_DELAY_MS}, \ 558c2ecf20Sopenharmony_ci /*0x00[5] = 1b'0 release analog Ips to digital ,1:isolation*/ \ 568c2ecf20Sopenharmony_ci {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 578c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ 588c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), 0}, \ 598c2ecf20Sopenharmony_ci /* disable SW LPS 0x04[10]=0 and WLSUS_EN 0x04[11]=0*/ \ 608c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 618c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT(4)|BIT(3)|BIT(2)), 0}, \ 628c2ecf20Sopenharmony_ci /* Disable USB suspend */ \ 638c2ecf20Sopenharmony_ci {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 648c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0) , BIT(0)}, \ 658c2ecf20Sopenharmony_ci /* wait till 0x04[17] = 1 power ready*/ \ 668c2ecf20Sopenharmony_ci {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 678c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ 688c2ecf20Sopenharmony_ci /* Enable USB suspend */ \ 698c2ecf20Sopenharmony_ci {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 708c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0) , 0}, \ 718c2ecf20Sopenharmony_ci /* release WLON reset 0x04[16]=1*/ \ 728c2ecf20Sopenharmony_ci {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 738c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 748c2ecf20Sopenharmony_ci /* disable HWPDN 0x04[15]=0*/ \ 758c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 768c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, \ 778c2ecf20Sopenharmony_ci /* disable WL suspend*/ \ 788c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 798c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT(4)|BIT(3)), 0}, \ 808c2ecf20Sopenharmony_ci /* polling until return 0*/ \ 818c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 828c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 838c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 848c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(0), 0}, \ 858c2ecf20Sopenharmony_ci /* Enable WL control XTAL setting*/ \ 868c2ecf20Sopenharmony_ci {0x0010, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 878c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6), BIT(6)}, \ 888c2ecf20Sopenharmony_ci /*Enable falling edge triggering interrupt*/ \ 898c2ecf20Sopenharmony_ci {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 908c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 918c2ecf20Sopenharmony_ci /*Enable GPIO9 interrupt mode*/ \ 928c2ecf20Sopenharmony_ci {0x0063, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 938c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 948c2ecf20Sopenharmony_ci /*Enable GPIO9 input mode*/ \ 958c2ecf20Sopenharmony_ci {0x0062, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 968c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ 978c2ecf20Sopenharmony_ci /*Enable HSISR GPIO[C:0] interrupt*/ \ 988c2ecf20Sopenharmony_ci {0x0058, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 998c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 1008c2ecf20Sopenharmony_ci /*Enable HSISR GPIO9 interrupt*/ \ 1018c2ecf20Sopenharmony_ci {0x005A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1028c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 1038c2ecf20Sopenharmony_ci /*For GPIO9 internal pull high setting by test chip*/ \ 1048c2ecf20Sopenharmony_ci {0x0068, PWR_CUT_TESTCHIP_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\ 1058c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3), BIT(3)}, \ 1068c2ecf20Sopenharmony_ci /*For GPIO9 internal pull high setting*/ \ 1078c2ecf20Sopenharmony_ci {0x0069, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1088c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6), BIT(6)}, 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_ACT_TO_CARDEMU \ 1118c2ecf20Sopenharmony_ci /* format */ \ 1128c2ecf20Sopenharmony_ci /* comments here */ \ 1138c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 1148c2ecf20Sopenharmony_ci /*0x1F[7:0] = 0 turn off RF*/ \ 1158c2ecf20Sopenharmony_ci {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1168c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, \ 1178c2ecf20Sopenharmony_ci /*0x4C[24] = 0x4F[0] = 0, */ \ 1188c2ecf20Sopenharmony_ci /*switch DPDT_SEL_P output from register 0x65[2] */ \ 1198c2ecf20Sopenharmony_ci {0x004F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1208c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ 1218c2ecf20Sopenharmony_ci /*Enable rising edge triggering interrupt*/ \ 1228c2ecf20Sopenharmony_ci {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1238c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ 1248c2ecf20Sopenharmony_ci /*0x04[9] = 1 turn off MAC by HW state machine*/ \ 1258c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1268c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 1278c2ecf20Sopenharmony_ci /*wait till 0x04[9] = 0 polling until return 0 to disable*/ \ 1288c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1298c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0}, \ 1308c2ecf20Sopenharmony_ci /* Enable BT control XTAL setting*/ \ 1318c2ecf20Sopenharmony_ci {0x0010, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1328c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6), 0}, \ 1338c2ecf20Sopenharmony_ci /*0x00[5] = 1b'1 analog Ips to digital ,1:isolation*/ \ 1348c2ecf20Sopenharmony_ci {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 1358c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ 1368c2ecf20Sopenharmony_ci PWR_CMD_WRITE, BIT(5), BIT(5)}, \ 1378c2ecf20Sopenharmony_ci /*0x20[0] = 1b'0 disable LDOA12 MACRO block*/ \ 1388c2ecf20Sopenharmony_ci {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 1398c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ 1408c2ecf20Sopenharmony_ci PWR_CMD_WRITE, BIT(0), 0}, 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_SUS \ 1438c2ecf20Sopenharmony_ci /* format */ \ 1448c2ecf20Sopenharmony_ci /* comments here */ \ 1458c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value },*/\ 1468c2ecf20Sopenharmony_ci /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ \ 1478c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 1488c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4) | BIT(3), (BIT(4) | BIT(3))}, \ 1498c2ecf20Sopenharmony_ci /*0x04[12:11] = 2b'01 enable WL suspend*/ \ 1508c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 1518c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ 1528c2ecf20Sopenharmony_ci PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ 1538c2ecf20Sopenharmony_ci /*0x23[4] = 1b'1 12H LDO enter sleep mode*/ \ 1548c2ecf20Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1558c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ 1568c2ecf20Sopenharmony_ci /*0x07[7:0] = 0x20 SDIO SOP option to disable BG/MB/ACK/SWR*/ \ 1578c2ecf20Sopenharmony_ci {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1588c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20}, \ 1598c2ecf20Sopenharmony_ci /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ \ 1608c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 1618c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)},\ 1628c2ecf20Sopenharmony_ci /*Set SDIO suspend local register*/ \ 1638c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1648c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 1658c2ecf20Sopenharmony_ci /*wait power state to suspend*/ \ 1668c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1678c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_SUS_TO_CARDEMU \ 1708c2ecf20Sopenharmony_ci /* format */ \ 1718c2ecf20Sopenharmony_ci /* comments here */ \ 1728c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 1738c2ecf20Sopenharmony_ci /*clear suspend enable and power down enable*/ \ 1748c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1758c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(7), 0}, \ 1768c2ecf20Sopenharmony_ci /*Set SDIO suspend local register*/ \ 1778c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1788c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ 1798c2ecf20Sopenharmony_ci /*wait power state to suspend*/ \ 1808c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1818c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ 1828c2ecf20Sopenharmony_ci /*0x23[4] = 1b'0 12H LDO enter normal mode*/ \ 1838c2ecf20Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1848c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ 1858c2ecf20Sopenharmony_ci /*0x04[12:11] = 2b'00 disable WL suspend*/ \ 1868c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 1878c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0}, 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_CARDDIS \ 1908c2ecf20Sopenharmony_ci /* format */ \ 1918c2ecf20Sopenharmony_ci /* comments here */ \ 1928c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 1938c2ecf20Sopenharmony_ci /*0x07=0x20 , SOP option to disable BG/MB*/ \ 1948c2ecf20Sopenharmony_ci {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 1958c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20}, \ 1968c2ecf20Sopenharmony_ci /*0x04[12:11] = 2b'01 enable WL suspend*/ \ 1978c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 1988c2ecf20Sopenharmony_ci PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ 1998c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)}, \ 2008c2ecf20Sopenharmony_ci /*0x04[10] = 1, enable SW LPS*/ \ 2018c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 2028c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(2), BIT(2)}, \ 2038c2ecf20Sopenharmony_ci /*0x48[16] = 1 to enable GPIO9 as EXT WAKEUP*/ \ 2048c2ecf20Sopenharmony_ci {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ 2058c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 1}, \ 2068c2ecf20Sopenharmony_ci /*0x23[4] = 1b'1 12H LDO enter sleep mode*/ \ 2078c2ecf20Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2088c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ 2098c2ecf20Sopenharmony_ci /*Set SDIO suspend local register*/ \ 2108c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2118c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ 2128c2ecf20Sopenharmony_ci /*wait power state to suspend*/ \ 2138c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2148c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDDIS_TO_CARDEMU \ 2178c2ecf20Sopenharmony_ci /* format */ \ 2188c2ecf20Sopenharmony_ci /* comments here */ \ 2198c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 2208c2ecf20Sopenharmony_ci /*clear suspend enable and power down enable*/ \ 2218c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2228c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(7), 0}, \ 2238c2ecf20Sopenharmony_ci /*Set SDIO suspend local register*/ \ 2248c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2258c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ 2268c2ecf20Sopenharmony_ci /*wait power state to suspend*/ \ 2278c2ecf20Sopenharmony_ci {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2288c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ 2298c2ecf20Sopenharmony_ci /*0x48[16] = 0 to disable GPIO9 as EXT WAKEUP*/ \ 2308c2ecf20Sopenharmony_ci {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ 2318c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ 2328c2ecf20Sopenharmony_ci /*0x04[12:11] = 2b'00 disable WL suspend*/ \ 2338c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2348c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0}, \ 2358c2ecf20Sopenharmony_ci /*0x23[4] = 1b'0 12H LDO enter normal mode*/ \ 2368c2ecf20Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2378c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ 2388c2ecf20Sopenharmony_ci /*PCIe DMA start*/ \ 2398c2ecf20Sopenharmony_ci {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 2408c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_CARDEMU_TO_PDN \ 2438c2ecf20Sopenharmony_ci /* format */ \ 2448c2ecf20Sopenharmony_ci /* comments here */ \ 2458c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 2468c2ecf20Sopenharmony_ci /*0x23[4] = 1b'1 12H LDO enter sleep mode*/ \ 2478c2ecf20Sopenharmony_ci {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 2488c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ 2498c2ecf20Sopenharmony_ci /*0x07[7:0] = 0x20 SOP option to disable BG/MB/ACK/SWR*/ \ 2508c2ecf20Sopenharmony_ci {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ 2518c2ecf20Sopenharmony_ci PWR_INTF_SDIO_MSK | PWR_INTF_USB_MSK, PWR_BASEADDR_MAC, \ 2528c2ecf20Sopenharmony_ci PWR_CMD_WRITE, 0xFF, 0x20}, \ 2538c2ecf20Sopenharmony_ci /* 0x04[16] = 0*/ \ 2548c2ecf20Sopenharmony_ci {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2558c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ 2568c2ecf20Sopenharmony_ci /* 0x04[15] = 1*/ \ 2578c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2588c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_PDN_TO_CARDEMU \ 2618c2ecf20Sopenharmony_ci /* format */ \ 2628c2ecf20Sopenharmony_ci /* comments here */ \ 2638c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 2648c2ecf20Sopenharmony_ci /* 0x04[15] = 0*/ \ 2658c2ecf20Sopenharmony_ci {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2668c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_ACT_TO_LPS \ 2698c2ecf20Sopenharmony_ci /* format */ \ 2708c2ecf20Sopenharmony_ci /* comments here */ \ 2718c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 2728c2ecf20Sopenharmony_ci /*PCIe DMA stop*/ \ 2738c2ecf20Sopenharmony_ci {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 2748c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ 2758c2ecf20Sopenharmony_ci /*Tx Pause*/ \ 2768c2ecf20Sopenharmony_ci {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2778c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ 2788c2ecf20Sopenharmony_ci /*Should be zero if no packet is transmitting*/ \ 2798c2ecf20Sopenharmony_ci {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2808c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ 2818c2ecf20Sopenharmony_ci /*Should be zero if no packet is transmitting*/ \ 2828c2ecf20Sopenharmony_ci {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2838c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ 2848c2ecf20Sopenharmony_ci /*Should be zero if no packet is transmitting*/ \ 2858c2ecf20Sopenharmony_ci {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2868c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ 2878c2ecf20Sopenharmony_ci /*Should be zero if no packet is transmitting*/ \ 2888c2ecf20Sopenharmony_ci {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2898c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ 2908c2ecf20Sopenharmony_ci /*CCK and OFDM are disabled,and clock are gated*/ \ 2918c2ecf20Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2928c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ 2938c2ecf20Sopenharmony_ci /*Delay 1us*/ \ 2948c2ecf20Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2958c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US}, \ 2968c2ecf20Sopenharmony_ci /*Whole BB is reset*/ \ 2978c2ecf20Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 2988c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ 2998c2ecf20Sopenharmony_ci /*Reset MAC TRX*/ \ 3008c2ecf20Sopenharmony_ci {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3018c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x03}, \ 3028c2ecf20Sopenharmony_ci /*check if removed later*/ \ 3038c2ecf20Sopenharmony_ci {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3048c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ 3058c2ecf20Sopenharmony_ci /*When driver enter Sus/ Disable, enable LOP for BT*/ \ 3068c2ecf20Sopenharmony_ci {0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 3078c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00}, \ 3088c2ecf20Sopenharmony_ci /*Respond TxOK to scheduler*/ \ 3098c2ecf20Sopenharmony_ci {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3108c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5)}, 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_LPS_TO_ACT \ 3138c2ecf20Sopenharmony_ci /* format */ \ 3148c2ecf20Sopenharmony_ci /* comments here */ \ 3158c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 3168c2ecf20Sopenharmony_ci /*SDIO RPWM*/ \ 3178c2ecf20Sopenharmony_ci {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ 3188c2ecf20Sopenharmony_ci PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84}, \ 3198c2ecf20Sopenharmony_ci /*USB RPWM*/ \ 3208c2ecf20Sopenharmony_ci {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ 3218c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, \ 3228c2ecf20Sopenharmony_ci /*PCIe RPWM*/ \ 3238c2ecf20Sopenharmony_ci {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ 3248c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, \ 3258c2ecf20Sopenharmony_ci /*Delay*/ \ 3268c2ecf20Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3278c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, \ 3288c2ecf20Sopenharmony_ci /*. 0x08[4] = 0 switch TSF to 40M*/ \ 3298c2ecf20Sopenharmony_ci {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3308c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ 3318c2ecf20Sopenharmony_ci /*Polling 0x109[7]=0 TSF in 40M*/ \ 3328c2ecf20Sopenharmony_ci {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3338c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0}, \ 3348c2ecf20Sopenharmony_ci /*. 0x29[7:6] = 2b'00 enable BB clock*/ \ 3358c2ecf20Sopenharmony_ci {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3368c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6)|BIT(7), 0}, \ 3378c2ecf20Sopenharmony_ci /*. 0x101[1] = 1*/ \ 3388c2ecf20Sopenharmony_ci {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3398c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ 3408c2ecf20Sopenharmony_ci /*. 0x100[7:0] = 0xFF enable WMAC TRX*/ \ 3418c2ecf20Sopenharmony_ci {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3428c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ 3438c2ecf20Sopenharmony_ci /*. 0x02[1:0] = 2b'11 enable BB macro*/ \ 3448c2ecf20Sopenharmony_ci {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3458c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)}, \ 3468c2ecf20Sopenharmony_ci /*. 0x522 = 0*/ \ 3478c2ecf20Sopenharmony_ci {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ 3488c2ecf20Sopenharmony_ci PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_ci#define RTL8723B_TRANS_END \ 3518c2ecf20Sopenharmony_ci /* format */ \ 3528c2ecf20Sopenharmony_ci /* comments here */ \ 3538c2ecf20Sopenharmony_ci /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, */\ 3548c2ecf20Sopenharmony_ci {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, 0, \ 3558c2ecf20Sopenharmony_ci PWR_CMD_END, 0, 0}, 3568c2ecf20Sopenharmony_ci 3578c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_power_on_flow 3588c2ecf20Sopenharmony_ci [RTL8723B_TRANS_CARDEMU_TO_ACT_STEPS + 3598c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3608c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_radio_off_flow 3618c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + 3628c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3638c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_card_disable_flow 3648c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + 3658c2ecf20Sopenharmony_ci RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + 3668c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3678c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_card_enable_flow 3688c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + 3698c2ecf20Sopenharmony_ci RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + 3708c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3718c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_suspend_flow 3728c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + 3738c2ecf20Sopenharmony_ci RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS + 3748c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3758c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_resume_flow 3768c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + 3778c2ecf20Sopenharmony_ci RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS + 3788c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3798c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_hwpdn_flow 3808c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + 3818c2ecf20Sopenharmony_ci RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + 3828c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3838c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_enter_lps_flow 3848c2ecf20Sopenharmony_ci [RTL8723B_TRANS_ACT_TO_LPS_STEPS + 3858c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3868c2ecf20Sopenharmony_ciextern struct wlan_pwr_cfg rtl8723B_leave_lps_flow 3878c2ecf20Sopenharmony_ci [RTL8723B_TRANS_LPS_TO_ACT_STEPS + 3888c2ecf20Sopenharmony_ci RTL8723B_TRANS_END_STEPS]; 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ci/* RTL8723 Power Configuration CMDs for PCIe interface */ 3918c2ecf20Sopenharmony_ci#define RTL8723_NIC_PWR_ON_FLOW rtl8723B_power_on_flow 3928c2ecf20Sopenharmony_ci#define RTL8723_NIC_RF_OFF_FLOW rtl8723B_radio_off_flow 3938c2ecf20Sopenharmony_ci#define RTL8723_NIC_DISABLE_FLOW rtl8723B_card_disable_flow 3948c2ecf20Sopenharmony_ci#define RTL8723_NIC_ENABLE_FLOW rtl8723B_card_enable_flow 3958c2ecf20Sopenharmony_ci#define RTL8723_NIC_SUSPEND_FLOW rtl8723B_suspend_flow 3968c2ecf20Sopenharmony_ci#define RTL8723_NIC_RESUME_FLOW rtl8723B_resume_flow 3978c2ecf20Sopenharmony_ci#define RTL8723_NIC_PDN_FLOW rtl8723B_hwpdn_flow 3988c2ecf20Sopenharmony_ci#define RTL8723_NIC_LPS_ENTER_FLOW rtl8723B_enter_lps_flow 3998c2ecf20Sopenharmony_ci#define RTL8723_NIC_LPS_LEAVE_FLOW rtl8723B_leave_lps_flow 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_ci#endif 402