xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/realtek/rtw88/ps.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2*4882a593Smuzhiyun /* Copyright(c) 2018-2019  Realtek Corporation
3*4882a593Smuzhiyun  */
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #ifndef __RTW_PS_H_
6*4882a593Smuzhiyun #define __RTW_PS_H_
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #define RTW_LPS_THRESHOLD	50
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #define POWER_MODE_ACK		BIT(6)
11*4882a593Smuzhiyun #define POWER_MODE_PG		BIT(4)
12*4882a593Smuzhiyun #define POWER_MODE_LCLK		BIT(0)
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define LEAVE_LPS_TRY_CNT	5
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun int rtw_enter_ips(struct rtw_dev *rtwdev);
17*4882a593Smuzhiyun int rtw_leave_ips(struct rtw_dev *rtwdev);
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter);
20*4882a593Smuzhiyun void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id);
21*4882a593Smuzhiyun void rtw_leave_lps(struct rtw_dev *rtwdev);
22*4882a593Smuzhiyun void rtw_leave_lps_deep(struct rtw_dev *rtwdev);
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun #endif
25