[PATCH v3 0/4] Add Actions Semi Owl family S900 DMA Controller support

From: Manivannan Sadhasivam
Date: Thu Jul 26 2018 - 01:07:22 EST


This patchset adds DMA controller support for Actions Semi Owl family
S900 SoC. This driver has been structured in a way such that there will be only
one controller driver for the whole Owl family series (S500, S700 and
S900 SoCs).

There are 12 physical channels and 46 logical channels supported by the
DMA controller.

The DMA controller also supports 4 software configurable interrupt lines for
the priority based DMA usecase. But the DMA driver supports only 1 interrupt
for simplification. By default, the driver uses Linked list mode for all
transfers. Right now only MEMCPY support has been added and the rest
(SLAVE, CYCLIC) will be added in upcoming patches.

The driver has been tested using dmatest utility on the Bubblegum-96
board.

The DTS patches in this series depends on the pinctrl DTS patches
submitted [1], which is yet to be merged by the platform maintainer
Andreas. Since the DMA driver goes through DMA tree and the relevant
DTS patches goes through ARM-SoC tree, Andreas will pick it up once
it has been reviewed.

For the reference, I have queued up all reviewed dts patches so far
in my repo [2] from which Andreas is picking them for 4.19.

Thanks,
Mani

[1] https://patchwork.kernel.org/patch/10322937/
[2] https://git.linaro.org/people/manivannan.sadhasivam/linux.git/log/?h=s900-for-next

Changes in v3:

As per Vinod's review:

* Removed unused header and API's
* Used GENMASK for defines
* Removed per member comment for structs
* Modified pchan* and dma* API's to use corresponding containers as
arguments
* Removed error messages regarding the no free channels
* Added devm_free_irq in dma_remove
* Used dmaengine instead of dma for commit titles

Changes in v2:

* Fixed up the multi-line alignments according to `checkpatch --strict`

Manivannan Sadhasivam (4):
dt-bindings: dmaengine: Add binding for Actions Semi Owl SoCs
arm64: dts: actions: Add Actions Semi S900 DMA Controller
dmaengine: Add Actions Semi Owl family S900 DMA driver
MAINTAINERS: Add entry for Actions Semi Owl SoCs DMA driver

.../devicetree/bindings/dma/owl-dma.txt | 47 +
MAINTAINERS | 2 +
arch/arm64/boot/dts/actions/s900.dtsi | 13 +
drivers/dma/Kconfig | 8 +
drivers/dma/Makefile | 1 +
drivers/dma/owl-dma.c | 971 ++++++++++++++++++
6 files changed, 1042 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dma/owl-dma.txt
create mode 100644 drivers/dma/owl-dma.c

--
2.17.1