[PATCH v2 0/8] DMAEngine support for sun4i, sun5i & sun7i

Emilio López emilio at elopez.com.ar
Sat Jul 5 21:05:07 PDT 2014


Hi everyone,

As part of Google Summer of Code, I've tasked myself with implementing
DMA support for the earlier Allwinner platforms. This second round of
patches is the result of said effort.

The first patch is the actual driver to support these platforms. Patches
three, four and five add the corresponding DMA node to the sun4i,
sun5i and sun7i device trees.

The second patch, involving the sunxi SPI driver, lets users do SPI
transfers of >=64 bytes by using DMA. The first round of patches also
had a patch for 8250_dw letting it use DMA as well, but there were some
issues causing underruns and "too much work for IRQ", so I have dropped
them. It's worth noting that Allwinner themselves don't use DMA
transfers on their 8250 driver on the SDK.

Patches six, seven and eight add the DMA properties to SPI so the first
two patches can be used. Patches nine, ten and eleven are *only intended
for testing*, and add a dummy SPIdev device to cubieboard, cubietruck
and A10S-OLinuXino to facilitate testing with spidev_test.

My main testing procedure for SPI has been modified versions of
spidev_test from the kernel tree, with and without shorting MISO and
MOSI. For memory to memory transfers, I have used dmatest.ko with
various configurations. I have done testing on a cubieboard (A10, sun4i)
and cubietruck (A20, sun7i) as well as an A10S-OLinuXino.

You will find some extra remarks on individual patches after their
descriptions. All comments are welcome.

Thanks!

Emilio López (8):
  dma: sun4i: Add support for the DMA engine on sun[457]i SoCs
  spi: sun4i: add DMA support
  ARM: sun4i: Add node to represent the DMA controller
  ARM: sun5i: Add nodes to represent the DMA controllers
  ARM: sun7i: Add node to represent the DMA controller
  ARM: sun4i: enable DMA on SPI
  ARM: sun5i: enable DMA on SPI
  ARM: sun7i: enable DMA on SPI

 .../devicetree/bindings/dma/sun4i-dma.txt          |   45 +
 arch/arm/boot/dts/sun4i-a10.dtsi                   |   16 +
 arch/arm/boot/dts/sun5i-a10s.dtsi                  |   14 +
 arch/arm/boot/dts/sun5i-a13.dtsi                   |   14 +
 arch/arm/boot/dts/sun7i-a20.dtsi                   |   16 +
 drivers/dma/Kconfig                                |   10 +
 drivers/dma/Makefile                               |    1 +
 drivers/dma/sun4i-dma.c                            | 1025 ++++++++++++++++++++
 drivers/spi/spi-sun4i.c                            |  155 ++-
 9 files changed, 1285 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/dma/sun4i-dma.txt
 create mode 100644 drivers/dma/sun4i-dma.c

-- 
2.0.1



More information about the linux-arm-kernel mailing list