[PATCH v3 00/17] dmaengine: ti: Add support for BCDMA v2 and PKTDMA v2
From: Sai Sree Kartheek Adivi
Date: Mon Jun 23 2025 - 01:38:10 EST
This series adds support for the BCDMA_V2 and PKTDMA_V2 which is
introduced in AM62L.
The key differences between the existing DMA and DMA V2 are:
- Absence of TISCI: Instead of configuring via TISCI calls, direct
register writes are required.
- Autopair: There is no longer a need for PSIL pair and instead AUTOPAIR
bit needs to set in the RT_CTL register.
- Static channel mapping: Each channel is mapped to a single peripheral.
- Direct IRQs: There is no INT-A and interrupt lines from DMA are
directly connected to GIC.
- Remote side configuration handled by DMA. So no need to write to PEER
registers to START / STOP / PAUSE / TEARDOWN.
Changes from v1 to v2:
- Split refactoring of k3-udma driver into multiple commits
- Fix bcdma v2 and pktdma v2 dt-binding examples
- Fix compatibles in k3-udma-v2.c
- move udma_is_desc_really_done to k3-udma-common.c as the difference
between k3-udma and k3-udma-v2 implementation is minor.
- remove udma_ prefix to function pointers in udma_dev
- reorder the commits to first refactor the existing code completely and
then introduce k3-udma-v2 related commits.
- remove redundant includes in k3-udma-common.c
- remove ti_sci_ dependency for k3_ringacc in Kconfig
- refactor setup_resources functions to remove ti_sci_ code from common
logic.
link to v1:
https://lore.kernel.org/linux-arm-kernel/20250428072032.946008-1-s-adivi@xxxxxx
Changes from v2 to v3:
- Fix checkpatch errors & spellings.
link to v2:
https://lore.kernel.org/linux-arm-kernel/20250612071521.3116831-1-s-adivi@xxxxxx
Sai Sree Kartheek Adivi (17):
dmaengine: ti: k3-udma: move macros to header file
dmaengine: ti: k3-udma: move structs and enums to header file
dmaengine: ti: k3-udma: move static inline helper functions to header
file
dmaengine: ti: k3-udma: move descriptor management to k3-udma-common.c
dmaengine: ti: k3-udma: move ring management functions to
k3-udma-common.c
dmaengine: ti: k3-udma: Add variant-specific function pointers to
udma_dev
dmaengine: ti: k3-udma: move udma utility functions to
k3-udma-common.c
dmaengine: ti: k3-udma: move resource management functions to
k3-udma-common.c
dmaengine: ti: k3-udma: refactor resource setup functions
dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to
k3-udma-common.c
drivers: soc: ti: k3-ringacc: handle absence of tisci
dt-bindings: dma: ti: Add K3 BCDMA V2
dt-bindings: dma: ti: Add K3 PKTDMA V2
dmaengine: ti: k3-psil-am62l: Add AM62Lx PSIL and PDMA data
dmaengine: ti: k3-udma-v2: New driver for K3 BCDMA_V2
dmaengine: ti: k3-udma-v2: Add support for PKTDMA V2
dmaengine: ti: k3-udma-v2: Update glue layer to support PKTDMA V2
.../bindings/dma/ti/k3-bcdma-v2.yaml | 94 +
.../bindings/dma/ti/k3-pktdma-v2.yaml | 72 +
drivers/dma/ti/Kconfig | 14 +-
drivers/dma/ti/Makefile | 6 +-
drivers/dma/ti/k3-psil-am62l.c | 132 +
drivers/dma/ti/k3-psil-priv.h | 1 +
drivers/dma/ti/k3-psil.c | 1 +
drivers/dma/ti/k3-udma-common.c | 2555 ++++++++++++++
drivers/dma/ti/k3-udma-glue.c | 91 +-
drivers/dma/ti/k3-udma-private.c | 48 +-
drivers/dma/ti/k3-udma-v2.c | 1476 ++++++++
drivers/dma/ti/k3-udma.c | 3090 +----------------
drivers/dma/ti/k3-udma.h | 581 ++++
drivers/soc/ti/Kconfig | 1 -
drivers/soc/ti/k3-ringacc.c | 184 +-
include/linux/soc/ti/k3-ringacc.h | 20 +
16 files changed, 5328 insertions(+), 3038 deletions(-)
create mode 100644 Documentation/devicetree/bindings/dma/ti/k3-bcdma-v2.yaml
create mode 100644 Documentation/devicetree/bindings/dma/ti/k3-pktdma-v2.yaml
create mode 100644 drivers/dma/ti/k3-psil-am62l.c
create mode 100644 drivers/dma/ti/k3-udma-common.c
create mode 100644 drivers/dma/ti/k3-udma-v2.c
base-commit: 4325743c7e209ae7845293679a4de94b969f2bef
--
2.34.1