0001
0002
0003
0004 #ifndef __RTL8821AE_PWRSEQ_H__
0005 #define __RTL8821AE_PWRSEQ_H__
0006
0007 #include "../pwrseqcmd.h"
0008 #include "../btcoexist/halbt_precomp.h"
0009
0010 #define RTL8812_TRANS_CARDEMU_TO_ACT_STEPS 15
0011 #define RTL8812_TRANS_ACT_TO_CARDEMU_STEPS 15
0012 #define RTL8812_TRANS_CARDEMU_TO_SUS_STEPS 15
0013 #define RTL8812_TRANS_SUS_TO_CARDEMU_STEPS 15
0014 #define RTL8812_TRANS_CARDEMU_TO_PDN_STEPS 25
0015 #define RTL8812_TRANS_PDN_TO_CARDEMU_STEPS 15
0016 #define RTL8812_TRANS_ACT_TO_LPS_STEPS 15
0017 #define RTL8812_TRANS_LPS_TO_ACT_STEPS 15
0018 #define RTL8812_TRANS_END_STEPS 1
0019
0020
0021
0022
0023
0024 #define RTL8812_TRANS_CARDEMU_TO_ACT \
0025 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0026 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT2, 0 \
0027 }, \
0028 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0029 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, BIT1 \
0030 }, \
0031 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0032 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0 \
0033 }, \
0034 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0035 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3, 0 \
0036 }, \
0037 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0038 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0039 }, \
0040 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0041 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT0, 0},
0042
0043 #define RTL8812_TRANS_ACT_TO_CARDEMU \
0044 {0x0c00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0045 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x04 \
0046 }, \
0047 {0x0e00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0048 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x04 \
0049 }, \
0050 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0051 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0052 }, \
0053 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0054 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US \
0055 }, \
0056 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0057 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0058 }, \
0059 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0060 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x2A \
0061 }, \
0062 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0063 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x02, 0 \
0064 }, \
0065 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0066 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0067 }, \
0068 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0069 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, 0 \
0070 },
0071
0072 #define RTL8812_TRANS_CARDEMU_TO_SUS \
0073 {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0074 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xF0, 0xc0}, \
0075 {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0076 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xF0, 0xE0}, \
0077 {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0078 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x07 \
0079 }, \
0080 {0x0045, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0081 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0082 }, \
0083 {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0084 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xff \
0085 }, \
0086 {0x0047, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0087 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0088 }, \
0089 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0090 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0091 }, \
0092 {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0093 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x80, BIT7 \
0094 }, \
0095 {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0096 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x01, BIT0 \
0097 }, \
0098 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0099 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x10, BIT4 \
0100 }, \
0101 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0102 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x02, 0 \
0103 }, \
0104 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0105 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3, BIT3 \
0106 },
0107
0108 #define RTL8812_TRANS_SUS_TO_CARDEMU \
0109 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0110 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3, 0 \
0111 }, \
0112 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0113 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x10, 0 \
0114 }, \
0115 {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0116 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x01, 0 \
0117 }, \
0118 {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0119 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x80, 0 \
0120 }, \
0121 {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0122 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0123 }, \
0124 {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0125 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0126 },
0127
0128 #define RTL8812_TRANS_CARDEMU_TO_CARDDIS \
0129 {0x0003, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0130 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT2, 0 \
0131 }, \
0132 {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0133 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x05 \
0134 }, \
0135 {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0136 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xF0, 0xcc}, \
0137 {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0138 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xF0, 0xEC}, \
0139 {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0140 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x07 \
0141 }, \
0142 {0x0045, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0143 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0144 }, \
0145 {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0146 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xff \
0147 }, \
0148 {0x0047, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0149 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0150 }, \
0151 {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0152 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x80, BIT7 \
0153 }, \
0154 {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0155 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x01, BIT0 \
0156 }, \
0157 {0x0012, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0158 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x01, 0 \
0159 }, \
0160 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0161 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x10, BIT4 \
0162 }, \
0163 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0164 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x02, 0 \
0165 }, \
0166 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0167 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20 \
0168 }, \
0169 {0x001f, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0170 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0171 }, \
0172 {0x0076, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0173 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0174 }, \
0175 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0176 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3, BIT3 \
0177 },
0178
0179 #define RTL8812_TRANS_CARDDIS_TO_CARDEMU \
0180 {0x0012, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0181 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0182 }, \
0183 {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0184 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x80, 0 \
0185 }, \
0186 {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0187 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x01, 0 \
0188 }, \
0189 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0190 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0x10, 0 \
0191 }, \
0192 {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0193 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0194 }, \
0195 {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0196 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0197 }, \
0198 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0199 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT2, 0 \
0200 }, \
0201 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0202 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3, 0 \
0203 }, \
0204 {0x0003, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0205 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT2, BIT2 \
0206 }, \
0207 {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0208 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0209 },
0210
0211 #define RTL8812_TRANS_CARDEMU_TO_PDN \
0212 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0213 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7 \
0214 },
0215
0216 #define RTL8812_TRANS_PDN_TO_CARDEMU \
0217 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0218 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0 \
0219 },
0220
0221 #define RTL8812_TRANS_ACT_TO_LPS \
0222 {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0223 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \
0224 }, \
0225 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0226 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F \
0227 }, \
0228 {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0229 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0230 }, \
0231 {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0232 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0233 }, \
0234 {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0235 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0236 }, \
0237 {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0238 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0239 }, \
0240 {0x0c00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0241 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x04 \
0242 }, \
0243 {0x0e00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0244 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x04 \
0245 }, \
0246 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0247 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0248 }, \
0249 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0250 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US \
0251 }, \
0252 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0253 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0254 }, \
0255 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0256 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x03 \
0257 }, \
0258 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0259 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0260 }, \
0261 {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0262 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, BIT5 \
0263 },
0264
0265 #define RTL8812_TRANS_LPS_TO_ACT \
0266 {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0267 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84 \
0268 }, \
0269 {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0270 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \
0271 }, \
0272 {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0273 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \
0274 }, \
0275 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0276 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS \
0277 }, \
0278 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0279 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0 \
0280 }, \
0281 {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0282 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT7, 0 \
0283 }, \
0284 {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0285 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6|BIT7, 0 \
0286 }, \
0287 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0288 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0289 }, \
0290 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0291 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \
0292 }, \
0293 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0294 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0 \
0295 }, \
0296 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0297 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0298 },
0299
0300 #define RTL8812_TRANS_END \
0301 {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0302 0, PWR_CMD_END, 0, 0},
0303
0304 extern struct wlan_pwr_cfg rtl8812_power_on_flow
0305 [RTL8812_TRANS_CARDEMU_TO_ACT_STEPS +
0306 RTL8812_TRANS_END_STEPS];
0307 extern struct wlan_pwr_cfg rtl8812_radio_off_flow
0308 [RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
0309 RTL8812_TRANS_END_STEPS];
0310 extern struct wlan_pwr_cfg rtl8812_card_disable_flow
0311 [RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
0312 RTL8812_TRANS_CARDEMU_TO_PDN_STEPS +
0313 RTL8812_TRANS_END_STEPS];
0314 extern struct wlan_pwr_cfg rtl8812_card_enable_flow
0315 [RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
0316 RTL8812_TRANS_CARDEMU_TO_PDN_STEPS +
0317 RTL8812_TRANS_END_STEPS];
0318 extern struct wlan_pwr_cfg rtl8812_suspend_flow
0319 [RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
0320 RTL8812_TRANS_CARDEMU_TO_SUS_STEPS +
0321 RTL8812_TRANS_END_STEPS];
0322 extern struct wlan_pwr_cfg rtl8812_resume_flow
0323 [RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
0324 RTL8812_TRANS_CARDEMU_TO_SUS_STEPS +
0325 RTL8812_TRANS_END_STEPS];
0326 extern struct wlan_pwr_cfg rtl8812_hwpdn_flow
0327 [RTL8812_TRANS_ACT_TO_CARDEMU_STEPS +
0328 RTL8812_TRANS_CARDEMU_TO_PDN_STEPS +
0329 RTL8812_TRANS_END_STEPS];
0330 extern struct wlan_pwr_cfg rtl8812_enter_lps_flow
0331 [RTL8812_TRANS_ACT_TO_LPS_STEPS +
0332 RTL8812_TRANS_END_STEPS];
0333 extern struct wlan_pwr_cfg rtl8812_leave_lps_flow
0334 [RTL8812_TRANS_LPS_TO_ACT_STEPS +
0335 RTL8812_TRANS_END_STEPS];
0336
0337
0338
0339
0340
0341
0342
0343
0344
0345
0346
0347
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357 #define RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS 25
0358 #define RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS 15
0359 #define RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS 15
0360 #define RTL8821A_TRANS_SUS_TO_CARDEMU_STEPS 15
0361 #define RTL8821A_TRANS_CARDDIS_TO_CARDEMU_STEPS 15
0362 #define RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS 15
0363 #define RTL8821A_TRANS_PDN_TO_CARDEMU_STEPS 15
0364 #define RTL8821A_TRANS_ACT_TO_LPS_STEPS 15
0365 #define RTL8821A_TRANS_LPS_TO_ACT_STEPS 15
0366 #define RTL8821A_TRANS_END_STEPS 1
0367
0368 #define RTL8821A_TRANS_CARDEMU_TO_ACT \
0369 {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0370 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0371 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0372 }, \
0373 {0x0067, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0374 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0375 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0 \
0376 }, \
0377 {0x0001, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0378 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0379 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 1, PWRSEQ_DELAY_MS \
0380 }, \
0381 {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0382 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0383 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, 0 \
0384 }, \
0385 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0386 PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT4|BIT3|BIT2), 0 \
0387 }, \
0388 {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0389 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0 , BIT0 \
0390 }, \
0391 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0392 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, BIT1 \
0393 }, \
0394 {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0395 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0 , 0 \
0396 }, \
0397 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0398 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0399 }, \
0400 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0401 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0 \
0402 }, \
0403 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0404 PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT4|BIT3), 0 \
0405 }, \
0406 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0407 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0408 }, \
0409 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0410 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT0, 0 \
0411 }, \
0412 {0x004F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0413 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0414 },\
0415 {0x0067, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0416 PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT5|BIT4), (BIT5|BIT4) \
0417
0418 },\
0419 {0x0025, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0420 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6, 0 \
0421 },\
0422 {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0423 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0424 },\
0425 {0x0063, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0426 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0427 },\
0428 {0x0062, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0429 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0430 },\
0431 {0x0058, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0432 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, BIT0 \
0433 },\
0434 {0x005A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0435 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0436 },\
0437 {0x007A, PWR_CUT_TESTCHIP_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0438 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3A \
0439 },\
0440 {0x002E, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0441 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF , 0x82 \
0442 }, \
0443 {0x0010, PWR_CUT_A_MSK , PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0444 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6 , BIT6 \
0445 },
0446
0447 #define RTL8821A_TRANS_ACT_TO_CARDEMU \
0448 {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0449 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0450 }, \
0451 {0x004F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0452 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0453
0454 },\
0455 {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0456 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0457 }, \
0458 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0459 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0460 }, \
0461 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0462 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT1, 0 \
0463 }, \
0464 {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0465 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0466 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, BIT5 \
0467 }, \
0468 {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0469 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0470 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0471 },
0472
0473 #define RTL8821A_TRANS_CARDEMU_TO_SUS \
0474 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0475 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4|BIT3, (BIT4|BIT3) \
0476 }, \
0477 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0478 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0479 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3 \
0480 }, \
0481 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0482 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4 \
0483 }, \
0484 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0485 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20 \
0486 }, \
0487 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0488 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3|BIT4 \
0489 }, \
0490 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0491 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0 \
0492 }, \
0493 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0494 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0 \
0495 },
0496
0497 #define RTL8821A_TRANS_SUS_TO_CARDEMU \
0498 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0499 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3 | BIT7, 0 \
0500 }, \
0501 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0502 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0 \
0503 }, \
0504 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0505 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1 \
0506 },\
0507 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0508 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0 \
0509 }, \
0510 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0511 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0 \
0512 },
0513
0514 #define RTL8821A_TRANS_CARDEMU_TO_CARDDIS \
0515 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0516 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20 \
0517 }, \
0518 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0519 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,\
0520 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, BIT3 \
0521 }, \
0522 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0523 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT2, BIT2 \
0524 }, \
0525 {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0526 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 1 \
0527 }, \
0528 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0529 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4 \
0530 }, \
0531 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0532 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, BIT0 \
0533 }, \
0534 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0535 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, 0 \
0536 },
0537
0538 #define RTL8821A_TRANS_CARDDIS_TO_CARDEMU \
0539 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0540 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3 | BIT7, 0 \
0541 }, \
0542 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0543 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT0, 0 \
0544 }, \
0545 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0546 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT1, BIT1 \
0547 },\
0548 {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0549 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0550 }, \
0551 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0552 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT3|BIT4, 0 \
0553 },\
0554 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0555 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0 \
0556 }, \
0557 {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0558 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0559 },
0560
0561 #define RTL8821A_TRANS_CARDEMU_TO_PDN \
0562 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0563 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, BIT4 \
0564 }, \
0565 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0566 PWR_INTF_SDIO_MSK|PWR_INTF_USB_MSK,\
0567 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20 \
0568 }, \
0569 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0570 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0571 },\
0572 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0573 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, BIT7 \
0574 },
0575
0576 #define RTL8821A_TRANS_PDN_TO_CARDEMU \
0577 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0578 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT7, 0 \
0579 },
0580
0581 #define RTL8821A_TRANS_ACT_TO_LPS \
0582 {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0583 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \
0584 }, \
0585 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0586 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \
0587 }, \
0588 {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0589 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0590 }, \
0591 {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0592 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0593 }, \
0594 {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0595 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0596 }, \
0597 {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0598 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0599 }, \
0600 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0601 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT0, 0 \
0602 }, \
0603 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0604 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US \
0605 }, \
0606 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0607 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0608 }, \
0609 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0610 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x03 \
0611 }, \
0612 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0613 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, 0 \
0614 }, \
0615 {0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0616 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00 \
0617 }, \
0618 {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0619 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT5, BIT5 \
0620 },
0621
0622 #define RTL8821A_TRANS_LPS_TO_ACT \
0623 {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,\
0624 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84 \
0625 },\
0626 {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,\
0627 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \
0628 },\
0629 {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,\
0630 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \
0631 },\
0632 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0633 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS \
0634 },\
0635 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0636 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT4, 0 \
0637 },\
0638 {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0639 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT7, 0 \
0640 },\
0641 {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0642 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT6|BIT7, 0 \
0643 },\
0644 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0645 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1, BIT1 \
0646 },\
0647 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0648 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \
0649 },\
0650 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0651 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0 \
0652 },\
0653 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0654 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0655 },
0656
0657 #define RTL8821A_TRANS_END \
0658 {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0659 0, PWR_CMD_END, 0, 0},
0660
0661 extern struct wlan_pwr_cfg rtl8821A_power_on_flow
0662 [RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS +
0663 RTL8821A_TRANS_END_STEPS];
0664 extern struct wlan_pwr_cfg rtl8821A_radio_off_flow
0665 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS +
0666 RTL8821A_TRANS_END_STEPS];
0667 extern struct wlan_pwr_cfg rtl8821A_card_disable_flow
0668 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS +
0669 RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS +
0670 RTL8821A_TRANS_END_STEPS];
0671 extern struct wlan_pwr_cfg rtl8821A_card_enable_flow
0672 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS +
0673 RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS +
0674 RTL8821A_TRANS_END_STEPS];
0675 extern struct wlan_pwr_cfg rtl8821A_suspend_flow
0676 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS +
0677 RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS +
0678 RTL8821A_TRANS_END_STEPS];
0679 extern struct wlan_pwr_cfg rtl8821A_resume_flow
0680 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS +
0681 RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS +
0682 RTL8821A_TRANS_END_STEPS];
0683 extern struct wlan_pwr_cfg rtl8821A_hwpdn_flow
0684 [RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS +
0685 RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS +
0686 RTL8821A_TRANS_END_STEPS];
0687 extern struct wlan_pwr_cfg rtl8821A_enter_lps_flow
0688 [RTL8821A_TRANS_ACT_TO_LPS_STEPS +
0689 RTL8821A_TRANS_END_STEPS];
0690 extern struct wlan_pwr_cfg rtl8821A_leave_lps_flow
0691 [RTL8821A_TRANS_LPS_TO_ACT_STEPS +
0692 RTL8821A_TRANS_END_STEPS];
0693
0694
0695 #define RTL8812_NIC_PWR_ON_FLOW rtl8812_power_on_flow
0696 #define RTL8812_NIC_RF_OFF_FLOW rtl8812_radio_off_flow
0697 #define RTL8812_NIC_DISABLE_FLOW rtl8812_card_disable_flow
0698 #define RTL8812_NIC_ENABLE_FLOW rtl8812_card_enable_flow
0699 #define RTL8812_NIC_SUSPEND_FLOW rtl8812_suspend_flow
0700 #define RTL8812_NIC_RESUME_FLOW rtl8812_resume_flow
0701 #define RTL8812_NIC_PDN_FLOW rtl8812_hwpdn_flow
0702 #define RTL8812_NIC_LPS_ENTER_FLOW rtl8812_enter_lps_flow
0703 #define RTL8812_NIC_LPS_LEAVE_FLOW rtl8812_leave_lps_flow
0704
0705
0706 #define RTL8821A_NIC_PWR_ON_FLOW rtl8821A_power_on_flow
0707 #define RTL8821A_NIC_RF_OFF_FLOW rtl8821A_radio_off_flow
0708 #define RTL8821A_NIC_DISABLE_FLOW rtl8821A_card_disable_flow
0709 #define RTL8821A_NIC_ENABLE_FLOW rtl8821A_card_enable_flow
0710 #define RTL8821A_NIC_SUSPEND_FLOW rtl8821A_suspend_flow
0711 #define RTL8821A_NIC_RESUME_FLOW rtl8821A_resume_flow
0712 #define RTL8821A_NIC_PDN_FLOW rtl8821A_hwpdn_flow
0713 #define RTL8821A_NIC_LPS_ENTER_FLOW rtl8821A_enter_lps_flow
0714 #define RTL8821A_NIC_LPS_LEAVE_FLOW rtl8821A_leave_lps_flow
0715
0716 #endif