PCI: rcar: Make explicitly non-modular
[cascardo/linux.git] / drivers / pci / host / Kconfig
1 menu "PCI host controller drivers"
2         depends on PCI
3
4 config PCI_DRA7XX
5         bool "TI DRA7xx PCIe controller"
6         select PCIE_DW
7         depends on OF && HAS_IOMEM && TI_PIPE3
8         help
9          Enables support for the PCIe controller in the DRA7xx SoC.  There
10          are two instances of PCIe controller in DRA7xx.  This controller can
11          act both as EP and RC.  This reuses the Designware core.
12
13 config PCI_MVEBU
14         bool "Marvell EBU PCIe controller"
15         depends on ARCH_MVEBU || ARCH_DOVE
16         depends on ARM
17         depends on OF
18
19
20 config PCIE_XILINX_NWL
21         bool "NWL PCIe Core"
22         depends on ARCH_ZYNQMP
23         select PCI_MSI_IRQ_DOMAIN if PCI_MSI
24         help
25          Say 'Y' here if you want kernel support for Xilinx
26          NWL PCIe controller. The controller can act as Root Port
27          or End Point. The current option selection will only
28          support root port enabling.
29
30 config PCIE_DW_PLAT
31         bool "Platform bus based DesignWare PCIe Controller"
32         select PCIE_DW
33         ---help---
34          This selects the DesignWare PCIe controller support. Select this if
35          you have a PCIe controller on Platform bus.
36
37          If you have a controller with this interface, say Y or M here.
38
39          If unsure, say N.
40
41 config PCIE_DW
42         bool
43
44 config PCI_EXYNOS
45         bool "Samsung Exynos PCIe controller"
46         depends on SOC_EXYNOS5440
47         select PCIEPORTBUS
48         select PCIE_DW
49
50 config PCI_IMX6
51         bool "Freescale i.MX6 PCIe controller"
52         depends on SOC_IMX6Q
53         select PCIEPORTBUS
54         select PCIE_DW
55
56 config PCI_TEGRA
57         bool "NVIDIA Tegra PCIe controller"
58         depends on ARCH_TEGRA && !ARM64
59         help
60           Say Y here if you want support for the PCIe host controller found
61           on NVIDIA Tegra SoCs.
62
63 config PCI_RCAR_GEN2
64         bool "Renesas R-Car Gen2 Internal PCI controller"
65         depends on ARM
66         depends on ARCH_RENESAS || COMPILE_TEST
67         help
68           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
69           There are 3 internal PCI controllers available with a single
70           built-in EHCI/OHCI host controller present on each one.
71
72 config PCIE_RCAR
73         bool "Renesas R-Car PCIe controller"
74         depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
75         select PCI_MSI
76         select PCI_MSI_IRQ_DOMAIN
77         help
78           Say Y here if you want PCIe controller support on R-Car SoCs.
79
80 config PCI_HOST_COMMON
81         bool
82         select PCI_ECAM
83
84 config PCI_HOST_GENERIC
85         bool "Generic PCI host controller"
86         depends on (ARM || ARM64) && OF
87         select PCI_HOST_COMMON
88         select IRQ_DOMAIN
89         help
90           Say Y here if you want to support a simple generic PCI host
91           controller, such as the one emulated by kvmtool.
92
93 config PCIE_SPEAR13XX
94         bool "STMicroelectronics SPEAr PCIe controller"
95         depends on ARCH_SPEAR13XX
96         select PCIEPORTBUS
97         select PCIE_DW
98         help
99           Say Y here if you want PCIe support on SPEAr13XX SoCs.
100
101 config PCI_KEYSTONE
102         bool "TI Keystone PCIe controller"
103         depends on ARCH_KEYSTONE
104         select PCIE_DW
105         select PCIEPORTBUS
106         help
107           Say Y here if you want to enable PCI controller support on Keystone
108           SoCs. The PCI controller on Keystone is based on Designware hardware
109           and therefore the driver re-uses the Designware core functions to
110           implement the driver.
111
112 config PCIE_XILINX
113         bool "Xilinx AXI PCIe host bridge support"
114         depends on ARCH_ZYNQ || MICROBLAZE
115         help
116           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
117           Host Bridge driver.
118
119 config PCI_XGENE
120         bool "X-Gene PCIe controller"
121         depends on ARCH_XGENE
122         depends on OF
123         select PCIEPORTBUS
124         select PCI_MSI_IRQ_DOMAIN if PCI_MSI
125         help
126           Say Y here if you want internal PCI support on APM X-Gene SoC.
127           There are 5 internal PCIe ports available. Each port is GEN3 capable
128           and have varied lanes from x1 to x8.
129
130 config PCI_XGENE_MSI
131         bool "X-Gene v1 PCIe MSI feature"
132         depends on PCI_XGENE && PCI_MSI
133         default y
134         help
135           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
136           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
137
138 config PCI_LAYERSCAPE
139         bool "Freescale Layerscape PCIe controller"
140         depends on OF && (ARM || ARCH_LAYERSCAPE)
141         select PCIE_DW
142         select MFD_SYSCON
143         help
144           Say Y here if you want PCIe controller support on Layerscape SoCs.
145
146 config PCI_VERSATILE
147         bool "ARM Versatile PB PCI controller"
148         depends on ARCH_VERSATILE
149
150 config PCIE_IPROC
151         tristate
152         help
153           This enables the iProc PCIe core controller support for Broadcom's
154           iProc family of SoCs. An appropriate bus interface driver needs
155           to be enabled to select this.
156
157 config PCIE_IPROC_PLATFORM
158         tristate "Broadcom iProc PCIe platform bus driver"
159         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
160         depends on OF
161         select PCIE_IPROC
162         default ARCH_BCM_IPROC
163         help
164           Say Y here if you want to use the Broadcom iProc PCIe controller
165           through the generic platform bus interface
166
167 config PCIE_IPROC_BCMA
168         tristate "Broadcom iProc PCIe BCMA bus driver"
169         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
170         select PCIE_IPROC
171         select BCMA
172         select PCI_DOMAINS
173         default ARCH_BCM_5301X
174         help
175           Say Y here if you want to use the Broadcom iProc PCIe controller
176           through the BCMA bus interface
177
178 config PCIE_IPROC_MSI
179         bool "Broadcom iProc PCIe MSI support"
180         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
181         depends on PCI_MSI
182         select PCI_MSI_IRQ_DOMAIN
183         default ARCH_BCM_IPROC
184         help
185           Say Y here if you want to enable MSI support for Broadcom's iProc
186           PCIe controller
187
188 config PCIE_ALTERA
189         bool "Altera PCIe controller"
190         depends on ARM || NIOS2
191         depends on OF_PCI
192         select PCI_DOMAINS
193         help
194           Say Y here if you want to enable PCIe controller support on Altera
195           FPGA.
196
197 config PCIE_ALTERA_MSI
198         bool "Altera PCIe MSI feature"
199         depends on PCIE_ALTERA && PCI_MSI
200         select PCI_MSI_IRQ_DOMAIN
201         help
202           Say Y here if you want PCIe MSI support for the Altera FPGA.
203           This MSI driver supports Altera MSI to GIC controller IP.
204
205 config PCI_HISI
206         depends on OF && ARM64
207         bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
208         select PCIEPORTBUS
209         select PCIE_DW
210         help
211           Say Y here if you want PCIe controller support on HiSilicon
212           Hip05 and Hip06 SoCs
213
214 config PCIE_QCOM
215         bool "Qualcomm PCIe controller"
216         depends on ARCH_QCOM && OF
217         select PCIE_DW
218         select PCIEPORTBUS
219         help
220           Say Y here to enable PCIe controller support on Qualcomm SoCs. The
221           PCIe controller uses the Designware core plus Qualcomm-specific
222           hardware wrappers.
223
224 config PCI_HOST_THUNDER_PEM
225         bool "Cavium Thunder PCIe controller to off-chip devices"
226         depends on OF && ARM64
227         select PCI_HOST_COMMON
228         help
229           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
230
231 config PCI_HOST_THUNDER_ECAM
232         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
233         depends on OF && ARM64
234         select PCI_HOST_COMMON
235         help
236           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
237
238 config PCIE_ARMADA_8K
239         bool "Marvell Armada-8K PCIe controller"
240         depends on ARCH_MVEBU
241         select PCIE_DW
242         select PCIEPORTBUS
243         help
244           Say Y here if you want to enable PCIe controller support on
245           Armada-8K SoCs. The PCIe controller on Armada-8K is based on
246           Designware hardware and therefore the driver re-uses the
247           Designware core functions to implement the driver.
248
249 config PCIE_ARTPEC6
250         bool "Axis ARTPEC-6 PCIe controller"
251         depends on MACH_ARTPEC6
252         depends on PCI_MSI_IRQ_DOMAIN
253         select PCIE_DW
254         select PCIEPORTBUS
255         help
256           Say Y here to enable PCIe controller support on Axis ARTPEC-6
257           SoCs.  This PCIe controller uses the DesignWare core.
258
259 endmenu