0001
0002
0003
0004 #ifndef __RTL8723E_PWRSEQ_H__
0005 #define __RTL8723E_PWRSEQ_H__
0006
0007 #include "../pwrseqcmd.h"
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #define RTL8188EE_TRANS_CARDEMU_TO_ACT_STEPS 10
0031 #define RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS 10
0032 #define RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS 10
0033 #define RTL8188EE_TRANS_SUS_TO_CARDEMU_STEPS 10
0034 #define RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS 10
0035 #define RTL8188EE_TRANS_PDN_TO_CARDEMU_STEPS 10
0036 #define RTL8188EE_TRANS_ACT_TO_LPS_STEPS 15
0037 #define RTL8188EE_TRANS_LPS_TO_ACT_STEPS 15
0038 #define RTL8188EE_TRANS_END_STEPS 1
0039
0040
0041
0042
0043
0044 #define RTL8188EE_TRANS_CARDEMU_TO_ACT \
0045 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0046 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1) \
0047 }, \
0048 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0049 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0)|BIT(1), 0 \
0050 }, \
0051 {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0052 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7) \
0053 }, \
0054 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0055 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0 \
0056 }, \
0057 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0058 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4)|BIT(3), 0 \
0059 }, \
0060 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0061 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0) \
0062 }, \
0063 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0064 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(0), 0 \
0065 }, \
0066 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0067 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \
0068 }, \
0069 {0x0074, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0070 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \
0071 },
0072
0073 #define RTL8188EE_TRANS_ACT_TO_CARDEMU \
0074 {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0075 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0076 }, \
0077 {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0078 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \
0079 }, \
0080 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0081 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1) \
0082 }, \
0083 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0084 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0 \
0085 },
0086
0087 #define RTL8188EE_TRANS_CARDEMU_TO_SUS \
0088 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0089 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0090 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3) \
0091 }, \
0092 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \
0093 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)|BIT(4) \
0094 }, \
0095 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0096 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0097 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, BIT(7) \
0098 },\
0099 {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0100 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0101 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \
0102 }, \
0103 {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0104 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0105 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \
0106 }, \
0107 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0108 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0) \
0109 }, \
0110 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0111 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0 \
0112 },
0113
0114 #define RTL8188EE_TRANS_SUS_TO_CARDEMU \
0115 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0116 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0 \
0117 }, \
0118 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0119 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1) \
0120 }, \
0121 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0122 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0 \
0123 },
0124
0125 #define RTL8188EE_TRANS_CARDEMU_TO_CARDDIS \
0126 {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0127 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7) \
0128 }, \
0129 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0130 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0131 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) \
0132 }, \
0133 {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0134 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0135 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0136 },\
0137 {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \
0138 PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, \
0139 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \
0140 }, \
0141 {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \
0142 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4) \
0143 }, \
0144 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0145 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0) \
0146 }, \
0147 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0148 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0 \
0149 },
0150
0151 #define RTL8188EE_TRANS_CARDDIS_TO_CARDEMU \
0152 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0153 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0 \
0154 }, \
0155 {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0156 PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1) \
0157 }, \
0158 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0159 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0 \
0160 },
0161
0162 #define RTL8188EE_TRANS_CARDEMU_TO_PDN \
0163 {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0164 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \
0165 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0166 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7) \
0167 },
0168
0169 #define RTL8188EE_TRANS_PDN_TO_CARDEMU \
0170 {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0171 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0},
0172
0173 #define RTL8188EE_TRANS_ACT_TO_LPS \
0174 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0175 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F \
0176 }, \
0177 {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0178 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0179 }, \
0180 {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0181 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0182 }, \
0183 {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0184 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0185 }, \
0186 {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0187 PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0 \
0188 }, \
0189 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0190 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0 \
0191 }, \
0192 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0193 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US \
0194 }, \
0195 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0196 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F \
0197 }, \
0198 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0199 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0 \
0200 }, \
0201 {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0202 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5) \
0203 },
0204
0205
0206 #define RTL8188EE_TRANS_LPS_TO_ACT \
0207 {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \
0208 PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84 \
0209 }, \
0210 {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \
0211 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \
0212 }, \
0213 {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \
0214 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84 \
0215 }, \
0216 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0217 PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS \
0218 }, \
0219 {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0220 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0 \
0221 }, \
0222 {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0223 PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0 \
0224 }, \
0225 {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0226 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6)|BIT(7), 0 \
0227 }, \
0228 {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0229 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1) \
0230 }, \
0231 {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0232 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF \
0233 }, \
0234 {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0235 PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1)|BIT(0), BIT(1)|BIT(0) \
0236 }, \
0237 {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \
0238 PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0 \
0239 },
0240
0241 #define RTL8188EE_TRANS_END \
0242 {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\
0243 0, PWR_CMD_END, 0, 0}
0244
0245 extern struct wlan_pwr_cfg rtl8188ee_power_on_flow
0246 [RTL8188EE_TRANS_CARDEMU_TO_ACT_STEPS +
0247 RTL8188EE_TRANS_END_STEPS];
0248 extern struct wlan_pwr_cfg rtl8188ee_radio_off_flow
0249 [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
0250 RTL8188EE_TRANS_END_STEPS];
0251 extern struct wlan_pwr_cfg rtl8188ee_card_disable_flow
0252 [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
0253 RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS +
0254 RTL8188EE_TRANS_END_STEPS];
0255 extern struct wlan_pwr_cfg rtl8188ee_card_enable_flow
0256 [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
0257 RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS +
0258 RTL8188EE_TRANS_END_STEPS];
0259 extern struct wlan_pwr_cfg rtl8188ee_suspend_flow
0260 [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
0261 RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS +
0262 RTL8188EE_TRANS_END_STEPS];
0263 extern struct wlan_pwr_cfg rtl8188ee_resume_flow
0264 [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
0265 RTL8188EE_TRANS_CARDEMU_TO_SUS_STEPS +
0266 RTL8188EE_TRANS_END_STEPS];
0267 extern struct wlan_pwr_cfg rtl8188ee_hwpdn_flow
0268 [RTL8188EE_TRANS_ACT_TO_CARDEMU_STEPS +
0269 RTL8188EE_TRANS_CARDEMU_TO_PDN_STEPS +
0270 RTL8188EE_TRANS_END_STEPS];
0271 extern struct wlan_pwr_cfg rtl8188ee_enter_lps_flow
0272 [RTL8188EE_TRANS_ACT_TO_LPS_STEPS +
0273 RTL8188EE_TRANS_END_STEPS];
0274 extern struct wlan_pwr_cfg rtl8188ee_leave_lps_flow
0275 [RTL8188EE_TRANS_LPS_TO_ACT_STEPS +
0276 RTL8188EE_TRANS_END_STEPS];
0277
0278
0279 #define RTL8188EE_NIC_PWR_ON_FLOW rtl8188ee_power_on_flow
0280 #define RTL8188EE_NIC_RF_OFF_FLOW rtl8188ee_radio_off_flow
0281 #define RTL8188EE_NIC_DISABLE_FLOW rtl8188ee_card_disable_flow
0282 #define RTL8188EE_NIC_ENABLE_FLOW rtl8188ee_card_enable_flow
0283 #define RTL8188EE_NIC_SUSPEND_FLOW rtl8188ee_suspend_flow
0284 #define RTL8188EE_NIC_RESUME_FLOW rtl8188ee_resume_flow
0285 #define RTL8188EE_NIC_PDN_FLOW rtl8188ee_hwpdn_flow
0286 #define RTL8188EE_NIC_LPS_ENTER_FLOW rtl8188ee_enter_lps_flow
0287 #define RTL8188EE_NIC_LPS_LEAVE_FLOW rtl8188ee_leave_lps_flow
0288
0289 #endif