Skip to content

Add SiFive FU740 PCIe host controller driver support

Greentime Hu linux-clk linux-devicetree linux-pci linux-riscv lkml 6 versions – Applied

Status from this message: Applied to pci/risc-v, thanks.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest6 patches 10 repliesApplied
  2. v56 patches 19 repliesApplied
  3. v46 patches 4 repliesSuperseded
Earlier versions · 3
VersionPostedPatchesRepliesStatus
v36 patches2 repliesSuperseded
v26 patches14 repliesSuperseded
v1 RFC6 patches6 repliesSuperseded

Changes in v6 from the cover letter

- Fix build error when CONFIG_GPIOLIB disabled

Patches in v6 Applied

#Subject and filesSizeRepliesApplied
1/6clk: sifive: Add pcie_aux clock in prci driver for PCIe driverdrivers/clk/sifive/fu740-prci.c drivers/clk/sifive/fu740-prci.h drivers/clk/sifive/sifive-prci.c +2 more+63 -15 replies
2/6clk: sifive: Use reset-simple in prci driver for PCIe driverdrivers/clk/sifive/Kconfig drivers/clk/sifive/sifive-prci.c drivers/clk/sifive/sifive-prci.h +1 more+20 -00 replies
3/6MAINTAINERS: Add maintainers for SiFive FU740 PCIe driverMAINTAINERS+8 -00 replies
4/6dt-bindings: PCI: Add SiFive FU740 PCIe host controllerDocumentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml+113 -00 replies
5/6PCI: fu740: Add SiFive FU740 PCIe host controller driverdrivers/pci/controller/dwc/Kconfig drivers/pci/controller/dwc/Makefile drivers/pci/controller/dwc/pcie-fu740.c+320 -04 replies
6/6riscv: dts: Add PCIe support for the SiFive FU740-C000 SoCarch/riscv/boot/dts/sifive/fu740-c000.dtsi+33 -00 replies

Reviews trailers per patch

4 of 6 patches have a Reviewed-by or Acked-by.

PatchStephen BoydPhilipp ZabelRob HerringPalmer Dabbelt
1/6A-b
2/6A-b R-b
3/6
4/6R-b
5/6
6/6A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v6 thread

Cover letter [PATCH v6 0/6] Add SiFive FU740 PCIe host controller driver support

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 v6:
- Fix build error when CONFIG_GPIOLIB disabled

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

 .../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            |  10 +
 drivers/pci/controller/dwc/Makefile           |   1 +
 drivers/pci/controller/dwc/pcie-fu740.c       | 309 ++++++++++++++++++
 drivers/reset/Kconfig                         |   1 +
 include/dt-bindings/clock/sifive-fu740-prci.h |   1 +
 13 files changed, 557 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
 create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c
Signature · 1 line
2.31.1