xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8723ds/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 RTK_129X_PLATFORM
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_64BIT_DMA
43 	u8	PlatformEnableDMA64(PADAPTER Adapter);
44 #endif
45 #ifdef CONFIG_PCI_DYNAMIC_ASPM
46 void rtw_pci_set_aspm_lnkctl(_adapter *padapter, u8 mode);
47 void rtw_pci_set_l1_latency(_adapter *padapter, u8 mode);
48 
rtw_pci_dynamic_aspm_set_mode(_adapter * padapter,u8 mode)49 static inline void rtw_pci_dynamic_aspm_set_mode(_adapter *padapter, u8 mode)
50 {
51 	struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
52 	struct pci_priv	*pcipriv = &(pdvobjpriv->pcipriv);
53 
54 	if (mode == pcipriv->aspm_mode)
55 		return;
56 
57 	pcipriv->aspm_mode = mode;
58 
59 #ifdef CONFIG_PCI_DYNAMIC_ASPM_LINK_CTRL
60 	rtw_pci_set_aspm_lnkctl(padapter, mode);
61 #endif
62 #ifdef CONFIG_PCI_DYNAMIC_ASPM_L1_LATENCY
63 	rtw_pci_set_l1_latency(padapter, mode);
64 #endif
65 }
66 #else
67 #define rtw_pci_dynamic_aspm_set_mode(adapter, mode)
68 #endif
69 
70 #endif
71