linux/drivers/dma/sh
John Madieu c0a207898f dmaengine: sh: rz-dmac: Add DMA ACK signal routing support
Some peripherals on RZ/G3E SoCs (SSIU, SPDIF, SCU/SRC, DVC, PFC) require
explicit ACK signal routing through the ICU for level-based DMA handshaking.

Rather than extending the DT binding with an optional second #dma-cells
(which would require all DMA consumers to supply two cells even when ACK
routing is not needed), derive the ACK signal number directly from the
MID/RID request number using the linear mapping defined in RZ/G3E hardware
manual Table 4.6-28:

  PFC external DMA pins (DREQ0..DREQ4):
    req_no 0x000-0x004 -> ACK No. 84-88

  SSIU BUSIFs (ssip00..ssip93):
    req_no 0x161-0x198 -> ACK No. 28-83

  SPDIF (CH0..CH2) + SCU SRC (sr0..sr9) + DVC (cmd0..cmd1):
    req_no 0x199-0x1b4 -> ACK No. 0-27

ACK routing is programmed when a channel is prepared for transfer and
cleared when the channel is released or the transfer times out, following
the same pattern as MID/RID request routing.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
Link: https://patch.msgid.link/20260525110750.4020112-3-john.madieu.xa@bp.renesas.com
[fixes subsystem name tag]
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2026-06-08 17:02:21 +05:30
..
Kconfig dmaengine: sh: Kconfig: Drop ARCH_R7S72100/ARCH_RZG2L dependency 2025-10-16 17:42:59 +05:30
Makefile dmaengine: sh: Add DMAC driver for RZ/G2L SoC 2021-08-29 19:14:19 +05:30
rcar-dmac.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
rz-dmac.c dmaengine: sh: rz-dmac: Add DMA ACK signal routing support 2026-06-08 17:02:21 +05:30
shdma-base.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
shdma.h dmaengine: shdma: increase size of 'dev_id' 2024-01-19 18:12:10 +05:30
shdmac.c dmaengine: sh: setup_xref error handling 2025-09-02 12:29:36 +05:30
usb-dmac.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00