Re: [PATCH v5 0/6] Add SiFive FU740 PCIe host controller driver support

From: Lorenzo Pieralisi
Date: Thu Apr 08 2021 - 12:25:56 EST


On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote:
> 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 v5:
> - Fix typo in comments
> - Keep comments style consistent
> - Refine some error handling codes
> - Remove unneeded header file including
> - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link
>
> Changes in v4:
> - Fix Wunused-but-set-variable warning in prci driver
>
> Changes in v3:
> - Remove items that has been defined
> - Refine format of sifive,fu740-pcie.yaml
> - Replace perstn-gpios with the common one
> - Change DBI mapping space to 2GB from 4GB
> - Refine drivers/reset/Kconfig
>
> 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

I can pull the patches above into the PCI tree (but will drop patch 6 -
dts changes), is it OK for you ? Please let me know how you would like
to upstream it.

Lorenzo

> .../bindings/pci/sifive,fu740-pcie.yaml | 113 +++++++
> MAINTAINERS | 8 +
> arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 33 ++
> 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 | 308 ++++++++++++++++++
> drivers/reset/Kconfig | 1 +
> include/dt-bindings/clock/sifive-fu740-prci.h | 1 +
> 13 files changed, 555 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
> create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c
>
> --
> 2.30.2
>