Linux Audio

Check our new training course

Embedded Linux training

Mar 10-20, 2025, special US time zones
Register
Loading...
v6.8
  1# SPDX-License-Identifier: GPL-2.0
  2
  3menu "PCI controller drivers"
  4	depends on PCI
  5
 
 
 
 
 
 
 
 
 
 
 
 
  6config PCI_AARDVARK
  7	tristate "Aardvark PCIe controller"
  8	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
  9	depends on OF
 10	depends on PCI_MSI
 11	select PCI_BRIDGE_EMUL
 12	help
 13	 Add support for Aardvark 64bit PCIe Host Controller. This
 14	 controller is part of the South Bridge of the Marvel Armada
 15	 3700 SoC.
 16
 17config PCIE_ALTERA
 18	tristate "Altera PCIe controller"
 19	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
 
 20	help
 21	  Say Y here if you want to enable PCIe controller support on Altera
 22	  FPGA.
 
 
 23
 24config PCIE_ALTERA_MSI
 25	tristate "Altera PCIe MSI feature"
 26	depends on PCIE_ALTERA
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 27	depends on PCI_MSI
 28	help
 29	  Say Y here if you want PCIe MSI support for the Altera FPGA.
 30	  This MSI driver supports Altera MSI to GIC controller IP.
 31
 32config PCIE_APPLE_MSI_DOORBELL_ADDR
 33	hex
 34	default 0xfffff000
 35	depends on PCIE_APPLE
 
 
 
 
 36
 37config PCIE_APPLE
 38	tristate "Apple PCIe controller"
 39	depends on ARCH_APPLE || COMPILE_TEST
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 40	depends on OF
 
 
 
 
 
 
 
 
 
 41	depends on PCI_MSI
 
 
 
 
 
 
 
 42	select PCI_HOST_COMMON
 43	help
 44	  Say Y here if you want to enable PCIe controller support on Apple
 45	  system-on-chips, like the Apple M1. This is required for the USB
 46	  type-A ports, Ethernet, Wi-Fi, and Bluetooth.
 47
 48	  If unsure, say Y if you have an Apple Silicon system.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 49
 50config PCI_VERSATILE
 51	bool "ARM Versatile PB PCI controller"
 52	depends on ARCH_VERSATILE || COMPILE_TEST
 53
 54config PCIE_BRCMSTB
 55	tristate "Broadcom Brcmstb PCIe controller"
 56	depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
 57		   BMIPS_GENERIC || COMPILE_TEST
 58	depends on OF
 59	depends on PCI_MSI
 60	default ARCH_BRCMSTB || BMIPS_GENERIC
 61	help
 62	  Say Y here to enable PCIe host controller support for
 63	  Broadcom STB based SoCs, like the Raspberry Pi 4.
 64
 65config PCIE_IPROC
 66	tristate
 67	help
 68	  This enables the iProc PCIe core controller support for Broadcom's
 69	  iProc family of SoCs. An appropriate bus interface driver needs
 70	  to be enabled to select this.
 71
 72config PCIE_IPROC_PLATFORM
 73	tristate "Broadcom iProc PCIe platform bus driver"
 74	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
 75	depends on OF
 76	select PCIE_IPROC
 77	default ARCH_BCM_IPROC
 78	help
 79	  Say Y here if you want to use the Broadcom iProc PCIe controller
 80	  through the generic platform bus interface
 81
 82config PCIE_IPROC_BCMA
 83	tristate "Broadcom iProc BCMA PCIe controller"
 84	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
 85	select PCIE_IPROC
 86	select BCMA
 87	default ARCH_BCM_5301X
 88	help
 89	  Say Y here if you want to use the Broadcom iProc PCIe controller
 90	  through the BCMA bus interface
 91
 92config PCIE_IPROC_MSI
 93	bool "Broadcom iProc PCIe MSI support"
 94	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
 95	depends on PCI_MSI
 96	default ARCH_BCM_IPROC
 97	help
 98	  Say Y here if you want to enable MSI support for Broadcom's iProc
 99	  PCIe controller
100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101config PCI_HOST_THUNDER_PEM
102	bool "Cavium Thunder PCIe controller to off-chip devices"
103	depends on ARM64 || COMPILE_TEST
104	depends on OF || (ACPI && PCI_QUIRKS)
105	select PCI_HOST_COMMON
106	help
107	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
108
109config PCI_HOST_THUNDER_ECAM
110	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
111	depends on ARM64 || COMPILE_TEST
112	depends on OF || (ACPI && PCI_QUIRKS)
113	select PCI_HOST_COMMON
114	help
115	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
116
117config PCI_FTPCI100
118	bool "Faraday Technology FTPCI100 PCI controller"
119	depends on OF
120	default ARCH_GEMINI
121
122config PCI_HOST_COMMON
123	tristate
124	select PCI_ECAM
125
126config PCI_HOST_GENERIC
127	tristate "Generic PCI host controller"
 
128	depends on OF
129	select PCI_HOST_COMMON
130	select IRQ_DOMAIN
131	help
132	  Say Y here if you want to support a simple generic PCI host
133	  controller, such as the one emulated by kvmtool.
134
135config PCIE_HISI_ERR
136	depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
137	bool "HiSilicon HIP PCIe controller error handling driver"
138	help
139	  Say Y here if you want error handling support
140	  for the PCIe controller's errors on HiSilicon HIP SoCs
141
142config PCI_IXP4XX
143	bool "Intel IXP4xx PCI controller"
144	depends on ARM && OF
145	depends on ARCH_IXP4XX || COMPILE_TEST
146	default ARCH_IXP4XX
147	help
148	  Say Y here if you want support for the PCI host controller found
149	  in the Intel IXP4xx XScale-based network processor SoC.
150
151config VMD
152	depends on PCI_MSI && X86_64 && !UML
153	tristate "Intel Volume Management Device Driver"
154	help
155	  Adds support for the Intel Volume Management Device (VMD). VMD is a
156	  secondary PCI host bridge that allows PCI Express root ports,
157	  and devices attached to them, to be removed from the default
158	  PCI domain and placed within the VMD domain. This provides
159	  more bus resources than are otherwise possible with a
160	  single domain. If you know your system provides one of these and
161	  has devices attached to it, say Y; if you are not sure, say N.
162
163	  To compile this driver as a module, choose M here: the
164	  module will be called vmd.
165
166config PCI_LOONGSON
167	bool "LOONGSON PCIe controller"
168	depends on MACH_LOONGSON64 || COMPILE_TEST
169	depends on OF || ACPI
170	depends on PCI_QUIRKS
171	default MACH_LOONGSON64
172	help
173	  Say Y here if you want to enable PCI controller support on
174	  Loongson systems.
 
175
176config PCI_MVEBU
177	tristate "Marvell EBU PCIe controller"
178	depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
179	depends on MVEBU_MBUS
180	depends on ARM
181	depends on OF
182	select PCI_BRIDGE_EMUL
 
 
183	help
184	 Add support for Marvell EBU PCIe controller. This PCIe controller
185	 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
186	 Armada XP, Armada 375, Armada 38x and Armada 39x.
187
188config PCIE_MEDIATEK
189	tristate "MediaTek PCIe controller"
190	depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
191	depends on OF
192	depends on PCI_MSI
193	help
194	  Say Y here if you want to enable PCIe controller support on
195	  MediaTek SoCs.
196
197config PCIE_MEDIATEK_GEN3
198	tristate "MediaTek Gen3 PCIe controller"
199	depends on ARCH_MEDIATEK || COMPILE_TEST
200	depends on PCI_MSI
201	help
202	  Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
203	  This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
204	  and support up to 256 MSI interrupt numbers for
205	  multi-function devices.
206
207	  Say Y here if you want to enable Gen3 PCIe controller support on
208	  MediaTek SoCs.
209
210config PCIE_MT7621
211	tristate "MediaTek MT7621 PCIe controller"
212	depends on SOC_MT7621 || COMPILE_TEST
213	select PHY_MT7621_PCI
214	default SOC_MT7621
215	help
216	  This selects a driver for the MediaTek MT7621 PCIe Controller.
217
218config PCIE_MICROCHIP_HOST
219	tristate "Microchip AXI PCIe controller"
220	depends on PCI_MSI && OF
221	select PCI_HOST_COMMON
222	help
223	  Say Y here if you want kernel to support the Microchip AXI PCIe
224	  Host Bridge driver.
225
226config PCI_HYPERV_INTERFACE
227	tristate "Microsoft Hyper-V PCI Interface"
228	depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
229	help
230	  The Hyper-V PCI Interface is a helper driver that allows other
231	  drivers to have a common interface with the Hyper-V PCI frontend
232	  driver.
 
 
 
 
233
234config PCI_TEGRA
235	bool "NVIDIA Tegra PCIe controller"
236	depends on ARCH_TEGRA || COMPILE_TEST
237	depends on PCI_MSI
238	help
239	  Say Y here if you want support for the PCIe host controller found
240	  on NVIDIA Tegra SoCs.
241
242config PCIE_RCAR_HOST
243	bool "Renesas R-Car PCIe controller (host mode)"
244	depends on ARCH_RENESAS || COMPILE_TEST
 
 
245	depends on PCI_MSI
 
246	help
247	  Say Y here if you want PCIe controller support on R-Car SoCs in host
248	  mode.
249
250config PCIE_RCAR_EP
251	bool "Renesas R-Car PCIe controller (endpoint mode)"
252	depends on ARCH_RENESAS || COMPILE_TEST
253	depends on PCI_ENDPOINT
254	help
255	  Say Y here if you want PCIe controller support on R-Car SoCs in
256	  endpoint mode.
257
258config PCI_RCAR_GEN2
259	bool "Renesas R-Car Gen2 Internal PCI controller"
260	depends on ARCH_RENESAS || COMPILE_TEST
261	depends on ARM
262	help
263	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
264	  There are 3 internal PCI controllers available with a single
265	  built-in EHCI/OHCI host controller present on each one.
266
267config PCIE_ROCKCHIP
268	bool
269	depends on PCI
270
271config PCIE_ROCKCHIP_HOST
272	tristate "Rockchip PCIe controller (host mode)"
273	depends on ARCH_ROCKCHIP || COMPILE_TEST
274	depends on OF
275	depends on PCI_MSI
276	select MFD_SYSCON
277	select PCIE_ROCKCHIP
278	help
279	  Say Y here if you want internal PCI support on Rockchip SoC.
280	  There is 1 internal PCIe port available to support GEN2 with
281	  4 slots.
282
283config PCIE_ROCKCHIP_EP
284	bool "Rockchip PCIe controller (endpoint mode)"
285	depends on ARCH_ROCKCHIP || COMPILE_TEST
286	depends on OF
287	depends on PCI_ENDPOINT
288	select MFD_SYSCON
289	select PCIE_ROCKCHIP
290	help
291	  Say Y here if you want to support Rockchip PCIe controller in
292	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
293	  available to support GEN2 with 4 slots.
294
295config PCI_V3_SEMI
296	bool "V3 Semiconductor PCI controller"
297	depends on OF
298	depends on ARM || COMPILE_TEST
299	default ARCH_INTEGRATOR_AP
300
301config PCI_XGENE
302	bool "X-Gene PCIe controller"
303	depends on ARM64 || COMPILE_TEST
304	depends on OF || (ACPI && PCI_QUIRKS)
305	help
306	  Say Y here if you want internal PCI support on APM X-Gene SoC.
307	  There are 5 internal PCIe ports available. Each port is GEN3 capable
308	  and have varied lanes from x1 to x8.
309
310config PCI_XGENE_MSI
311	bool "X-Gene v1 PCIe MSI feature"
312	depends on PCI_XGENE
313	depends on PCI_MSI
314	default y
315	help
316	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
317	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
318
319config PCIE_XILINX
320	bool "Xilinx AXI PCIe controller"
 
321	depends on OF
322	depends on PCI_MSI
323	help
324	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
325	  Host Bridge driver.
326
327config PCIE_XILINX_DMA_PL
328	bool "Xilinx DMA PL PCIe host bridge support"
329	depends on ARCH_ZYNQMP || COMPILE_TEST
330	depends on PCI_MSI
331	select PCI_HOST_COMMON
332	help
333	  Say 'Y' here if you want kernel support for the Xilinx PL DMA
334	  PCIe host bridge. The controller is a Soft IP which can act as
335	  Root Port. If your system provides Xilinx PCIe host controller
336	  bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.
337
338config PCIE_XILINX_NWL
339	bool "Xilinx NWL PCIe controller"
340	depends on ARCH_ZYNQMP || COMPILE_TEST
341	depends on PCI_MSI
342	help
343	 Say 'Y' here if you want kernel support for Xilinx
344	 NWL PCIe controller. The controller can act as Root Port
345	 or End Point. The current option selection will only
346	 support root port enabling.
347
348config PCIE_XILINX_CPM
349	bool "Xilinx Versal CPM PCI controller"
350	depends on ARCH_ZYNQMP || COMPILE_TEST
351	select PCI_HOST_COMMON
 
352	help
353	  Say 'Y' here if you want kernel support for the
354	  Xilinx Versal CPM host bridge.
355
356source "drivers/pci/controller/cadence/Kconfig"
357source "drivers/pci/controller/dwc/Kconfig"
358source "drivers/pci/controller/mobiveil/Kconfig"
 
359endmenu
v6.2
  1# SPDX-License-Identifier: GPL-2.0
  2
  3menu "PCI controller drivers"
  4	depends on PCI
  5
  6config PCI_MVEBU
  7	tristate "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	help
 14	 Add support for Marvell EBU PCIe controller. This PCIe controller
 15	 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
 16	 Armada XP, Armada 375, Armada 38x and Armada 39x.
 17
 18config PCI_AARDVARK
 19	tristate "Aardvark PCIe controller"
 20	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
 21	depends on OF
 22	depends on PCI_MSI
 23	select PCI_BRIDGE_EMUL
 24	help
 25	 Add support for Aardvark 64bit PCIe Host Controller. This
 26	 controller is part of the South Bridge of the Marvel Armada
 27	 3700 SoC.
 28
 29config PCIE_XILINX_NWL
 30	bool "NWL PCIe Core"
 31	depends on ARCH_ZYNQMP || COMPILE_TEST
 32	depends on PCI_MSI
 33	help
 34	 Say 'Y' here if you want kernel support for Xilinx
 35	 NWL PCIe controller. The controller can act as Root Port
 36	 or End Point. The current option selection will only
 37	 support root port enabling.
 38
 39config PCI_FTPCI100
 40	bool "Faraday Technology FTPCI100 PCI controller"
 41	depends on OF
 42	default ARCH_GEMINI
 43
 44config PCI_IXP4XX
 45	bool "Intel IXP4xx PCI controller"
 46	depends on ARM && OF
 47	depends on ARCH_IXP4XX || COMPILE_TEST
 48	default ARCH_IXP4XX
 49	help
 50	  Say Y here if you want support for the PCI host controller found
 51	  in the Intel IXP4xx XScale-based network processor SoC.
 52
 53config PCI_TEGRA
 54	bool "NVIDIA Tegra PCIe controller"
 55	depends on ARCH_TEGRA || COMPILE_TEST
 56	depends on PCI_MSI
 57	help
 58	  Say Y here if you want support for the PCIe host controller found
 59	  on NVIDIA Tegra SoCs.
 60
 61config PCI_RCAR_GEN2
 62	bool "Renesas R-Car Gen2 Internal PCI controller"
 63	depends on ARCH_RENESAS || COMPILE_TEST
 64	depends on ARM
 65	help
 66	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
 67	  There are 3 internal PCI controllers available with a single
 68	  built-in EHCI/OHCI host controller present on each one.
 69
 70config PCIE_RCAR_HOST
 71	bool "Renesas R-Car PCIe host controller"
 72	depends on ARCH_RENESAS || COMPILE_TEST
 73	depends on PCI_MSI
 74	help
 75	  Say Y here if you want PCIe controller support on R-Car SoCs in host
 76	  mode.
 77
 78config PCIE_RCAR_EP
 79	bool "Renesas R-Car PCIe endpoint controller"
 80	depends on ARCH_RENESAS || COMPILE_TEST
 81	depends on PCI_ENDPOINT
 82	help
 83	  Say Y here if you want PCIe controller support on R-Car SoCs in
 84	  endpoint mode.
 85
 86config PCI_HOST_COMMON
 87	tristate
 88	select PCI_ECAM
 89
 90config PCI_HOST_GENERIC
 91	tristate "Generic PCI host controller"
 92	depends on OF
 93	select PCI_HOST_COMMON
 94	select IRQ_DOMAIN
 95	help
 96	  Say Y here if you want to support a simple generic PCI host
 97	  controller, such as the one emulated by kvmtool.
 98
 99config PCIE_XILINX
100	bool "Xilinx AXI PCIe host bridge support"
101	depends on OF || COMPILE_TEST
102	depends on PCI_MSI
103	help
104	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
105	  Host Bridge driver.
106
107config PCIE_XILINX_CPM
108	bool "Xilinx Versal CPM host bridge support"
109	depends on ARCH_ZYNQMP || COMPILE_TEST
110	select PCI_HOST_COMMON
111	help
112	  Say 'Y' here if you want kernel support for the
113	  Xilinx Versal CPM host bridge.
 
114
115config PCI_XGENE
116	bool "X-Gene PCIe controller"
117	depends on ARM64 || COMPILE_TEST
118	depends on OF || (ACPI && PCI_QUIRKS)
119	help
120	  Say Y here if you want internal PCI support on APM X-Gene SoC.
121	  There are 5 internal PCIe ports available. Each port is GEN3 capable
122	  and have varied lanes from x1 to x8.
123
124config PCI_XGENE_MSI
125	bool "X-Gene v1 PCIe MSI feature"
126	depends on PCI_XGENE
127	depends on PCI_MSI
128	default y
129	help
130	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
131	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
132
133config PCI_V3_SEMI
134	bool "V3 Semiconductor PCI controller"
135	depends on OF
136	depends on ARM || COMPILE_TEST
137	default ARCH_INTEGRATOR_AP
138
139config PCI_VERSATILE
140	bool "ARM Versatile PB PCI controller"
141	depends on ARCH_VERSATILE || COMPILE_TEST
142
 
 
 
 
 
 
 
 
 
 
 
143config PCIE_IPROC
144	tristate
145	help
146	  This enables the iProc PCIe core controller support for Broadcom's
147	  iProc family of SoCs. An appropriate bus interface driver needs
148	  to be enabled to select this.
149
150config PCIE_IPROC_PLATFORM
151	tristate "Broadcom iProc PCIe platform bus driver"
152	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
153	depends on OF
154	select PCIE_IPROC
155	default ARCH_BCM_IPROC
156	help
157	  Say Y here if you want to use the Broadcom iProc PCIe controller
158	  through the generic platform bus interface
159
160config PCIE_IPROC_BCMA
161	tristate "Broadcom iProc PCIe BCMA bus driver"
162	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
163	select PCIE_IPROC
164	select BCMA
165	default ARCH_BCM_5301X
166	help
167	  Say Y here if you want to use the Broadcom iProc PCIe controller
168	  through the BCMA bus interface
169
170config PCIE_IPROC_MSI
171	bool "Broadcom iProc PCIe MSI support"
172	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
173	depends on PCI_MSI
174	default ARCH_BCM_IPROC
175	help
176	  Say Y here if you want to enable MSI support for Broadcom's iProc
177	  PCIe controller
178
179config PCIE_ALTERA
180	tristate "Altera PCIe controller"
181	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
182	help
183	  Say Y here if you want to enable PCIe controller support on Altera
184	  FPGA.
185
186config PCIE_ALTERA_MSI
187	tristate "Altera PCIe MSI feature"
188	depends on PCIE_ALTERA
189	depends on PCI_MSI
190	help
191	  Say Y here if you want PCIe MSI support for the Altera FPGA.
192	  This MSI driver supports Altera MSI to GIC controller IP.
193
194config PCI_HOST_THUNDER_PEM
195	bool "Cavium Thunder PCIe controller to off-chip devices"
196	depends on ARM64 || COMPILE_TEST
197	depends on OF || (ACPI && PCI_QUIRKS)
198	select PCI_HOST_COMMON
199	help
200	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
201
202config PCI_HOST_THUNDER_ECAM
203	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
204	depends on ARM64 || COMPILE_TEST
205	depends on OF || (ACPI && PCI_QUIRKS)
206	select PCI_HOST_COMMON
207	help
208	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
209
210config PCIE_ROCKCHIP
211	bool
212	depends on PCI
 
 
 
 
 
213
214config PCIE_ROCKCHIP_HOST
215	tristate "Rockchip PCIe host controller"
216	depends on ARCH_ROCKCHIP || COMPILE_TEST
217	depends on OF
218	depends on PCI_MSI
219	select MFD_SYSCON
220	select PCIE_ROCKCHIP
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221	help
222	  Say Y here if you want internal PCI support on Rockchip SoC.
223	  There is 1 internal PCIe port available to support GEN2 with
224	  4 slots.
225
226config PCIE_ROCKCHIP_EP
227	bool "Rockchip PCIe endpoint controller"
228	depends on ARCH_ROCKCHIP || COMPILE_TEST
 
 
229	depends on OF
230	depends on PCI_ENDPOINT
231	select MFD_SYSCON
232	select PCIE_ROCKCHIP
233	help
234	  Say Y here if you want to support Rockchip PCIe controller in
235	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
236	  available to support GEN2 with 4 slots.
237
238config PCIE_MEDIATEK
239	tristate "MediaTek PCIe controller"
240	depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
241	depends on OF
242	depends on PCI_MSI
243	help
244	  Say Y here if you want to enable PCIe controller support on
245	  MediaTek SoCs.
246
247config PCIE_MEDIATEK_GEN3
248	tristate "MediaTek Gen3 PCIe controller"
249	depends on ARCH_MEDIATEK || COMPILE_TEST
250	depends on PCI_MSI
251	help
252	  Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
253	  This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
254	  and support up to 256 MSI interrupt numbers for
255	  multi-function devices.
256
257	  Say Y here if you want to enable Gen3 PCIe controller support on
258	  MediaTek SoCs.
259
260config VMD
261	depends on PCI_MSI && X86_64 && SRCU && !UML
262	tristate "Intel Volume Management Device Driver"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263	help
264	  Adds support for the Intel Volume Management Device (VMD). VMD is a
265	  secondary PCI host bridge that allows PCI Express root ports,
266	  and devices attached to them, to be removed from the default
267	  PCI domain and placed within the VMD domain. This provides
268	  more bus resources than are otherwise possible with a
269	  single domain. If you know your system provides one of these and
270	  has devices attached to it, say Y; if you are not sure, say N.
271
272	  To compile this driver as a module, choose M here: the
273	  module will be called vmd.
 
 
 
 
 
274
275config PCIE_BRCMSTB
276	tristate "Broadcom Brcmstb PCIe host controller"
277	depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
278		   BMIPS_GENERIC || COMPILE_TEST
279	depends on OF
280	depends on PCI_MSI
281	default ARCH_BRCMSTB || BMIPS_GENERIC
282	help
283	  Say Y here to enable PCIe host controller support for
284	  Broadcom STB based SoCs, like the Raspberry Pi 4.
 
 
 
 
 
 
 
 
285
286config PCI_HYPERV_INTERFACE
287	tristate "Hyper-V PCI Interface"
288	depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI
 
289	help
290	  The Hyper-V PCI Interface is a helper driver allows other drivers to
291	  have a common interface with the Hyper-V PCI frontend driver.
 
 
 
 
 
292
293config PCI_LOONGSON
294	bool "LOONGSON PCI Controller"
295	depends on MACH_LOONGSON64 || COMPILE_TEST
296	depends on OF || ACPI
297	depends on PCI_QUIRKS
298	default MACH_LOONGSON64
 
299	help
300	  Say Y here if you want to enable PCI controller support on
301	  Loongson systems.
 
302
303config PCIE_MICROCHIP_HOST
304	bool "Microchip AXI PCIe host bridge support"
305	depends on PCI_MSI && OF
306	select PCI_HOST_COMMON
 
 
 
307	help
308	  Say Y here if you want kernel to support the Microchip AXI PCIe
309	  Host Bridge driver.
 
 
 
 
 
 
 
310
311config PCIE_HISI_ERR
312	depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
313	bool "HiSilicon HIP PCIe controller error handling driver"
 
314	help
315	  Say Y here if you want error handling support
316	  for the PCIe controller's errors on HiSilicon HIP SoCs
 
317
318config PCIE_APPLE_MSI_DOORBELL_ADDR
319	hex
320	default 0xfffff000
321	depends on PCIE_APPLE
 
 
 
 
322
323config PCIE_APPLE
324	tristate "Apple PCIe controller"
325	depends on ARCH_APPLE || COMPILE_TEST
326	depends on OF
327	depends on PCI_MSI
 
 
 
 
 
 
 
 
328	select PCI_HOST_COMMON
329	help
330	  Say Y here if you want to enable PCIe controller support on Apple
331	  system-on-chips, like the Apple M1. This is required for the USB
332	  type-A ports, Ethernet, Wi-Fi, and Bluetooth.
 
333
334	  If unsure, say Y if you have an Apple Silicon system.
 
 
 
 
 
 
 
 
335
336config PCIE_MT7621
337	tristate "MediaTek MT7621 PCIe Controller"
338	depends on SOC_MT7621 || COMPILE_TEST
339	select PHY_MT7621_PCI
340	default SOC_MT7621
341	help
342	  This selects a driver for the MediaTek MT7621 PCIe Controller.
 
343
 
344source "drivers/pci/controller/dwc/Kconfig"
345source "drivers/pci/controller/mobiveil/Kconfig"
346source "drivers/pci/controller/cadence/Kconfig"
347endmenu