This patchset includes SiFive FU740 PCIe host controller driver. We also add pcie_aux clock and pcie_power_on_reset controller to prci driver for PCIe driver to use it.
This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on v5.11 Linux kernel. Changes in v2: - Refine codes based on reviewers' feedback - Remove define and use the common one - Replace __raw_writel with writel_relaxed - Split fu740_phyregreadwrite to write function - Use readl_poll_timeout in stead of while loop checking - Use dwc common codes - Use gpio descriptors and the gpiod_* api. - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname - Replace devm_reset_control_get with devm_reset_control_get_exclusive - Add more comments for delay and sleep - Remove "phy ? x : y" expressions - Refine code logic to remove possible infinite loop - Replace magic number with meaningful define - Remove fu740_pcie_pm_ops - Use builtin_platform_driver Greentime Hu (5): clk: sifive: Add pcie_aux clock in prci driver for PCIe driver clk: sifive: Use reset-simple in prci driver for PCIe driver MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver dt-bindings: PCI: Add SiFive FU740 PCIe host controller riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC Paul Walmsley (1): PCI: fu740: Add SiFive FU740 PCIe host controller driver .../bindings/pci/sifive,fu740-pcie.yaml | 119 +++++++ MAINTAINERS | 8 + arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 34 ++ drivers/clk/sifive/Kconfig | 2 + drivers/clk/sifive/fu740-prci.c | 11 + drivers/clk/sifive/fu740-prci.h | 2 +- drivers/clk/sifive/sifive-prci.c | 54 +++ drivers/clk/sifive/sifive-prci.h | 13 + drivers/pci/controller/dwc/Kconfig | 9 + drivers/pci/controller/dwc/Makefile | 1 + drivers/pci/controller/dwc/pcie-fu740.c | 324 ++++++++++++++++++ drivers/reset/Kconfig | 3 +- include/dt-bindings/clock/sifive-fu740-prci.h | 1 + 13 files changed, 579 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c -- 2.30.2