Skip to content

Commit e964f1e

Browse files
committed
Merge tag 'dmaengine-5.7-rc1' of git://git.infradead.org/users/vkoul/slave-dma
Pull dmaengine updates from Vinod Koul: "Core: - Some code cleanup and optimization in core by Andy - Debugfs support for displaying dmaengine channels by Peter Drivers: - New driver for uniphier-xdmac controller - Updates to stm32 dma, mdma and dmamux drivers and PM support - More updates to idxd drivers - Bunch of changes in tegra-apb driver and cleaning up of pm functions - Bunch of spelling fixes and Replace zero-length array patches - Shutdown hook for fsl-dpaa2-qdma driver - Support for interleaved transfers for ti-edma and virtualization support for k3-dma driver - Support for reset and updates in xilinx_dma driver - Improvements and locking updates in at_hdma driver" * tag 'dmaengine-5.7-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (89 commits) dt-bindings: dma: renesas,usb-dmac: add r8a77961 support dmaengine: uniphier-xdmac: Remove redandant error log for platform_get_irq dmaengine: tegra-apb: Improve DMA synchronization dmaengine: tegra-apb: Don't save/restore IRQ flags in interrupt handler dmaengine: tegra-apb: mark PM functions as __maybe_unused dmaengine: fix spelling mistake "exceds" -> "exceeds" dmaengine: sprd: Set request pending flag when DMA controller is active dmaengine: ppc4xx: Use scnprintf() for avoiding potential buffer overflow dmaengine: idxd: remove global token limit check dmaengine: idxd: reflect shadow copy of traffic class programming dmaengine: idxd: Merge definition of dsa_batch_desc into dsa_hw_desc dmaengine: Create debug directories for DMA devices dmaengine: ti: k3-udma: Implement custom dbg_summary_show for debugfs dmaengine: Add basic debugfs support dmaengine: fsl-dpaa2-qdma: remove set but not used variable 'dpaa2_qdma' dmaengine: ti: edma: fix null dereference because of a typo in pointer name dmaengine: fsl-dpaa2-qdma: Adding shutdown hook dmaengine: uniphier-xdmac: Add UniPhier external DMA controller driver dt-bindings: dmaengine: Add UniPhier external DMA controller bindings dmaengine: ti: k3-udma: Implement support for atype (for virtualization) ...
2 parents 5c8db3e + cea582b commit e964f1e

40 files changed

+1749
-544
lines changed

Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Required Properties:
1616
- "renesas,r8a7794-usb-dmac" (R-Car E2)
1717
- "renesas,r8a7795-usb-dmac" (R-Car H3)
1818
- "renesas,r8a7796-usb-dmac" (R-Car M3-W)
19+
- "renesas,r8a77961-usb-dmac" (R-Car M3-W+)
1920
- "renesas,r8a77965-usb-dmac" (R-Car M3-N)
2021
- "renesas,r8a77990-usb-dmac" (R-Car E3)
2122
- "renesas,r8a77995-usb-dmac" (R-Car D3)
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/dma/socionext,uniphier-xdmac.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Socionext UniPhier external DMA controller
8+
9+
description: |
10+
This describes the devicetree bindings for an external DMA engine to perform
11+
memory-to-memory or peripheral-to-memory data transfer capable of supporting
12+
16 channels, implemented in Socionext UniPhier SoCs.
13+
14+
maintainers:
15+
- Kunihiko Hayashi <[email protected]>
16+
17+
allOf:
18+
- $ref: "dma-controller.yaml#"
19+
20+
properties:
21+
compatible:
22+
const: socionext,uniphier-xdmac
23+
24+
reg:
25+
items:
26+
- description: XDMAC base register region (offset and length)
27+
- description: XDMAC extension register region (offset and length)
28+
29+
interrupts:
30+
maxItems: 1
31+
32+
"#dma-cells":
33+
const: 2
34+
description: |
35+
DMA request from clients consists of 2 cells:
36+
1. Channel index
37+
2. Transfer request factor number, If no transfer factor, use 0.
38+
The number is SoC-specific, and this should be specified with
39+
relation to the device to use the DMA controller.
40+
41+
dma-channels:
42+
minimum: 1
43+
maximum: 16
44+
45+
additionalProperties: false
46+
47+
required:
48+
- compatible
49+
- reg
50+
- interrupts
51+
- "#dma-cells"
52+
53+
examples:
54+
- |
55+
xdmac: dma-controller@5fc10000 {
56+
compatible = "socionext,uniphier-xdmac";
57+
reg = <0x5fc10000 0x1000>, <0x5fc20000 0x800>;
58+
interrupts = <0 188 4>;
59+
#dma-cells = <2>;
60+
dma-channels = <16>;
61+
};
62+
63+
...

Documentation/devicetree/bindings/dma/ti-edma.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ edma1_tptc0: tptc@27b0000 {
180180
};
181181

182182
edma1_tptc1: tptc@27b8000 {
183-
compatible = "ti, k2g-edma3-tptc", "ti,edma3-tptc";
183+
compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
184184
reg = <0x027b8000 0x400>;
185185
power-domains = <&k2g_pds 0x4f>;
186186
};

Documentation/devicetree/bindings/dma/ti/k3-udma.yaml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ allOf:
4545

4646
properties:
4747
"#dma-cells":
48-
const: 1
48+
minimum: 1
49+
maximum: 2
4950
description: |
5051
The cell is the PSI-L thread ID of the remote (to UDMAP) end.
5152
Valid ranges for thread ID depends on the data movement direction:
@@ -55,6 +56,8 @@ properties:
5556
Please refer to the device documentation for the PSI-L thread map and also
5657
the PSI-L peripheral chapter for the correct thread ID.
5758
59+
When #dma-cells is 2, the second parameter is the channel ATYPE.
60+
5861
compatible:
5962
enum:
6063
- ti,am654-navss-main-udmap
@@ -131,6 +134,20 @@ required:
131134
- ti,sci-rm-range-rchan
132135
- ti,sci-rm-range-rflow
133136

137+
if:
138+
properties:
139+
"#dma-cells":
140+
const: 2
141+
then:
142+
properties:
143+
ti,udma-atype:
144+
description: ATYPE value which should be used by non slave channels
145+
allOf:
146+
- $ref: /schemas/types.yaml#/definitions/uint32
147+
148+
required:
149+
- ti,udma-atype
150+
134151
examples:
135152
- |+
136153
cbass_main {

drivers/dma/Kconfig

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,8 @@ config TXX9_DMAC
616616
integrated in chips such as the Toshiba TX4927/38/39.
617617

618618
config TEGRA20_APB_DMA
619-
bool "NVIDIA Tegra20 APB DMA support"
620-
depends on ARCH_TEGRA
619+
tristate "NVIDIA Tegra20 APB DMA support"
620+
depends on ARCH_TEGRA || COMPILE_TEST
621621
select DMA_ENGINE
622622
help
623623
Support for the NVIDIA Tegra20 APB DMA controller driver. The
@@ -658,6 +658,17 @@ config UNIPHIER_MDMAC
658658
UniPhier platform. This DMA controller is used as the external
659659
DMA engine of the SD/eMMC controllers of the LD4, Pro4, sLD8 SoCs.
660660

661+
config UNIPHIER_XDMAC
662+
tristate "UniPhier XDMAC support"
663+
depends on ARCH_UNIPHIER || COMPILE_TEST
664+
depends on OF
665+
select DMA_ENGINE
666+
select DMA_VIRTUAL_CHANNELS
667+
help
668+
Enable support for the XDMAC (external DMA controller) on the
669+
UniPhier platform. This DMA controller can transfer data from
670+
memory to memory, memory to peripheral and peripheral to memory.
671+
661672
config XGENE_DMA
662673
tristate "APM X-Gene DMA support"
663674
depends on ARCH_XGENE || COMPILE_TEST

drivers/dma/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ obj-$(CONFIG_TEGRA20_APB_DMA) += tegra20-apb-dma.o
7878
obj-$(CONFIG_TEGRA210_ADMA) += tegra210-adma.o
7979
obj-$(CONFIG_TIMB_DMA) += timb_dma.o
8080
obj-$(CONFIG_UNIPHIER_MDMAC) += uniphier-mdmac.o
81+
obj-$(CONFIG_UNIPHIER_XDMAC) += uniphier-xdmac.o
8182
obj-$(CONFIG_XGENE_DMA) += xgene-dma.o
8283
obj-$(CONFIG_ZX_DMA) += zx_dma.o
8384
obj-$(CONFIG_ST_FDMA) += st_fdma.o

0 commit comments

Comments
 (0)