* [PATCH 0/3] dmaengine: sf-pdma: Add platform dma driver
@ 2019-09-17 6:20 ` Green Wan
0 siblings, 0 replies; 3+ messages in thread
From: Green Wan @ 2019-09-17 6:20 UTC (permalink / raw)
Cc: linux-hackers, Green Wan, Vinod Koul, Rob Herring, Mark Rutland,
Palmer Dabbelt, Paul Walmsley, Albert Ou, Mauro Carvalho Chehab,
David S. Miller, Greg Kroah-Hartman, Linus Walleij,
Nicolas Ferre, Paul E. McKenney, dmaengine, devicetree,
linux-riscv, linux-kernel
Add PDMA driver support for SiFive HiFive Unleashed RevA00 board. Mainly follows
DMAengine controller doc[1] to implement and take other DMA drivers as reference.
Such as
- drivers/dma/fsl-edma.c
- drivers/dma/dw-edma/
- drivers/dma/pxa-dma.c
Using DMA test client[2] to test. Detailed datasheet is doc[3]. Driver supports:
- 4 physical DMA channels, share same DONE and error interrupt handler.
- Support MEM_TO_MEM
- Tested by DMA test client
- patches include DT Bindgins document and dts for fu450-c000 SoC. Separate dts
patch for easier review and apply to different branch or SoC platform.
- retry 1 time if DMA error occurs.
[Reference Doc]
[1] ./Documentation/driver-api/dmaengine/provider.rst
[2] ./Documentation/driver-api/dmaengine/dmatest.rst
[3] https://static.dev.sifive.com/FU540-C000-v1.0.pdf
[Simple steps to test of DMA Test client]
$ echo 1 > /sys/module/dmatest/parameters/iterations
$ echo dma0chan0 > /sys/module/dmatest/parameters/channel
$ echo dma0chan1 > /sys/module/dmatest/parameters/channel
$ echo dma0chan2 > /sys/module/dmatest/parameters/channel
$ echo dma0chan3 > /sys/module/dmatest/parameters/channel
$ echo 1 > /sys/module/dmatest/parameters/run
Green Wan (3):
dt-bindings: dmaengine: sf-pdma: add bindins for SiFive PDMA
riscv: dts: add support for PDMA device of HiFive Unleashed Rev A00
dmaengine: sf-pdma: add platform DMA support for HiFive Unleashed A00
.../bindings/dma/sifive,fu540-c000-pdma.yaml | 63 ++
MAINTAINERS | 6 +
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 7 +
drivers/dma/Kconfig | 2 +
drivers/dma/Makefile | 1 +
drivers/dma/sf-pdma/Kconfig | 6 +
drivers/dma/sf-pdma/Makefile | 1 +
drivers/dma/sf-pdma/sf-pdma.c | 609 ++++++++++++++++++
drivers/dma/sf-pdma/sf-pdma.h | 124 ++++
9 files changed, 819 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
create mode 100644 drivers/dma/sf-pdma/Kconfig
create mode 100644 drivers/dma/sf-pdma/Makefile
create mode 100644 drivers/dma/sf-pdma/sf-pdma.c
create mode 100644 drivers/dma/sf-pdma/sf-pdma.h
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 0/3] dmaengine: sf-pdma: Add platform dma driver
@ 2019-09-17 6:20 ` Green Wan
0 siblings, 0 replies; 3+ messages in thread
From: Green Wan @ 2019-09-17 6:20 UTC (permalink / raw)
Cc: linux-hackers, Green Wan, Vinod Koul, Rob Herring, Mark Rutland,
Palmer Dabbelt, Paul Walmsley, Albert Ou, Mauro Carvalho Chehab,
David S. Miller, Greg Kroah-Hartman, Linus Walleij,
Nicolas Ferre, Paul E. McKenney, dmaengine, devicetree,
linux-riscv, linux-kernel
Add PDMA driver support for SiFive HiFive Unleashed RevA00 board. Mainly follows
DMAengine controller doc[1] to implement and take other DMA drivers as reference.
Such as
- drivers/dma/fsl-edma.c
- drivers/dma/dw-edma/
- drivers/dma/pxa-dma.c
Using DMA test client[2] to test. Detailed datasheet is doc[3]. Driver supports:
- 4 physical DMA channels, share same DONE and error interrupt handler.
- Support MEM_TO_MEM
- Tested by DMA test client
- patches include DT Bindgins document and dts for fu450-c000 SoC. Separate dts
patch for easier review and apply to different branch or SoC platform.
- retry 1 time if DMA error occurs.
[Reference Doc]
[1] ./Documentation/driver-api/dmaengine/provider.rst
[2] ./Documentation/driver-api/dmaengine/dmatest.rst
[3] https://static.dev.sifive.com/FU540-C000-v1.0.pdf
[Simple steps to test of DMA Test client]
$ echo 1 > /sys/module/dmatest/parameters/iterations
$ echo dma0chan0 > /sys/module/dmatest/parameters/channel
$ echo dma0chan1 > /sys/module/dmatest/parameters/channel
$ echo dma0chan2 > /sys/module/dmatest/parameters/channel
$ echo dma0chan3 > /sys/module/dmatest/parameters/channel
$ echo 1 > /sys/module/dmatest/parameters/run
Green Wan (3):
dt-bindings: dmaengine: sf-pdma: add bindins for SiFive PDMA
riscv: dts: add support for PDMA device of HiFive Unleashed Rev A00
dmaengine: sf-pdma: add platform DMA support for HiFive Unleashed A00
.../bindings/dma/sifive,fu540-c000-pdma.yaml | 63 ++
MAINTAINERS | 6 +
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 7 +
drivers/dma/Kconfig | 2 +
drivers/dma/Makefile | 1 +
drivers/dma/sf-pdma/Kconfig | 6 +
drivers/dma/sf-pdma/Makefile | 1 +
drivers/dma/sf-pdma/sf-pdma.c | 609 ++++++++++++++++++
drivers/dma/sf-pdma/sf-pdma.h | 124 ++++
9 files changed, 819 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
create mode 100644 drivers/dma/sf-pdma/Kconfig
create mode 100644 drivers/dma/sf-pdma/Makefile
create mode 100644 drivers/dma/sf-pdma/sf-pdma.c
create mode 100644 drivers/dma/sf-pdma/sf-pdma.h
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 0/3] dmaengine: sf-pdma: Add platform dma driver
@ 2019-09-17 6:20 ` Green Wan
0 siblings, 0 replies; 3+ messages in thread
From: Green Wan @ 2019-09-17 6:20 UTC (permalink / raw)
Cc: Mark Rutland, devicetree, Albert Ou, Greg Kroah-Hartman,
Linus Walleij, Palmer Dabbelt, Nicolas Ferre, Green Wan,
linux-kernel, dmaengine, Vinod Koul, Rob Herring, Paul Walmsley,
Mauro Carvalho Chehab, linux-hackers, linux-riscv,
Paul E. McKenney, David S. Miller
Add PDMA driver support for SiFive HiFive Unleashed RevA00 board. Mainly follows
DMAengine controller doc[1] to implement and take other DMA drivers as reference.
Such as
- drivers/dma/fsl-edma.c
- drivers/dma/dw-edma/
- drivers/dma/pxa-dma.c
Using DMA test client[2] to test. Detailed datasheet is doc[3]. Driver supports:
- 4 physical DMA channels, share same DONE and error interrupt handler.
- Support MEM_TO_MEM
- Tested by DMA test client
- patches include DT Bindgins document and dts for fu450-c000 SoC. Separate dts
patch for easier review and apply to different branch or SoC platform.
- retry 1 time if DMA error occurs.
[Reference Doc]
[1] ./Documentation/driver-api/dmaengine/provider.rst
[2] ./Documentation/driver-api/dmaengine/dmatest.rst
[3] https://static.dev.sifive.com/FU540-C000-v1.0.pdf
[Simple steps to test of DMA Test client]
$ echo 1 > /sys/module/dmatest/parameters/iterations
$ echo dma0chan0 > /sys/module/dmatest/parameters/channel
$ echo dma0chan1 > /sys/module/dmatest/parameters/channel
$ echo dma0chan2 > /sys/module/dmatest/parameters/channel
$ echo dma0chan3 > /sys/module/dmatest/parameters/channel
$ echo 1 > /sys/module/dmatest/parameters/run
Green Wan (3):
dt-bindings: dmaengine: sf-pdma: add bindins for SiFive PDMA
riscv: dts: add support for PDMA device of HiFive Unleashed Rev A00
dmaengine: sf-pdma: add platform DMA support for HiFive Unleashed A00
.../bindings/dma/sifive,fu540-c000-pdma.yaml | 63 ++
MAINTAINERS | 6 +
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 7 +
drivers/dma/Kconfig | 2 +
drivers/dma/Makefile | 1 +
drivers/dma/sf-pdma/Kconfig | 6 +
drivers/dma/sf-pdma/Makefile | 1 +
drivers/dma/sf-pdma/sf-pdma.c | 609 ++++++++++++++++++
drivers/dma/sf-pdma/sf-pdma.h | 124 ++++
9 files changed, 819 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
create mode 100644 drivers/dma/sf-pdma/Kconfig
create mode 100644 drivers/dma/sf-pdma/Makefile
create mode 100644 drivers/dma/sf-pdma/sf-pdma.c
create mode 100644 drivers/dma/sf-pdma/sf-pdma.h
--
2.17.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-09-17 6:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-17 6:20 [PATCH 0/3] dmaengine: sf-pdma: Add platform dma driver Green Wan
2019-09-17 6:20 ` Green Wan
2019-09-17 6:20 ` Green Wan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.