Re: [PATCH v7 0/6] riscv: spacemit: Add PCIe RC controller support for K3

From: Aurelien Jarno

Date: Tue Sep 29 2026 - 13:02:41 EST


Hi,

On 2026-09-29 16:37, Inochi Amaoto wrote:
> 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.
>
> Since v5, multiple vendor fix are included in this series, you can find
> in [1]. And this version required [2] for phy bulk data support.
>
> [1] https://github.com/spacemit-com/linux-6.18/commits/k3-br-v1.0.y/drivers/pci/controller/dwc/pcie-spacemit-k1.c
> [2] https://lore.kernel.org/linux-phy/20260904083709.425893-1-inochiama@xxxxxxxxx/
>
> Changed from v6:
> - https://lore.kernel.org/linux-pci/20260923015016.64069-1-inochiama@xxxxxxxxx/
> patch 6:
> 1. Keep PERST# when init failed like the deinit.
>
> Changed from v5:
> - https://lore.kernel.org/linux-pci/20260907112606.465778-1-inochiama@xxxxxxxxx/
> patch 1:
> 1. Return ENODATA for no device data found.
> patch 2:
> 1. Add power_on/power_off suggested in [2].
> 2. Add zero phy check in the driver.
> patch 5:
> 1. Add K3 device description.
> patch 6:
> 1. Update comments.
>
> Changed from v4:
> - https://lore.kernel.org/linux-pci/20260709040027.958400-1-inochiama@xxxxxxxxx/
> patch 1:
> 1. fix comments
> patch 2:
> 1. Use phy bulk data to simplify the code
> patch 3:
> 1. Rebased to latest master
> patch 6:
> 1. Apply several fix from the vendor code
> 2. Use separated init/deinit function for K3.
> 3. Add some error handle for K3 init function
>
> Changed from v3:
> - https://lore.kernel.org/linux-pci/20260703020003.485436-1-inochiama@xxxxxxxxx/
> patch 5:
> 1. Add missing interrupt/interrupt-names check for K1
>
> Changed from v2:
> - https://lore.kernel.org/linux-pci/20260517014841.254085-1-inochiama@xxxxxxxxx/
> 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 | 55 +++-
> drivers/pci/controller/dwc/Kconfig | 4 +-
> drivers/pci/controller/dwc/pcie-spacemit-k1.c | 237 ++++++++++++++++--
> 4 files changed, 270 insertions(+), 33 deletions(-)

Thanks for this new version. Patches 1, 2, 3, 6 are:

Tested-by: Aurelien Jarno <aurelien@xxxxxxxxxxx

--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@xxxxxxxxxxx http://aurel32.net