|
|
Log in / Subscribe / Register

riscv: spacemit: Add PCIe RC controller support for K3

From:  Inochi Amaoto <inochiama-AT-gmail.com>
To:  Jingoo Han <jingoohan1-AT-gmail.com>, Manivannan Sadhasivam <mani-AT-kernel.org>, Bjorn Helgaas <bhelgaas-AT-google.com>, Lorenzo Pieralisi <lpieralisi-AT-kernel.org>, Krzysztof WilczyƄski <kwilczynski-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, Yixun Lan <dlan-AT-kernel.org>, Paul Walmsley <pjw-AT-kernel.org>, Palmer Dabbelt <palmer-AT-dabbelt.com>, Albert Ou <aou-AT-eecs.berkeley.edu>, Alexandre Ghiti <alex-AT-ghiti.fr>, Christian Bruel <christian.bruel-AT-foss.st.com>, Inochi Amaoto <inochiama-AT-gmail.com>, Frank Li <Frank.Li-AT-nxp.com>, Neil Armstrong <neil.armstrong-AT-linaro.org>, Andy Shevchenko <andriy.shevchenko-AT-linux.intel.com>, Sascha Hauer <s.hauer-AT-pengutronix.de>, Xincheng Zhang <zhangxincheng-AT-ultrarisc.com>, Alex Elder <elder-AT-riscstar.com>, Randolph Lin <randolph-AT-andestech.com>, Siddharth Vadapalli <s-vadapalli-AT-ti.com>, Vidya Sagar <vidyas-AT-nvidia.com>, Gustavo Pimentel <gustavo.pimentel-AT-synopsys.com>
Subject:  [PATCH v3 0/6] riscv: spacemit: Add PCIe RC controller support for K3
Date:  Fri, 03 Jul 2026 09:59:56 +0800
Message-ID:  <20260703020003.485436-1-inochiama@gmail.com>
Cc:  linux-pci-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-riscv-AT-lists.infradead.org, spacemit-AT-lists.linux.dev, Yixun Lan <dlan-AT-gentoo.org>, Longbin Li <looong.bin-AT-gmail.com>
Archive-link:  Article

The PCIe controller on Spacemit K3 is almost a standard Synopsys
Designware PCIe IP with extra control and external MSI controller
(IMSIC).

Add binding and driver support for PCIe RC controller support on K3.

Changed from v2:
- https://lore.kernel.org/linux-pci/20260517014841.254085-1...
patch 2:
1. Use unify PCIe phy get/enable/exit function for both K1 and K3.
patch 3:
1. New patch for updating device id for both K1/K3
patch 5:
1. Reuse binding for spacemit,k1-pcie-host
patch 6:
1. Multiple cleanup for the logic already generalized in the previous
   patches.
2. Use generic description for the Kconfig entry.

Changed from v1:
patch 1:
1. Remove post_init callback.
patch 2:
1. Fix devm_kmalloc_array arguments order and error check.
patch 3:
1. Apply Rob's tag.
2. Change check from oneOf to anyOf.
3. Fix spelling mistakes in commit message.
patch 4:
1. Add comment about PHY handle.
2. Remove interrupt "app".
3. Fix spelling mistakes in commit message.
patch 5:
1. Remove all logic related to link up interrupt.
2. Clean up all unused macros.
3. Fix devm_kmalloc_array arguments order and error check.
4. Remove unnecessary start_link logic.
5. Make all magic number as a macro.
6. Fix spelling mistakes in code and commit message.

Inochi Amaoto (6):
  PCI: spacemit-k1: Add device data support
  PCI: spacemit-k1: Add multiple PHY handles support
  PCI: spacemit-k1: Add device id update helper
  dt-bindings: PCI: snps,dw-pcie: Add msi-parent for MSI handle check
  dt-bindings: PCI: spacemit: Introduce Spacemit K3 PCIe host controller
  PCI: spacemit-k1: Add Spacemit K3 PCIe host controller support

 .../devicetree/bindings/pci/snps,dw-pcie.yaml |   7 +-
 .../bindings/pci/spacemit,k1-pcie-host.yaml   |  46 +++-
 drivers/pci/controller/dwc/Kconfig            |   4 +-
 drivers/pci/controller/dwc/pcie-spacemit-k1.c | 237 ++++++++++++++++--
 4 files changed, 267 insertions(+), 27 deletions(-)

--
2.55.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds