1e3037485SYan-Hsuan Chuang /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2e3037485SYan-Hsuan Chuang /* Copyright(c) 2018-2019  Realtek Corporation
3e3037485SYan-Hsuan Chuang  */
4e3037485SYan-Hsuan Chuang 
5e3037485SYan-Hsuan Chuang #ifndef __RTW_PS_H_
6e3037485SYan-Hsuan Chuang #define __RTW_PS_H_
7e3037485SYan-Hsuan Chuang 
8bf9840ccSYan-Hsuan Chuang #define RTW_LPS_THRESHOLD	50
9e3037485SYan-Hsuan Chuang 
1027e117e4SYan-Hsuan Chuang #define POWER_MODE_ACK		BIT(6)
1104b786e0SYan-Hsuan Chuang #define POWER_MODE_PG		BIT(4)
1227e117e4SYan-Hsuan Chuang #define POWER_MODE_LCLK		BIT(0)
1327e117e4SYan-Hsuan Chuang 
143a2dd6b7SChin-Yen Lee #define LEAVE_LPS_TRY_CNT	5
15*f31e039fSChin-Yen Lee #define LEAVE_LPS_TIMEOUT	msecs_to_jiffies(100)
163a2dd6b7SChin-Yen Lee 
17e3037485SYan-Hsuan Chuang int rtw_enter_ips(struct rtw_dev *rtwdev);
18e3037485SYan-Hsuan Chuang int rtw_leave_ips(struct rtw_dev *rtwdev);
19e3037485SYan-Hsuan Chuang 
2027e117e4SYan-Hsuan Chuang void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter);
213d391c06SYan-Hsuan Chuang void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id);
223d391c06SYan-Hsuan Chuang void rtw_leave_lps(struct rtw_dev *rtwdev);
2327e117e4SYan-Hsuan Chuang void rtw_leave_lps_deep(struct rtw_dev *rtwdev);
24e3037485SYan-Hsuan Chuang 
25e3037485SYan-Hsuan Chuang #endif
26