[PATCH v4 0/2] Add PCIe host driver support for Mediatek SoCs
From: Ryder Lee
Date: Sun May 14 2017 - 23:10:46 EST
Hi,
This patch series add Mediatek Gen2 PCIe host controller driver and
dt-binding document. It can be found on MT7623 series SoCs.
This driver was validated using Broadcom Tigon3 and Intel(R) 82575/82576
gigabit ethernet card.
P.S.
Hi Arnd,
I still keep interrupt-map properties of the child nodes in this version.
Because I consider if some ports link down that will break the order
of child buses we made in the binding. In such case, I'm not sure how to
cover it just using the 'bus' portion of the device address in the
interrupt-map properties from parent node.
But if you feel this is inappropriate, I will remove those in next version.
Changes since v4:
- move the per-port registers to the parent node.
- use a valid compatible for hifsys controller.
- use the 'sysirq' instead of 'gic' as a correct 'interrupt-parent' of the
interrupt-map properties.
'sysirq' is an interrupt-controller that could help us to inverse GIC SPIs polarity
so that we could properly set irq type to level low without any extra properties.
I made a **big mistake** to select wrong interrupt-parent in previous version.
Now, we could remove interrupt properties entirely from binding.
Changes since v3:
- correct sub-nodes unit addresses.
Changes since v2:
- modify Kconfig to avoid kbuild test error on some architecture.
- change compatible string.
- revise binding document:
add missing interrupt-names.
remove the board dts example and drop 'status' properties.
remove unnecessary descriptions bout standard PCI bus binding.
Changes since v1:
- add .suppress_bind_attrs.
- remove unnecessary *_valid_device() pattern.
- remove PCI_PROBE_ONLY.
- use the regular readl() instead of readl_relaxed().
- add .map_bus() and change to use pci_generic_config_read/pci_generic_config_write.
- revise dt-binding document and move nonstandard properties to root node.
- change compatible string.
- use interrupt-map property and replace mtk_pcie_map_irq() with of_irq_parse_and_map_pci().
- use the new pci_register_host_bridge() method instead of pci_scan_root_bus()
Ryder Lee (2):
PCI: mediatek: Add Mediatek PCIe host controller support
dt-bindings: pcie: Add documentation for Mediatek PCIe
.../bindings/pci/mediatek,mt7623-pcie.txt | 130 +++++
drivers/pci/host/Kconfig | 11 +
drivers/pci/host/Makefile | 1 +
drivers/pci/host/pcie-mediatek.c | 559 +++++++++++++++++++++
4 files changed, 701 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pci/mediatek,mt7623-pcie.txt
create mode 100644 drivers/pci/host/pcie-mediatek.c
--
1.9.1