Linux Audio

Check our new training course

Loading...
v5.9
  1# SPDX-License-Identifier: GPL-2.0
  2
  3menu "PCI controller drivers"
  4	depends on PCI
  5
  6config PCI_MVEBU
  7	bool "Marvell EBU PCIe controller"
  8	depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
  9	depends on MVEBU_MBUS
 10	depends on ARM
 11	depends on OF
 12	select PCI_BRIDGE_EMUL
 13
 14config PCI_AARDVARK
 15	bool "Aardvark PCIe controller"
 16	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
 17	depends on OF
 18	depends on PCI_MSI_IRQ_DOMAIN
 19	select PCI_BRIDGE_EMUL
 20	help
 21	 Add support for Aardvark 64bit PCIe Host Controller. This
 22	 controller is part of the South Bridge of the Marvel Armada
 23	 3700 SoC.
 24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 25config PCIE_XILINX_NWL
 26	bool "NWL PCIe Core"
 27	depends on ARCH_ZYNQMP || COMPILE_TEST
 28	depends on PCI_MSI_IRQ_DOMAIN
 29	help
 30	 Say 'Y' here if you want kernel support for Xilinx
 31	 NWL PCIe controller. The controller can act as Root Port
 32	 or End Point. The current option selection will only
 33	 support root port enabling.
 34
 35config PCI_FTPCI100
 36	bool "Faraday Technology FTPCI100 PCI controller"
 37	depends on OF
 38	default ARCH_GEMINI
 39
 40config PCI_TEGRA
 41	bool "NVIDIA Tegra PCIe controller"
 42	depends on ARCH_TEGRA || COMPILE_TEST
 43	depends on PCI_MSI_IRQ_DOMAIN
 44	help
 45	  Say Y here if you want support for the PCIe host controller found
 46	  on NVIDIA Tegra SoCs.
 47
 48config PCI_RCAR_GEN2
 49	bool "Renesas R-Car Gen2 Internal PCI controller"
 50	depends on ARCH_RENESAS || COMPILE_TEST
 51	depends on ARM
 52	help
 53	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
 54	  There are 3 internal PCI controllers available with a single
 55	  built-in EHCI/OHCI host controller present on each one.
 56
 57config PCIE_RCAR
 58	bool "Renesas R-Car PCIe controller"
 59	depends on ARCH_RENESAS || COMPILE_TEST
 60	depends on PCI_MSI_IRQ_DOMAIN
 61	select PCIE_RCAR_HOST
 62	help
 63	  Say Y here if you want PCIe controller support on R-Car SoCs.
 64	  This option will be removed after arm64 defconfig is updated.
 65
 66config PCIE_RCAR_HOST
 67	bool "Renesas R-Car PCIe host controller"
 68	depends on ARCH_RENESAS || COMPILE_TEST
 69	depends on PCI_MSI_IRQ_DOMAIN
 70	help
 71	  Say Y here if you want PCIe controller support on R-Car SoCs in host
 72	  mode.
 73
 74config PCIE_RCAR_EP
 75	bool "Renesas R-Car PCIe endpoint controller"
 76	depends on ARCH_RENESAS || COMPILE_TEST
 77	depends on PCI_ENDPOINT
 78	help
 79	  Say Y here if you want PCIe controller support on R-Car SoCs in
 80	  endpoint mode.
 81
 82config PCI_HOST_COMMON
 83	tristate
 84	select PCI_ECAM
 85
 86config PCI_HOST_GENERIC
 87	tristate "Generic PCI host controller"
 88	depends on OF
 89	select PCI_HOST_COMMON
 90	select IRQ_DOMAIN
 91	help
 92	  Say Y here if you want to support a simple generic PCI host
 93	  controller, such as the one emulated by kvmtool.
 94
 95config PCIE_XILINX
 96	bool "Xilinx AXI PCIe host bridge support"
 97	depends on OF || COMPILE_TEST
 98	help
 99	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
100	  Host Bridge driver.
101
102config PCIE_XILINX_CPM
103	bool "Xilinx Versal CPM host bridge support"
104	depends on ARCH_ZYNQMP || COMPILE_TEST
105	select PCI_HOST_COMMON
106	help
107	  Say 'Y' here if you want kernel support for the
108	  Xilinx Versal CPM host bridge.
109
110config PCI_XGENE
111	bool "X-Gene PCIe controller"
112	depends on ARM64 || COMPILE_TEST
113	depends on OF || (ACPI && PCI_QUIRKS)
114	help
115	  Say Y here if you want internal PCI support on APM X-Gene SoC.
116	  There are 5 internal PCIe ports available. Each port is GEN3 capable
117	  and have varied lanes from x1 to x8.
118
119config PCI_XGENE_MSI
120	bool "X-Gene v1 PCIe MSI feature"
121	depends on PCI_XGENE
122	depends on PCI_MSI_IRQ_DOMAIN
123	default y
124	help
125	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
126	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
127
128config PCI_V3_SEMI
129	bool "V3 Semiconductor PCI controller"
130	depends on OF
131	depends on ARM || COMPILE_TEST
132	default ARCH_INTEGRATOR_AP
133
134config PCI_VERSATILE
135	bool "ARM Versatile PB PCI controller"
136	depends on ARCH_VERSATILE || COMPILE_TEST
137
138config PCIE_IPROC
139	tristate
140	help
141	  This enables the iProc PCIe core controller support for Broadcom's
142	  iProc family of SoCs. An appropriate bus interface driver needs
143	  to be enabled to select this.
144
145config PCIE_IPROC_PLATFORM
146	tristate "Broadcom iProc PCIe platform bus driver"
147	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
148	depends on OF
149	select PCIE_IPROC
150	default ARCH_BCM_IPROC
151	help
152	  Say Y here if you want to use the Broadcom iProc PCIe controller
153	  through the generic platform bus interface
154
155config PCIE_IPROC_BCMA
156	tristate "Broadcom iProc PCIe BCMA bus driver"
157	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
158	select PCIE_IPROC
159	select BCMA
160	default ARCH_BCM_5301X
161	help
162	  Say Y here if you want to use the Broadcom iProc PCIe controller
163	  through the BCMA bus interface
164
165config PCIE_IPROC_MSI
166	bool "Broadcom iProc PCIe MSI support"
167	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
168	depends on PCI_MSI_IRQ_DOMAIN
169	default ARCH_BCM_IPROC
170	help
171	  Say Y here if you want to enable MSI support for Broadcom's iProc
172	  PCIe controller
173
174config PCIE_ALTERA
175	tristate "Altera PCIe controller"
176	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
177	help
178	  Say Y here if you want to enable PCIe controller support on Altera
179	  FPGA.
180
181config PCIE_ALTERA_MSI
182	tristate "Altera PCIe MSI feature"
183	depends on PCIE_ALTERA
184	depends on PCI_MSI_IRQ_DOMAIN
185	help
186	  Say Y here if you want PCIe MSI support for the Altera FPGA.
187	  This MSI driver supports Altera MSI to GIC controller IP.
188
189config PCI_HOST_THUNDER_PEM
190	bool "Cavium Thunder PCIe controller to off-chip devices"
191	depends on ARM64 || COMPILE_TEST
192	depends on OF || (ACPI && PCI_QUIRKS)
193	select PCI_HOST_COMMON
194	help
195	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
196
197config PCI_HOST_THUNDER_ECAM
198	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
199	depends on ARM64 || COMPILE_TEST
200	depends on OF || (ACPI && PCI_QUIRKS)
201	select PCI_HOST_COMMON
202	help
203	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
204
205config PCIE_ROCKCHIP
206	bool
207	depends on PCI
208
209config PCIE_ROCKCHIP_HOST
210	tristate "Rockchip PCIe host controller"
211	depends on ARCH_ROCKCHIP || COMPILE_TEST
212	depends on OF
213	depends on PCI_MSI_IRQ_DOMAIN
214	select MFD_SYSCON
215	select PCIE_ROCKCHIP
216	help
217	  Say Y here if you want internal PCI support on Rockchip SoC.
218	  There is 1 internal PCIe port available to support GEN2 with
219	  4 slots.
220
221config PCIE_ROCKCHIP_EP
222	bool "Rockchip PCIe endpoint controller"
223	depends on ARCH_ROCKCHIP || COMPILE_TEST
224	depends on OF
225	depends on PCI_ENDPOINT
226	select MFD_SYSCON
227	select PCIE_ROCKCHIP
228	help
229	  Say Y here if you want to support Rockchip PCIe controller in
230	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
231	  available to support GEN2 with 4 slots.
232
233config PCIE_MEDIATEK
234	tristate "MediaTek PCIe controller"
235	depends on ARCH_MEDIATEK || COMPILE_TEST
236	depends on OF
237	depends on PCI_MSI_IRQ_DOMAIN
238	help
239	  Say Y here if you want to enable PCIe controller support on
240	  MediaTek SoCs.
241
 
 
 
 
 
 
 
 
 
 
242config PCIE_TANGO_SMP8759
243	bool "Tango SMP8759 PCIe controller (DANGEROUS)"
244	depends on ARCH_TANGO && PCI_MSI && OF
245	depends on BROKEN
246	select PCI_HOST_COMMON
247	help
248	  Say Y here to enable PCIe controller support for Sigma Designs
249	  Tango SMP8759-based systems.
250
251	  Note: The SMP8759 controller multiplexes PCI config and MMIO
252	  accesses, and Linux doesn't provide a way to serialize them.
253	  This can lead to data corruption if drivers perform concurrent
254	  config and MMIO accesses.
255
256config VMD
257	depends on PCI_MSI && X86_64 && SRCU
 
258	tristate "Intel Volume Management Device Driver"
259	help
260	  Adds support for the Intel Volume Management Device (VMD). VMD is a
261	  secondary PCI host bridge that allows PCI Express root ports,
262	  and devices attached to them, to be removed from the default
263	  PCI domain and placed within the VMD domain. This provides
264	  more bus resources than are otherwise possible with a
265	  single domain. If you know your system provides one of these and
266	  has devices attached to it, say Y; if you are not sure, say N.
267
268	  To compile this driver as a module, choose M here: the
269	  module will be called vmd.
270
271config PCIE_BRCMSTB
272	tristate "Broadcom Brcmstb PCIe host controller"
273	depends on ARCH_BCM2835 || COMPILE_TEST
274	depends on OF
275	depends on PCI_MSI_IRQ_DOMAIN
276	help
277	  Say Y here to enable PCIe host controller support for
278	  Broadcom STB based SoCs, like the Raspberry Pi 4.
279
280config PCI_HYPERV_INTERFACE
281	tristate "Hyper-V PCI Interface"
282	depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
283	help
284	  The Hyper-V PCI Interface is a helper driver allows other drivers to
285	  have a common interface with the Hyper-V PCI frontend driver.
286
287config PCI_LOONGSON
288	bool "LOONGSON PCI Controller"
289	depends on MACH_LOONGSON64 || COMPILE_TEST
290	depends on OF
291	depends on PCI_QUIRKS
292	default MACH_LOONGSON64
293	help
294	  Say Y here if you want to enable PCI controller support on
295	  Loongson systems.
296
297source "drivers/pci/controller/dwc/Kconfig"
298source "drivers/pci/controller/mobiveil/Kconfig"
299source "drivers/pci/controller/cadence/Kconfig"
300endmenu
v5.4
  1# SPDX-License-Identifier: GPL-2.0
  2
  3menu "PCI controller drivers"
  4	depends on PCI
  5
  6config PCI_MVEBU
  7	bool "Marvell EBU PCIe controller"
  8	depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
  9	depends on MVEBU_MBUS
 10	depends on ARM
 11	depends on OF
 12	select PCI_BRIDGE_EMUL
 13
 14config PCI_AARDVARK
 15	bool "Aardvark PCIe controller"
 16	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
 17	depends on OF
 18	depends on PCI_MSI_IRQ_DOMAIN
 19	select PCI_BRIDGE_EMUL
 20	help
 21	 Add support for Aardvark 64bit PCIe Host Controller. This
 22	 controller is part of the South Bridge of the Marvel Armada
 23	 3700 SoC.
 24
 25menu "Cadence PCIe controllers support"
 26
 27config PCIE_CADENCE
 28	bool
 29
 30config PCIE_CADENCE_HOST
 31	bool "Cadence PCIe host controller"
 32	depends on OF
 33	depends on PCI
 34	select IRQ_DOMAIN
 35	select PCIE_CADENCE
 36	help
 37	  Say Y here if you want to support the Cadence PCIe controller in host
 38	  mode. This PCIe controller may be embedded into many different vendors
 39	  SoCs.
 40
 41config PCIE_CADENCE_EP
 42	bool "Cadence PCIe endpoint controller"
 43	depends on OF
 44	depends on PCI_ENDPOINT
 45	select PCIE_CADENCE
 46	help
 47	  Say Y here if you want to support the Cadence PCIe  controller in
 48	  endpoint mode. This PCIe controller may be embedded into many
 49	  different vendors SoCs.
 50
 51endmenu
 52
 53config PCIE_XILINX_NWL
 54	bool "NWL PCIe Core"
 55	depends on ARCH_ZYNQMP || COMPILE_TEST
 56	depends on PCI_MSI_IRQ_DOMAIN
 57	help
 58	 Say 'Y' here if you want kernel support for Xilinx
 59	 NWL PCIe controller. The controller can act as Root Port
 60	 or End Point. The current option selection will only
 61	 support root port enabling.
 62
 63config PCI_FTPCI100
 64	bool "Faraday Technology FTPCI100 PCI controller"
 65	depends on OF
 66	default ARCH_GEMINI
 67
 68config PCI_TEGRA
 69	bool "NVIDIA Tegra PCIe controller"
 70	depends on ARCH_TEGRA || COMPILE_TEST
 71	depends on PCI_MSI_IRQ_DOMAIN
 72	help
 73	  Say Y here if you want support for the PCIe host controller found
 74	  on NVIDIA Tegra SoCs.
 75
 76config PCI_RCAR_GEN2
 77	bool "Renesas R-Car Gen2 Internal PCI controller"
 78	depends on ARCH_RENESAS || COMPILE_TEST
 79	depends on ARM
 80	help
 81	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
 82	  There are 3 internal PCI controllers available with a single
 83	  built-in EHCI/OHCI host controller present on each one.
 84
 85config PCIE_RCAR
 86	bool "Renesas R-Car PCIe controller"
 87	depends on ARCH_RENESAS || COMPILE_TEST
 88	depends on PCI_MSI_IRQ_DOMAIN
 
 89	help
 90	  Say Y here if you want PCIe controller support on R-Car SoCs.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 91
 92config PCI_HOST_COMMON
 93	bool
 94	select PCI_ECAM
 95
 96config PCI_HOST_GENERIC
 97	bool "Generic PCI host controller"
 98	depends on OF
 99	select PCI_HOST_COMMON
100	select IRQ_DOMAIN
101	help
102	  Say Y here if you want to support a simple generic PCI host
103	  controller, such as the one emulated by kvmtool.
104
105config PCIE_XILINX
106	bool "Xilinx AXI PCIe host bridge support"
107	depends on OF || COMPILE_TEST
108	help
109	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
110	  Host Bridge driver.
111
 
 
 
 
 
 
 
 
112config PCI_XGENE
113	bool "X-Gene PCIe controller"
114	depends on ARM64 || COMPILE_TEST
115	depends on OF || (ACPI && PCI_QUIRKS)
116	help
117	  Say Y here if you want internal PCI support on APM X-Gene SoC.
118	  There are 5 internal PCIe ports available. Each port is GEN3 capable
119	  and have varied lanes from x1 to x8.
120
121config PCI_XGENE_MSI
122	bool "X-Gene v1 PCIe MSI feature"
123	depends on PCI_XGENE
124	depends on PCI_MSI_IRQ_DOMAIN
125	default y
126	help
127	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
128	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
129
130config PCI_V3_SEMI
131	bool "V3 Semiconductor PCI controller"
132	depends on OF
133	depends on ARM || COMPILE_TEST
134	default ARCH_INTEGRATOR_AP
135
136config PCI_VERSATILE
137	bool "ARM Versatile PB PCI controller"
138	depends on ARCH_VERSATILE
139
140config PCIE_IPROC
141	tristate
142	help
143	  This enables the iProc PCIe core controller support for Broadcom's
144	  iProc family of SoCs. An appropriate bus interface driver needs
145	  to be enabled to select this.
146
147config PCIE_IPROC_PLATFORM
148	tristate "Broadcom iProc PCIe platform bus driver"
149	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
150	depends on OF
151	select PCIE_IPROC
152	default ARCH_BCM_IPROC
153	help
154	  Say Y here if you want to use the Broadcom iProc PCIe controller
155	  through the generic platform bus interface
156
157config PCIE_IPROC_BCMA
158	tristate "Broadcom iProc PCIe BCMA bus driver"
159	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
160	select PCIE_IPROC
161	select BCMA
162	default ARCH_BCM_5301X
163	help
164	  Say Y here if you want to use the Broadcom iProc PCIe controller
165	  through the BCMA bus interface
166
167config PCIE_IPROC_MSI
168	bool "Broadcom iProc PCIe MSI support"
169	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
170	depends on PCI_MSI_IRQ_DOMAIN
171	default ARCH_BCM_IPROC
172	help
173	  Say Y here if you want to enable MSI support for Broadcom's iProc
174	  PCIe controller
175
176config PCIE_ALTERA
177	tristate "Altera PCIe controller"
178	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
179	help
180	  Say Y here if you want to enable PCIe controller support on Altera
181	  FPGA.
182
183config PCIE_ALTERA_MSI
184	tristate "Altera PCIe MSI feature"
185	depends on PCIE_ALTERA
186	depends on PCI_MSI_IRQ_DOMAIN
187	help
188	  Say Y here if you want PCIe MSI support for the Altera FPGA.
189	  This MSI driver supports Altera MSI to GIC controller IP.
190
191config PCI_HOST_THUNDER_PEM
192	bool "Cavium Thunder PCIe controller to off-chip devices"
193	depends on ARM64 || COMPILE_TEST
194	depends on OF || (ACPI && PCI_QUIRKS)
195	select PCI_HOST_COMMON
196	help
197	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
198
199config PCI_HOST_THUNDER_ECAM
200	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
201	depends on ARM64 || COMPILE_TEST
202	depends on OF || (ACPI && PCI_QUIRKS)
203	select PCI_HOST_COMMON
204	help
205	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
206
207config PCIE_ROCKCHIP
208	bool
209	depends on PCI
210
211config PCIE_ROCKCHIP_HOST
212	tristate "Rockchip PCIe host controller"
213	depends on ARCH_ROCKCHIP || COMPILE_TEST
214	depends on OF
215	depends on PCI_MSI_IRQ_DOMAIN
216	select MFD_SYSCON
217	select PCIE_ROCKCHIP
218	help
219	  Say Y here if you want internal PCI support on Rockchip SoC.
220	  There is 1 internal PCIe port available to support GEN2 with
221	  4 slots.
222
223config PCIE_ROCKCHIP_EP
224	bool "Rockchip PCIe endpoint controller"
225	depends on ARCH_ROCKCHIP || COMPILE_TEST
226	depends on OF
227	depends on PCI_ENDPOINT
228	select MFD_SYSCON
229	select PCIE_ROCKCHIP
230	help
231	  Say Y here if you want to support Rockchip PCIe controller in
232	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
233	  available to support GEN2 with 4 slots.
234
235config PCIE_MEDIATEK
236	tristate "MediaTek PCIe controller"
237	depends on ARCH_MEDIATEK || COMPILE_TEST
238	depends on OF
239	depends on PCI_MSI_IRQ_DOMAIN
240	help
241	  Say Y here if you want to enable PCIe controller support on
242	  MediaTek SoCs.
243
244config PCIE_MOBIVEIL
245	bool "Mobiveil AXI PCIe controller"
246	depends on ARCH_ZYNQMP || COMPILE_TEST
247	depends on OF
248	depends on PCI_MSI_IRQ_DOMAIN
249	help
250	  Say Y here if you want to enable support for the Mobiveil AXI PCIe
251	  Soft IP. It has up to 8 outbound and inbound windows
252	  for address translation and it is a PCIe Gen4 IP.
253
254config PCIE_TANGO_SMP8759
255	bool "Tango SMP8759 PCIe controller (DANGEROUS)"
256	depends on ARCH_TANGO && PCI_MSI && OF
257	depends on BROKEN
258	select PCI_HOST_COMMON
259	help
260	  Say Y here to enable PCIe controller support for Sigma Designs
261	  Tango SMP8759-based systems.
262
263	  Note: The SMP8759 controller multiplexes PCI config and MMIO
264	  accesses, and Linux doesn't provide a way to serialize them.
265	  This can lead to data corruption if drivers perform concurrent
266	  config and MMIO accesses.
267
268config VMD
269	depends on PCI_MSI && X86_64 && SRCU
270	select X86_DEV_DMA_OPS
271	tristate "Intel Volume Management Device Driver"
272	---help---
273	  Adds support for the Intel Volume Management Device (VMD). VMD is a
274	  secondary PCI host bridge that allows PCI Express root ports,
275	  and devices attached to them, to be removed from the default
276	  PCI domain and placed within the VMD domain. This provides
277	  more bus resources than are otherwise possible with a
278	  single domain. If you know your system provides one of these and
279	  has devices attached to it, say Y; if you are not sure, say N.
280
281	  To compile this driver as a module, choose M here: the
282	  module will be called vmd.
283
 
 
 
 
 
 
 
 
 
284config PCI_HYPERV_INTERFACE
285	tristate "Hyper-V PCI Interface"
286	depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
287	help
288	  The Hyper-V PCI Interface is a helper driver allows other drivers to
289	  have a common interface with the Hyper-V PCI frontend driver.
290
 
 
 
 
 
 
 
 
 
 
291source "drivers/pci/controller/dwc/Kconfig"
 
 
292endmenu