[PATCH 0/8] dma: mmp_pdma: Add SpacemiT K1 SoC support with 64-bit addressing

Guodong Xu
2025-06-11T12:59:04Z

This series extends the existing MMP PDMA driver to support SpacemiT PDMA
controllers with 64-bit addressing capabilities, as used in the K1 SoC.

The SpacemiT K1 SoC contains a PDMA controller that is largely compatible
with the existing Marvell MMP PDMA, but adds support for 64-bit physical
addressing through Long Physical Address Extension (LPAE) mode. This
requires programming additional high address registers (DDADRH, DSADRH,
DTADRH) and enabling the DCSR_LPAEEN control bit.

The implementation maintains full backward compatibility with existing
32-bit Marvell platforms while adding the necessary infrastructure for
64-bit address handling through a flexible configuration-based approach.

Key features added:
- 64-bit DMA address support via LPAE mode
- Platform-specific operation abstractions (mmp_pdma_ops)
- Optional clock and reset controller support for modern SoCs
- Device tree integration for SpacemiT K1 SoC and Banana Pi F3 board

Testing:
This patchset has been tested on SpacemiT K1-based Banana Pi F3 hardware
to ensure the PDMA controller operates correctly with 64-bit addressing.
Existing functionality on 32-bit platforms remains unchanged.

This patchset is based on [spacemit/for-next]
base: https://github.com/spacemit-com/linux for-next
Plus the reset controller driver, posted by Alex Elder (v10):
https://lore.kernel.org/all/20250513215345.3631593-1-elder@riscstar.com/

Guodong Xu (8):
dt-bindings: dma: marvell,mmp-dma: Add SpacemiT PDMA compatibility
dma: mmp_pdma: Add optional clock support
dma: mmp_pdma: Add optional reset controller support
dma: mmp_pdma: Add SpacemiT PDMA support with 64-bit addressing
riscv: dts: spacemit: Add dma bus and PDMA node for K1 SoC
riscv: dts: spacemit: Enable PDMA0 controller on Banana Pi F3
dma: Kconfig: MMP_PDMA: Add support for ARCH_SPACEMIT
riscv: defconfig: Enable MMP_PDMA support for SpacemiT K1 SoC

.../bindings/dma/marvell,mmp-dma.yaml | 17 ++
.../boot/dts/spacemit/k1-bananapi-f3.dts | 4 +
arch/riscv/boot/dts/spacemit/k1.dtsi | 234 ++++++++--------
arch/riscv/configs/defconfig | 3 +-
drivers/dma/Kconfig | 2 +-
drivers/dma/mmp_pdma.c | 249 +++++++++++++++---
6 files changed, 370 insertions(+), 139 deletions(-)

--
2.43.0