xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8821cs/include/pci_osintf.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2017 Realtek Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of version 2 of the GNU General Public License as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  *****************************************************************************/
16 #ifndef __PCI_OSINTF_H
17 #define __PCI_OSINTF_H
18 
19 #ifdef CONFIG_PLATFORM_RTK129X
20 #define PCIE_SLOT1_MEM_START	0x9804F000
21 #define PCIE_SLOT1_MEM_LEN	0x1000
22 #define PCIE_SLOT1_CTRL_START	0x9804EC00
23 
24 #define PCIE_SLOT2_MEM_START	0x9803C000
25 #define PCIE_SLOT2_MEM_LEN	0x1000
26 #define PCIE_SLOT2_CTRL_START	0x9803BC00
27 
28 #define PCIE_MASK_OFFSET	0x100 /* mask offset from CTRL_START */
29 #define PCIE_TRANSLATE_OFFSET	0x104 /* translate offset from CTRL_START */
30 #endif
31 
32 #define PCI_BC_CLK_REQ		BIT0
33 #define PCI_BC_ASPM_L0s		BIT1
34 #define PCI_BC_ASPM_L1		BIT2
35 #define PCI_BC_ASPM_L1Off	BIT3
36 //#define PCI_BC_ASPM_LTR	BIT4
37 //#define PCI_BC_ASPM_OBFF	BIT5
38 
39 void	PlatformClearPciPMEStatus(PADAPTER Adapter);
40 void	rtw_pci_aspm_config(_adapter *padapter);
41 void	rtw_pci_aspm_config_l1off_general(_adapter *padapter, u8 eanble);
42 #ifdef CONFIG_PCI_DYNAMIC_ASPM
43 void rtw_pci_set_aspm_lnkctl(_adapter *padapter, u8 mode);
44 void rtw_pci_set_l1_latency(_adapter *padapter, u8 mode);
45 
rtw_pci_dynamic_aspm_set_mode(_adapter * padapter,u8 mode)46 static inline void rtw_pci_dynamic_aspm_set_mode(_adapter *padapter, u8 mode)
47 {
48 	struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
49 	struct pci_priv	*pcipriv = &(pdvobjpriv->pcipriv);
50 
51 	if (mode == pcipriv->aspm_mode)
52 		return;
53 
54 	pcipriv->aspm_mode = mode;
55 
56 #ifdef CONFIG_PCI_DYNAMIC_ASPM_LINK_CTRL
57 	rtw_pci_set_aspm_lnkctl(padapter, mode);
58 #endif
59 #ifdef CONFIG_PCI_DYNAMIC_ASPM_L1_LATENCY
60 	rtw_pci_set_l1_latency(padapter, mode);
61 #endif
62 }
63 #else
64 #define rtw_pci_dynamic_aspm_set_mode(adapter, mode)
65 #endif
66 
67 #endif
68