Hello! This patch series add support for Orion PCIe controller into pci-mvebu.c driver. V3 version has completely rewritten pci-mvebu.c code to parse all physical addresses from device tree files according to mvebu-pci.txt documentation, allow access to all extended PCIe config space registers and use modern kernel API pci_remap_cfgspace() and mvebu_mbus_add_window_by_id() fir mapping PCIe config space. Most of Marvell device tree code in pci-mvebu.c is giant magic, but it was there because this change and it is de-facto API between dts files and kernel used for a long time. Note that it is misused according to PCI device tree bindings, but we have to follow this Marvell bindings to do not introduce backward incompatibility issues for other non-Orion platforms. Mauri tested these changes on DNS323 board with both DT and non-DT builds. PCIe AER is working too (one of the feature which proved that access to extended PCIe config registers is working fine). After this patch is accepted we are planning to look at existing Orion arch specific code and covert it to use this new DT based pci-mvebu.c code. Later this would allow to kill arch specific Orion PCIe code, which is in arch/arm/plat-orion/pcie.c and parts also in file arch/arm/mach-orion5x/pci.c (shared with old-PCI bus code). This patch series depends on another patches: https://lore.kernel.org/linux-pci/20220524122817.7199-1-pali@xxxxxxxxxx/ https://lore.kernel.org/linux-pci/20220817230036.817-3-pali@xxxxxxxxxx/ Mauri Sandberg (2): bus: mvebu-mbus: add configuration space aperture dt-bindings: PCI: mvebu: Add orion5x compatible Pali Rohár (5): ARM: orion: Move PCIe mbus window mapping from orion5x_setup_wins() to pcie_setup() PCI: mvebu: Remove unused busn member PCI: mvebu: Cleanup error handling in mvebu_pcie_probe() PCI: mvebu: Add support for Orion PCIe controller ARM: dts: orion5x: Add PCIe node .../devicetree/bindings/pci/mvebu-pci.txt | 4 +- arch/arm/boot/dts/orion5x.dtsi | 51 +++++ arch/arm/mach-orion5x/common.c | 13 -- arch/arm/mach-orion5x/pci.c | 14 ++ drivers/bus/mvebu-mbus.c | 26 ++- drivers/pci/controller/Kconfig | 4 +- drivers/pci/controller/pci-mvebu.c | 202 ++++++++++++++---- include/linux/mbus.h | 1 + 8 files changed, 256 insertions(+), 59 deletions(-) -- 2.20.1