hw/dma/xlnx_csu_dma: Support starting a read transfer through a class method
commit00f05c02f9e7342fb423110061bdf66921fe80b2
authorFrancisco Iglesias <francisco.iglesias@xilinx.com>
Fri, 21 Jan 2022 16:11:36 +0000 (21 16:11 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 28 Jan 2022 14:29:46 +0000 (28 14:29 +0000)
tree4126d3a9ad7663289a631fe8a0ff35b9e2a63f6e
parentba4fbdbd9b8be7bed4285bc4cf684488b48fb518
hw/dma/xlnx_csu_dma: Support starting a read transfer through a class method

An option on real hardware when embedding a DMA engine into a peripheral
is to make the peripheral control the engine through a custom DMA control
(hardware) interface between the two. Software drivers in this scenario
configure and trigger DMA operations through the controlling peripheral's
register API (for example, writing a specific bit in a register could
propagate down to a transfer start signal on the DMA control interface).
At the same time the status, results and interrupts for the transfer might
still be intended to be read and caught through the DMA engine's register
API (and signals).

This patch adds a class 'read' method for allowing to start read transfers
from peripherals embedding and controlling the Xilinx CSU DMA engine as in
above scenario.

Signed-off-by: Francisco Iglesias <francisco.iglesias@xilinx.com>
Reviewed-by: Luc Michel <luc@lmichel.fr>
Message-id: 20220121161141.14389-6-francisco.iglesias@xilinx.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/dma/xlnx_csu_dma.c
include/hw/dma/xlnx_csu_dma.h