1menu "PCI host controller drivers"
2	depends on PCI
3
4config PCI_DRA7XX
5	bool "TI DRA7xx PCIe controller"
6	select PCIE_DW
7	depends on OF && HAS_IOMEM && TI_PIPE3
8	depends on BROKEN
9	help
10	 Enables support for the PCIe controller in the DRA7xx SoC.  There
11	 are two instances of PCIe controller in DRA7xx.  This controller can
12	 act both as EP and RC.  This reuses the Designware core.
13
14config PCI_MVEBU
15	bool "Marvell EBU PCIe controller"
16	depends on ARCH_MVEBU || ARCH_DOVE
17	depends on OF
18
19config PCIE_DW
20	bool
21
22config PCI_EXYNOS
23	bool "Samsung Exynos PCIe controller"
24	depends on SOC_EXYNOS5440
25	select PCIEPORTBUS
26	select PCIE_DW
27
28config PCI_IMX6
29	bool "Freescale i.MX6 PCIe controller"
30	depends on SOC_IMX6Q
31	select PCIEPORTBUS
32	select PCIE_DW
33
34config PCI_TEGRA
35	bool "NVIDIA Tegra PCIe controller"
36	depends on ARCH_TEGRA && !ARM64
37	help
38	  Say Y here if you want support for the PCIe host controller found
39	  on NVIDIA Tegra SoCs.
40
41config PCI_RCAR_GEN2
42	bool "Renesas R-Car Gen2 Internal PCI controller"
43	depends on ARM
44	depends on ARCH_SHMOBILE || COMPILE_TEST
45	help
46	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
47	  There are 3 internal PCI controllers available with a single
48	  built-in EHCI/OHCI host controller present on each one.
49
50config PCI_RCAR_GEN2_PCIE
51	bool "Renesas R-Car PCIe controller"
52	depends on ARM
53	depends on ARCH_SHMOBILE || COMPILE_TEST
54	help
55	  Say Y here if you want PCIe controller support on R-Car Gen2 SoCs.
56
57config PCI_HOST_GENERIC
58	bool "Generic PCI host controller"
59	depends on (ARM || ARM64) && OF
60	help
61	  Say Y here if you want to support a simple generic PCI host
62	  controller, such as the one emulated by kvmtool.
63
64config PCIE_SPEAR13XX
65	bool "STMicroelectronics SPEAr PCIe controller"
66	depends on ARCH_SPEAR13XX
67	select PCIEPORTBUS
68	select PCIE_DW
69	help
70	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
71
72config PCI_KEYSTONE
73	bool "TI Keystone PCIe controller"
74	depends on ARCH_KEYSTONE
75	select PCIE_DW
76	select PCIEPORTBUS
77	help
78	  Say Y here if you want to enable PCI controller support on Keystone
79	  SoCs. The PCI controller on Keystone is based on Designware hardware
80	  and therefore the driver re-uses the Designware core functions to
81	  implement the driver.
82
83config PCIE_XILINX
84	bool "Xilinx AXI PCIe host bridge support"
85	depends on ARCH_ZYNQ
86	help
87	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
88	  Host Bridge driver.
89
90config PCI_XGENE
91	bool "X-Gene PCIe controller"
92	depends on ARCH_XGENE
93	depends on OF
94	select PCIEPORTBUS
95	select PCI_MSI_IRQ_DOMAIN if PCI_MSI
96	help
97	  Say Y here if you want internal PCI support on APM X-Gene SoC.
98	  There are 5 internal PCIe ports available. Each port is GEN3 capable
99	  and have varied lanes from x1 to x8.
100
101config PCI_XGENE_MSI
102	bool "X-Gene v1 PCIe MSI feature"
103	depends on PCI_XGENE && PCI_MSI
104	default y
105	help
106	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
107	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
108
109config PCI_LAYERSCAPE
110	bool "Freescale Layerscape PCIe controller"
111	depends on OF && (ARM || ARCH_LAYERSCAPE)
112	select PCIE_DW
113	select MFD_SYSCON
114	help
115	  Say Y here if you want PCIe controller support on Layerscape SoCs.
116
117config PCI_VERSATILE
118	bool "ARM Versatile PB PCI controller"
119	depends on ARCH_VERSATILE
120
121config PCIE_IPROC
122	tristate "Broadcom iProc PCIe controller"
123	depends on OF && (ARM || ARM64)
124	default n
125	help
126	  This enables the iProc PCIe core controller support for Broadcom's
127	  iProc family of SoCs. An appropriate bus interface driver also needs
128	  to be enabled
129
130config PCIE_IPROC_PLATFORM
131	tristate "Broadcom iProc PCIe platform bus driver"
132	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
133	depends on OF
134	select PCIE_IPROC
135	default ARCH_BCM_IPROC
136	help
137	  Say Y here if you want to use the Broadcom iProc PCIe controller
138	  through the generic platform bus interface
139
140config PCIE_IPROC_BCMA
141	tristate "Broadcom iProc PCIe BCMA bus driver"
142	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
143	select PCIE_IPROC
144	select BCMA
145	select PCI_DOMAINS
146	default ARCH_BCM_5301X
147	help
148	  Say Y here if you want to use the Broadcom iProc PCIe controller
149	  through the BCMA bus interface
150
151config PCIE_ALTERA
152	bool "Altera PCIe controller"
153	depends on ARM || NIOS2
154	depends on OF_PCI
155	select PCI_DOMAINS
156	help
157	  Say Y here if you want to enable PCIe controller support on Altera
158	  FPGA.
159
160config PCIE_ALTERA_MSI
161	bool "Altera PCIe MSI feature"
162	depends on PCIE_ALTERA && PCI_MSI
163	select PCI_MSI_IRQ_DOMAIN
164	help
165	  Say Y here if you want PCIe MSI support for the Altera FPGA.
166	  This MSI driver supports Altera MSI to GIC controller IP.
167
168config PCI_HISI
169	depends on OF && ARM64
170	bool "HiSilicon SoC HIP05 PCIe controller"
171	select PCIEPORTBUS
172	select PCIE_DW
173	help
174	  Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC
175
176endmenu
177