blob: 5eefc31fa9af3df34bfe6c75af06a3ce38d77c98 [file] [log] [blame]
Hou Zhiqiang25ff98c2019-04-24 22:33:02 +08001/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright 2019 NXP
4 *
5 * PCIe DM U-Boot driver for Freescale PowerPC SoCs
6 * Author: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
7 */
8
9#ifndef _PCIE_FSL_H_
10#define _PCIE_FSL_H_
11
12#ifdef CONFIG_SYS_FSL_PCI_VER_3_X
13#define FSL_PCIE_CAP_ID 0x70
14#else
15#define FSL_PCIE_CAP_ID 0x4c
16#endif
17/* PCIe Device Control Register */
18#define PCI_DCR (FSL_PCIE_CAP_ID + 0x08)
19/* PCIe Device Status Register */
20#define PCI_DSR (FSL_PCIE_CAP_ID + 0x0a)
21/* PCIe Link Control Register */
22#define PCI_LCR (FSL_PCIE_CAP_ID + 0x10)
23/* PCIe Link Status Register */
24#define PCI_LSR (FSL_PCIE_CAP_ID + 0x12)
25
26#ifndef CONFIG_SYS_PCI_MEMORY_BUS
27#define CONFIG_SYS_PCI_MEMORY_BUS 0
28#endif
29
30#ifndef CONFIG_SYS_PCI_MEMORY_PHYS
31#define CONFIG_SYS_PCI_MEMORY_PHYS 0
32#endif
33
34#if defined(CONFIG_SYS_PCI_64BIT) && !defined(CONFIG_SYS_PCI64_MEMORY_BUS)
35#define CONFIG_SYS_PCI64_MEMORY_BUS (64ull * 1024 * 1024 * 1024)
36#endif
37
38#define PEX_CSR0_LTSSM_MASK 0xFC
39#define PEX_CSR0_LTSSM_SHIFT 2
40#define LTSSM_L0_REV3 0x11
41#define LTSSM_L0 0x16
42
43struct fsl_pcie {
44 int idx;
45 struct udevice *bus;
46 void __iomem *regs;
47 u32 law_trgt_if; /* LAW target ID */
48 u32 block_rev; /* IP block revision */
49 bool mode; /* RC&EP mode flag */
50 bool enabled; /* Enable status */
51 struct list_head list;
52};
53
54extern struct list_head fsl_pcie_list;
55
56#endif /* _PCIE_FSL_H_ */