Skip to content

Commit 26ae421

Browse files
committed
Merge tag 'pci-v7.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
Pull pci updates from Bjorn Helgaas: "Enumeration: - Remove MPS/MRRS Kconfig settings (CONFIG_PCIE_BUS_*) that worked around a WiFi device defect; use a quirk or boot-time "pci=pcie_bus_tune_*" kernel parameter instead (Bjorn Helgaas) - Always lift 2.5GT/s restriction in PCIe failed link retraining to avoid clamping a link to 2.5GT/s after hot-plug changes the device (Maciej W. Rozycki) - Request bus reassignment when not probe-only to fix an enumeration regression on Marvell CN106XX and possibly other DT-based systems (Ratheesh Kannoth) - Fix procfs race between pci_proc_init() and pci_bus_add_device() that resulted in 'proc_dir_entry ... already registered' warnings and pointer corruption (Krzysztof Wilczyński) - Fix sysfs race that causes 'duplicate filename' warnings and boot panics by converting PCI resource files to static attributes (Krzysztof Wilczyński) - Expose sysfs 'resourceN_resize' attributes only on platforms with PCI mmap (Krzysztof Wilczyński) - Require CAP_SYS_ADMIN to write to sysfs 'resourceN_resize' attributes (Krzysztof Wilczyński) - Add security_locked_down(LOCKDOWN_PCI_ACCESS) to alpha PCI resource mmap path to match the generic path (Krzysztof Wilczyński) - Use kstrtobool() to parse the 'rom' attribute input to avoid the unexpected behavior of enabling the ROM when writing '0' with no trailing newline (Krzysztof Wilczyński) Resource management: - Improve resource claim logging for debuggability (Ilpo Järvinen) - Clean up several uses of const parameters (Ilpo Järvinen) - Check option ROM header signatures and lengths before accessing to avoid page faults and alignment faults (Guixin Liu) ASPM: - Don't reconfigure ASPM when entering low-power D-state; only do it when returning back to D0 (Carlos Bilbao) Power management: - During suspend, set power state to 'unknown' for all devices, not just those with drivers (Lukas Wunner) - Skip restoring Resizable BARs and VF Resizable BARs if device doesn't respond to config reads, to avoid invalid array accesses (Marco Nenciarini) - Add pci_suspend_retains_context() so drivers can tell whether devices retain internal state across suspend/resume, since some platforms reset devices on suspend; use this in nvme to avoid issues on Qcom RCs (Manivannan Sadhasivam) Power control: - Only to power on/off devices that actually support power control to avoid poking at incompatible devices mentioned in DT (Manivannan Sadhasivam) Virtualization and resets: - Log device readiness timeouts as errors, not warnings, because the device is likely unusable in this case (Bjorn Helgaas) - Wait for device readiness after soft reset (D3hot -> D0uninitialized transition), when the device may respond with Request Retry Status (RRS) if it needs more time to initialize (Bjorn Helgaas) - Drop unnecessary retries when restoring BARs because resets should now already include all required delays (Lukas Wunner) - Avoid FLR for MediaTek MT7925 WiFi, where FLR fails after a VM terminates uncleanly (Jose Ignacio Tornos Martinez) - Avoid SBR for Qualcomm WCN6855/WCN7850 WiFi, SDX62/SDX65 modems, which seem not to support it correctly (Jose Ignacio Tornos Martinez) Peer-to-peer DMA: - Prevent P2PDMA as well as CPU access to non-mappable BARs, e.g., s390 ISM BARs (Matt Evans) - Add Intel QAT, DSA, IAA devices to whitelist (Lukas Wunner) Endpoint framework: - Add endpoint controller APIs for use by function drivers to discover auxiliary blocks like DMA engines (Koichiro Den) - Remember DesignWare eDMA engine base/size and expose them via the EPC aux-resource API (Koichiro Den) - Add endpoint embedded doorbell fallback, used if MSI allocation fails (Koichiro Den) - Validate BAR index and remove dead BAR read in endpoint doorbell test (Carlos Bilbao) - Unwind MSI/MSI-X vectors if NTB initialization fails part-way through (Koichiro Den) - Cache sleepable pci_irq_vector() value at ISR setup to avoid calling it from hardirq context (Koichiro Den) - Call sleepable pci_epc_raise_irq() from a work item instead of atomic context, e.g., when setting bits in NTB peer doorbells in the ntb_peer_db_set() path (Koichiro Den) - Report 0-based vNTB doorbell vector to account for link event 0 and historically skipped slot 1 (Koichiro Den) - Prevent configfs writes to vNTB db_count and other values that are already in use after EPC attach (Koichiro Den) - Account for vNTB db_valid reserved slots (link event 0 and historically skipped slot 1) so they don't appear as valid doorbells (Koichiro Den) - Implement vNTB .db_vector_count()/mask() for doorbells so clients can use multiple vectors and avoid thundering herds (Koichiro Den) - Report 0-based NTB doorbell vector to account for link event 0 and historically skipped slot 1 (Koichiro Den) - Fix doorbell bitmask and IRQ vector handling to clear only specified bits, use the correct vector for non-contiguous Linux IRQ numbers, and validate incoming vectors (Koichiro Den) - Implement NTB .db_vector_count()/mask() for doorbells so clients can use multiple vectors (Koichiro Den) Native PCIe controller infrastructure: - Add pci_host_common_link_train_delay() for the mandatory delay after > 5GT/s Link training completes and use it for cadence HPA, j721e, LGA; dwc; aardvark, mediatek-gen3, rzg3s (Hans Zhang) - Protect root bus removal with rescan lock in altera, brcmstb, cadence, dwc, iproc, mediatek, plda, rockchip to prevent use-after-free or crashes when racing with sysfs rescan or hotplug (Hans Zhang) - Add pci_host_common_parse_ports() for use by any native driver to parse Root Port properties (per-Link features like width, speed, PHY, power and reset control, etc should be described in Root Port stanzas, not the host bridge; currently only reset GPIOs implemented) (Sherry Sun) New native PCIe controller drivers: - Add DT binding and driver for UltraRISC DP1000 PCIe controller (Xincheng Zhang, Jia Wang) Altera PCIe controller driver: - Do not dispose of the parent IRQ mapping, which belongs to the parent interrupt controller (Mahesh Vaidya) - Fix chained IRQ handler ordering issue and resource leaks on probe failure (Mahesh Vaidya) AMD MDB PCIe controller driver: - Assert PERST# on shutdown so any connected Endpoints are held in reset during shutdown (Sai Krishna Musham) Amlogic Meson PCIe controller driver: - Propagate devm_add_action_or_reset() failure to fix probe error path (Shuvam Pandey) - Add .remove() callback to deinitialize the host bridge and power off the PHY (Shuvam Pandey) Broadcom iProc PCIe controller driver: - Restore .map_irq() assignment; its removal broke INTx on the iproc platform bus driver (Mark Tomlinson) Broadcom STB PCIe controller driver: - No change, but products using certain WiFi devices may be affected by removal of CONFIG_PCIE_BUS_* (see above) Freescale i.MX6 PCIe controller driver: - Move IMX6SX_GPR12_PCIE_TEST_POWERDOWN handling into the core reset functions (Richard Zhu) - Assert PERST# before enabling regulators to ensure that even if power is enabled, endpoint stays inactive until REFCLK is stable (Sherry Sun) - Parse reset properties in Root Port nodes (falling back to host bridge) to help support Key E connectors and the pwrctrl framework (Sherry Sun) - Configure i.MX95 REF_USE_PAD before PHY reset (Richard Zhu) - Assert i.MX95 ref_clk_en after reference clock stabilizes (Richard Zhu) - Integrate new pwrctrl API for DTs with Root Port-level power supplies (Sherry Sun) Intel Gateway PCIe controller driver: - Enable clock before PHY init for correct ordering (Florian Eckert) - Add .start_link() callback so the driver works again (Florian Eckert) - Stop overwriting the ATU base address discovered by dw_pcie_get_resources() (Florian Eckert) - Add DT 'atu' region since this is hardware-specific, and fall back to driver default if lacking (Florian Eckert) Loongson PCIe controller driver: - Ignore downstream devices only on internal bridges to avoid Loongson hardware issue (Rong Zhang) - Quirk old Loongson-3C6000 bridges that advertise incorrect supported link speeds (Ziyao Li) Marvell MVEBU PCIe controller driver: - Use fixed-width interrupt masks to avoid truncation in 64-bit builds (Rosen Penev) MediaTek PCIe controller driver: - Use FIELD_PREP() to fix incorrect operator precedence in PCIE_FTS_NUM_L0 (Li RongQing) - Fix IRQ domain leak when port fails to enable (Manivannan Sadhasivam) - Use actual physical address for MSI message address instead of virt_to_phys() (Manivannan Sadhasivam) - Add EcoNet EN7528 to DT binding (Caleb James DeLisle) MediaTek PCIe Gen3 controller driver: - Deassert PCIE_PHY_RSTB so REFCLK is stable for at least 100ms (PCIE_T_PVPERL_MS) before deasserting PERST# (Jian Yang) - Add .shutdown() to assert PERST# before powering down device (Jian Yang) - Do full device power down on removal, including asserting PERST#, when removing driver (Chen-Yu Tsai) - Fix a 'failed to create pwrctrl devices' error message that was inadvertently skipped (Chen-Yu Tsai) NVIDIA Tegra194 PCIe controller driver: - Program the DesignWare PORT_AFR L1 entrance latency based on the 'aspm-l1-entry-delay-ns' DT property (Manikanta Maddireddy) Qualcomm PCIe controller driver: - Add Eliza SoC compatible in DT binding (Krishna Chaitanya Chundru) - Set max OPP during resume so DBI register accesses don't fail with NoC errors (Qiang Yu) - Add pci_host_common_d3cold_possible() to determine whether downstream devices are already in D3hot and wakeup-enabled devices are capable of generating PME from D3cold (Krishna Chaitanya Chundru) - Add .get_ltssm() callback to get the LTSSM status without DBI, since DBI may be inaccessible after PME_Turn_Off (Krishna Chaitanya Chundru) - Power down PHY via PARF_PHY_CTRL before disabling rails/clocks to avoid power leakage (Krishna Chaitanya Chundru) - Decide whether suspend should put the link in L2 and power down using pci_host_common_d3cold_possible() instead of checking whether ASPM L1 is enabled (Krishna Chaitanya Chundru) - Add qcom D3cold support to tear down interconnect bandwidth and OPP votes (Krishna Chaitanya Chundru) - Handle unsupported mixed PERST#/PHY DT configurations, e.g., PHY in RP node while PERST# is in the RC node, but warn about the DT issue (Qiang Yu) - Program T_POWER_ON based on DT 't-power-on-us' property in case hardware advertises incorrect values (Krishna Chaitanya Chundru) - Disable ASPM L0s for SA8775P (Shawn Guo) - Initialize DWC MSI lock for firmware-managed ECAM hosts, which don't use the dw_pcie_host_init() path that initializes the lock (Yadu M G) Renesas RZ/G3S PCIe controller driver: - Add RZ/V2N DT support (Lad Prabhakar) SOPHGO PCIe controller driver: - Add 'dma-coherent' DT property for sg2042-pcie driver (Han Gao) Synopsys DesignWare PCIe controller driver: - Apply ECRC TLP Digest workaround for all DesignWare cores prior to 5.10a, not just 4.90a and 5.00a (Manikanta Maddireddy) - Use common struct dw_pcie 'mode' rather than duplicating it in artpec6, dra7xx, dwc-pcie, and keembay driver structs (Hans Zhang) - Use DEFINE_SHOW_ATTRIBUTE for ltssm_status debugfs to reduce boilerplate and fix a seq_file memory leak by including a .release() callback (Hans Zhang) - Fix a signedness bug in fault injection test code (Dan Carpenter) - Avoid NULL pointer dereference when tearing down debugfs for controller that lacks RAS DES capability (Shuvam Pandey) MicroSemi Switchtec management driver: - Add Gen6 Device IDs (Ben Reed) Miscellaneous: - Remove unused gpio.h include from amd-mdb, designware-plat, fu740, visconti drivers (Andy Shevchenko) - Fix typos in documentation (josh ziegler) - Use FIELD_MODIFY() instead of open-coding it (Hans Zhang)" * tag 'pci-v7.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (168 commits) PCI/sysfs: Use kstrtobool() to parse the ROM attribute input PCI/sysfs: Limit BAR resize attribute scope to platforms with PCI mmap PCI/sysfs: Remove pci_create_legacy_files() and pci_sysfs_init() PCI/sysfs: Convert legacy I/O and memory attributes to static definitions PCI/sysfs: Add __weak pci_legacy_has_sparse() helper alpha/PCI: Compute legacy size in pci_mmap_legacy_page_range() PCI: Add macros for legacy I/O and memory address space sizes PCI/sysfs: Remove pci_{create,remove}_sysfs_dev_files() alpha/PCI: Convert resource files to static attributes alpha/PCI: Add static PCI resource attribute macros alpha/PCI: Remove WARN from __pci_mmap_fits() and __legacy_mmap_fits() alpha/PCI: Fix __pci_mmap_fits() overflow for zero-length BARs alpha/PCI: Use PCI resource accessor macros alpha/PCI: Use BAR index in sysfs attr->private instead of resource pointer alpha/PCI: Add security_locked_down() check to pci_mmap_resource() PCI/sysfs: Limit pci_sysfs_init() late_initcall compile scope PCI/sysfs: Add stubs for pci_{create,remove}_sysfs_dev_files() PCI/sysfs: Warn about BAR resize failure in __resource_resize_store() PCI/sysfs: Convert PCI resource files to static attributes PCI/proc: Fix race between pci_proc_init() and pci_bus_add_device() ...
2 parents d0bcd48 + 2c2fb7a commit 26ae421

109 files changed

Lines changed: 3646 additions & 1315 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/PCI/pci.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ the PCI_IRQ_MSI and PCI_IRQ_MSIX flags will fail, so try to always
338338
specify PCI_IRQ_INTX as well.
339339

340340
Drivers that have different interrupt handlers for MSI/MSI-X and
341-
legacy INTx should chose the right one based on the msi_enabled
341+
legacy INTx should choose the right one based on the msi_enabled
342342
and msix_enabled flags in the pci_dev structure after calling
343343
pci_alloc_irq_vectors.
344344

Documentation/PCI/pciebus-howto.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ register its service with the PCI Express Port Bus driver (see
9797
section 5.2.1 & 5.2.2). It is important that a service driver
9898
initializes the pcie_port_service_driver data structure, included in
9999
header file /include/linux/pcieport_if.h, before calling these APIs.
100-
Failure to do so will result an identity mismatch, which prevents
100+
Failure to do so will result in an identity mismatch, which prevents
101101
the PCI Express Port Bus driver from loading a service driver.
102102

103103
pcie_port_service_register

Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,34 @@ properties:
6666
- const: dma
6767

6868
reset-gpio:
69+
deprecated: true
6970
description: Should specify the GPIO for controlling the PCI bus device
7071
reset signal. It's not polarity aware and defaults to active-low reset
7172
sequence (L=reset state, H=operation state) (optional required).
73+
This property is deprecated, instead of referencing this property from the
74+
host bridge node, use the reset-gpios property from the root port node.
7275

7376
reset-gpio-active-high:
77+
deprecated: true
7478
description: If present then the reset sequence using the GPIO
7579
specified in the "reset-gpio" property is reversed (H=reset state,
7680
L=operation state) (optional required).
81+
This property is deprecated along with the reset-gpio property above, use
82+
the reset-gpios property from the root port node.
7783
type: boolean
7884

85+
pcie@0:
86+
description:
87+
Describe the i.MX6 PCIe Root Port.
88+
type: object
89+
$ref: /schemas/pci/pci-pci-bridge.yaml#
90+
91+
properties:
92+
reg:
93+
maxItems: 1
94+
95+
unevaluatedProperties: false
96+
7997
required:
8098
- compatible
8199
- reg
@@ -236,6 +254,7 @@ unevaluatedProperties: false
236254
examples:
237255
- |
238256
#include <dt-bindings/clock/imx6qdl-clock.h>
257+
#include <dt-bindings/gpio/gpio.h>
239258
#include <dt-bindings/interrupt-controller/arm-gic.h>
240259
241260
pcie: pcie@1ffc000 {
@@ -262,5 +281,18 @@ examples:
262281
<&clks IMX6QDL_CLK_LVDS1_GATE>,
263282
<&clks IMX6QDL_CLK_PCIE_REF_125M>;
264283
clock-names = "pcie", "pcie_bus", "pcie_phy";
284+
285+
pcie_port0: pcie@0 {
286+
compatible = "pciclass,0604";
287+
device_type = "pci";
288+
reg = <0x0 0x0 0x0 0x0 0x0>;
289+
bus-range = <0x01 0xff>;
290+
291+
#address-cells = <3>;
292+
#size-cells = <2>;
293+
ranges;
294+
295+
reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
296+
};
265297
};
266298
...

Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,20 @@ properties:
2727
- const: snps,dw-pcie
2828

2929
reg:
30+
minItems: 3
3031
items:
3132
- description: Controller control and status registers.
3233
- description: PCIe configuration registers.
3334
- description: Controller application registers.
35+
- description: Internal Address Translation Unit (iATU) registers.
3436

3537
reg-names:
38+
minItems: 3
3639
items:
3740
- const: dbi
3841
- const: config
3942
- const: app
43+
- const: atu
4044

4145
ranges:
4246
maxItems: 1
@@ -95,8 +99,9 @@ examples:
9599
#size-cells = <2>;
96100
reg = <0xd0e00000 0x1000>,
97101
<0xd2000000 0x800000>,
98-
<0xd0a41000 0x1000>;
99-
reg-names = "dbi", "config", "app";
102+
<0xd0a41000 0x1000>,
103+
<0xd0ec0000 0x1000>;
104+
reg-names = "dbi", "config", "app", "atu";
100105
linux,pci-domain = <0>;
101106
max-link-speed = <4>;
102107
bus-range = <0x00 0x08>;

Documentation/devicetree/bindings/pci/mediatek-pcie.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ properties:
1414
oneOf:
1515
- enum:
1616
- airoha,an7583-pcie
17+
- econet,en7528-pcie
1718
- mediatek,mt2712-pcie
1819
- mediatek,mt7622-pcie
1920
- mediatek,mt7629-pcie
@@ -226,6 +227,31 @@ allOf:
226227

227228
mediatek,pbus-csr: false
228229

230+
- if:
231+
properties:
232+
compatible:
233+
contains:
234+
const: econet,en7528-pcie
235+
then:
236+
properties:
237+
clocks:
238+
maxItems: 1
239+
240+
clock-names:
241+
maxItems: 1
242+
243+
resets: false
244+
245+
reset-names: false
246+
247+
power-domains: false
248+
249+
mediatek,pbus-csr: false
250+
251+
required:
252+
- phys
253+
- phy-names
254+
229255
unevaluatedProperties: false
230256

231257
examples:

Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ properties:
2020
- const: qcom,pcie-sm8550
2121
- items:
2222
- enum:
23+
- qcom,eliza-pcie
2324
- qcom,kaanapali-pcie
2425
- qcom,sar2130p-pcie
2526
- qcom,pcie-sm8650
@@ -91,6 +92,55 @@ required:
9192

9293
allOf:
9394
- $ref: qcom,pcie-common.yaml#
95+
- if:
96+
properties:
97+
compatible:
98+
contains:
99+
const: qcom,eliza-pcie
100+
then:
101+
properties:
102+
reg:
103+
minItems: 6
104+
reg-names:
105+
minItems: 6
106+
107+
- if:
108+
properties:
109+
compatible:
110+
contains:
111+
const: qcom,eliza-pcie
112+
then:
113+
properties:
114+
clocks:
115+
minItems: 8
116+
maxItems: 8
117+
clock-names:
118+
minItems: 8
119+
maxItems: 8
120+
121+
- if:
122+
properties:
123+
compatible:
124+
contains:
125+
const: qcom,eliza-pcie
126+
then:
127+
properties:
128+
interrupts:
129+
minItems: 9
130+
interrupt-names:
131+
minItems: 9
132+
133+
- if:
134+
properties:
135+
compatible:
136+
contains:
137+
const: qcom,eliza-pcie
138+
then:
139+
properties:
140+
resets:
141+
minItems: 2
142+
reset-names:
143+
minItems: 2
94144

95145
unevaluatedProperties: false
96146

Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,27 @@
44
$id: http://devicetree.org/schemas/pci/renesas,r9a08g045-pcie.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: Renesas RZ/G3S PCIe host controller
7+
title: Renesas RZ/G3S PCIe host controller (and similar SoCs)
88

99
maintainers:
1010
- Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
1111

12-
description:
13-
Renesas RZ/G3{E,S} PCIe host controllers comply with PCIe
14-
Base Specification 4.0 and support up to 5 GT/s (Gen2) for RZ/G3S and
15-
up to 8 GT/s (Gen3) for RZ/G3E.
12+
description: |
13+
PCIe host controller found in Renesas RZ/G3S and similar SoCs complies
14+
with PCIe Base Specification 4.0 and supports different link speeds
15+
depending on the SoC variant:
16+
- Gen2 (5 GT/s): RZ/G3S
17+
- Gen3 (8 GT/s): RZ/G3E, RZ/V2N
1618
1719
properties:
1820
compatible:
19-
enum:
20-
- renesas,r9a08g045-pcie # RZ/G3S
21-
- renesas,r9a09g047-pcie # RZ/G3E
21+
oneOf:
22+
- enum:
23+
- renesas,r9a08g045-pcie # RZ/G3S
24+
- renesas,r9a09g047-pcie # RZ/G3E
25+
- items:
26+
- const: renesas,r9a09g056-pcie # RZ/V2N
27+
- const: renesas,r9a09g047-pcie
2228

2329
reg:
2430
maxItems: 1
@@ -152,6 +158,7 @@ patternProperties:
152158
enum:
153159
- 0x0033
154160
- 0x0039
161+
- 0x003b
155162

156163
clocks:
157164
items:

Documentation/devicetree/bindings/pci/sophgo,sg2042-pcie-host.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ properties:
3030
device-id:
3131
const: 0x2042
3232

33+
dma-coherent: true
34+
3335
msi-parent: true
3436

3537
allOf:
@@ -60,5 +62,6 @@ examples:
6062
vendor-id = <0x1f1c>;
6163
device-id = <0x2042>;
6264
cdns,no-bar-match-nbits = <48>;
65+
dma-coherent;
6366
msi-parent = <&msi>;
6467
};
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/ultrarisc,dp1000-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: UltraRISC DP1000 PCIe Host Controller
8+
9+
description:
10+
UltraRISC DP1000 SoC PCIe host controller is based on the DesignWare PCIe IP.
11+
12+
maintainers:
13+
- Xincheng Zhang <zhangxincheng@ultrarisc.com>
14+
- Jia Wang <wangjia@ultrarisc.com>
15+
16+
allOf:
17+
- $ref: /schemas/pci/snps,dw-pcie.yaml#
18+
19+
properties:
20+
compatible:
21+
const: ultrarisc,dp1000-pcie
22+
23+
reg:
24+
items:
25+
- description: Data Bus Interface (DBI) registers.
26+
- description: PCIe configuration space region.
27+
28+
reg-names:
29+
items:
30+
- const: dbi
31+
- const: config
32+
33+
num-lanes:
34+
$ref: /schemas/types.yaml#/definitions/uint32
35+
enum: [4, 16]
36+
description: Number of lanes to use.
37+
38+
interrupts:
39+
items:
40+
- description: MSI interrupt
41+
- description: Legacy INTA interrupt
42+
- description: Legacy INTB interrupt
43+
- description: Legacy INTC interrupt
44+
- description: Legacy INTD interrupt
45+
46+
interrupt-names:
47+
items:
48+
- const: msi
49+
- const: inta
50+
- const: intb
51+
- const: intc
52+
- const: intd
53+
54+
required:
55+
- compatible
56+
- reg
57+
- reg-names
58+
- interrupts
59+
- interrupt-names
60+
61+
unevaluatedProperties: false
62+
63+
examples:
64+
- |
65+
soc {
66+
#address-cells = <2>;
67+
#size-cells = <2>;
68+
69+
pcie@21000000 {
70+
compatible = "ultrarisc,dp1000-pcie";
71+
reg = <0x0 0x21000000 0x0 0x01000000>,
72+
<0x0 0x4fff0000 0x0 0x00010000>;
73+
reg-names = "dbi", "config";
74+
ranges = <0x81000000 0x0 0x4fbf0000 0x0 0x4fbf0000 0x0 0x00400000>,
75+
<0x82000000 0x0 0x40000000 0x0 0x40000000 0x0 0x0fbf0000>,
76+
<0xc3000000 0x40 0x00000000 0x40 0x00000000 0xd 0x00000000>;
77+
#address-cells = <3>;
78+
#size-cells = <2>;
79+
#interrupt-cells = <1>;
80+
device_type = "pci";
81+
dma-coherent;
82+
bus-range = <0x0 0xff>;
83+
num-lanes = <16>;
84+
interrupt-parent = <&plic>;
85+
interrupts = <43>, <44>, <45>, <46>, <47>;
86+
interrupt-names = "msi", "inta", "intb", "intc", "intd";
87+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
88+
interrupt-map = <0x0 0x0 0x0 0x1 &plic 44>,
89+
<0x0 0x0 0x0 0x2 &plic 45>,
90+
<0x0 0x0 0x0 0x3 &plic 46>,
91+
<0x0 0x0 0x0 0x4 &plic 47>;
92+
};
93+
};

MAINTAINERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21050,6 +21050,14 @@ S: Maintained
2105021050
F: Documentation/devicetree/bindings/pci/starfive,jh7110-pcie.yaml
2105121051
F: drivers/pci/controller/plda/pcie-starfive.c
2105221052

21053+
PCIE DRIVER FOR ULTRARISC DP1000
21054+
M: Xincheng Zhang <zhangxincheng@ultrarisc.com>
21055+
M: Jia Wang <wangjia@ultrarisc.com>
21056+
L: linux-pci@vger.kernel.org
21057+
S: Maintained
21058+
F: Documentation/devicetree/bindings/pci/ultrarisc,dp1000-pcie.yaml
21059+
F: drivers/pci/controller/dwc/pcie-ultrarisc.c
21060+
2105321061
PCIE ENDPOINT DRIVER FOR QUALCOMM
2105421062
M: Manivannan Sadhasivam <mani@kernel.org>
2105521063
L: linux-pci@vger.kernel.org

0 commit comments

Comments
 (0)