Skip to content

Commit

Permalink
Merge tag 'dmaengine-5.4-rc1' of git://git.infradead.org/users/vkoul/…
Browse files Browse the repository at this point in the history
…slave-dma

Pull dmaengine updates from Vinod Koul:

 - Move Dmaengine DT bindings to YAML and convert Allwinner to schema.

 - FSL dma device_synchronize implementation

 - DW split acpi and of helpers and updates to driver and support for
   Elkhart Lake

 - Move filter fn as private for omap-dma and edma drivers and
   improvements to these drivers

 - Mark expected switch fall-through in couple of drivers

 - Renames of shdma and nbpfaxi binding document

 - Minor updates to bunch of drivers

* tag 'dmaengine-5.4-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (55 commits)
  dmaengine: ti: edma: Use bitmap_set() instead of open coded edma_set_bits()
  dmaengine: ti: edma: Only reset region0 access registers
  dmaengine: ti: edma: Do not reset reserved paRAM slots
  dmaengine: iop-adma.c: fix printk format warning
  dmaengine: stm32-dma: Use struct_size() helper
  dt-bindings: dmaengine: dma-common: Fix the dma-channel-mask property
  dmanegine: ioat/dca: Use struct_size() helper
  dmaengine: iop-adma: remove set but not used variable 'slots_per_op'
  dmaengine: dmatest: Add support for completion polling
  dmaengine: ti: omap-dma: Remove variable override in omap_dma_tx_status()
  dmaengine: ti: omap-dma: Remove 'Assignment in if condition'
  dmaengine: ti: edma: Remove 'Assignment in if condition'
  dmaengine: dw: platform: Split OF helpers to separate module
  dmaengine: dw: platform: Split ACPI helpers to separate module
  dmaengine: dw: platform: Move handle check to dw_dma_acpi_controller_register()
  dmaengine: dw: platform: Switch to acpi_dma_controller_register()
  dmaengine: dw: platform: Use devm_platform_ioremap_resource()
  dmaengine: dw: platform: Enable iDMA 32-bit on Intel Elkhart Lake
  dmaengine: dw: platform: Use struct dw_dma_chip_pdata
  dmaengine: dw: Export struct dw_dma_chip_pdata for wider use
  ...
  • Loading branch information
torvalds committed Sep 18, 2019
2 parents 4feaab0 + c5c6faa commit 04cbfba
Show file tree
Hide file tree
Showing 54 changed files with 1,083 additions and 743 deletions.
55 changes: 55 additions & 0 deletions Documentation/devicetree/bindings/dma/allwinner,sun4i-a10-dma.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/allwinner,sun4i-a10-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 DMA Controller Device Tree Bindings

maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <maxime.ripard@bootlin.com>

allOf:
- $ref: "dma-controller.yaml#"

properties:
"#dma-cells":
const: 2
description:
The first cell is either 0 or 1, the former to use the normal
DMA, 1 for dedicated DMA. The second cell is the request line
number.

compatible:
const: allwinner,sun4i-a10-dma

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
maxItems: 1

required:
- "#dma-cells"
- compatible
- reg
- interrupts
- clocks

additionalProperties: false

examples:
- |
dma: dma-controller@1c02000 {
compatible = "allwinner,sun4i-a10-dma";
reg = <0x01c02000 0x1000>;
interrupts = <27>;
clocks = <&ahb_gates 6>;
#dma-cells = <2>;
};
...
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/allwinner,sun50i-a64-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A64 DMA Controller Device Tree Bindings

maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <maxime.ripard@bootlin.com>

allOf:
- $ref: "dma-controller.yaml#"

properties:
"#dma-cells":
const: 1
description: The cell is the request line number.

compatible:
enum:
- allwinner,sun50i-a64-dma
- allwinner,sun50i-h6-dma

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
minItems: 1
maxItems: 2

clock-names:
items:
- const: bus
- const: mbus

resets:
maxItems: 1

required:
- "#dma-cells"
- compatible
- reg
- interrupts
- clocks
- resets
- dma-channels

if:
properties:
compatible:
const: allwinner,sun50i-h6-dma

then:
properties:
clocks:
maxItems: 2

required:
- clock-names

else:
properties:
clocks:
maxItems: 1

# FIXME: We should set it, but it would report all the generic
# properties as additional properties.
# additionalProperties: false

examples:
- |
dma: dma-controller@1c02000 {
compatible = "allwinner,sun50i-a64-dma";
reg = <0x01c02000 0x1000>;
interrupts = <0 50 4>;
clocks = <&ccu 30>;
dma-channels = <8>;
dma-requests = <27>;
resets = <&ccu 7>;
#dma-cells = <1>;
};
...
62 changes: 62 additions & 0 deletions Documentation/devicetree/bindings/dma/allwinner,sun6i-a31-dma.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/allwinner,sun6i-a31-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 DMA Controller Device Tree Bindings

maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <maxime.ripard@bootlin.com>

allOf:
- $ref: "dma-controller.yaml#"

properties:
"#dma-cells":
const: 1
description: The cell is the request line number.

compatible:
oneOf:
- const: allwinner,sun6i-a31-dma
- const: allwinner,sun8i-a23-dma
- const: allwinner,sun8i-a83t-dma
- const: allwinner,sun8i-h3-dma
- const: allwinner,sun8i-v3s-dma

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
maxItems: 1

resets:
maxItems: 1

required:
- "#dma-cells"
- compatible
- reg
- interrupts
- clocks
- resets

additionalProperties: false

examples:
- |
dma: dma-controller@1c02000 {
compatible = "allwinner,sun6i-a31-dma";
reg = <0x01c02000 0x1000>;
interrupts = <0 50 4>;
clocks = <&ahb1_gates 6>;
resets = <&ahb1_rst 6>;
#dma-cells = <1>;
};
...
45 changes: 45 additions & 0 deletions Documentation/devicetree/bindings/dma/dma-common.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/dma-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: DMA Engine Generic Binding

maintainers:
- Vinod Koul <vkoul@kernel.org>

description:
Generic binding to provide a way for a driver using DMA Engine to
retrieve the DMA request or channel information that goes from a
hardware device to a DMA controller.

select: false

properties:
"#dma-cells":
minimum: 1
# Should be enough
maximum: 255
description:
Used to provide DMA controller specific information.

dma-channel-mask:
$ref: /schemas/types.yaml#definitions/uint32
description:
Bitmask of available DMA channels in ascending order that are
not reserved by firmware and are available to the
kernel. i.e. first channel corresponds to LSB.

dma-channels:
$ref: /schemas/types.yaml#definitions/uint32
description:
Number of DMA channels supported by the controller.

dma-requests:
$ref: /schemas/types.yaml#definitions/uint32
description:
Number of DMA request signals supported by the controller.

required:
- "#dma-cells"
35 changes: 35 additions & 0 deletions Documentation/devicetree/bindings/dma/dma-controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/dma-controller.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: DMA Controller Generic Binding

maintainers:
- Vinod Koul <vkoul@kernel.org>

allOf:
- $ref: "dma-common.yaml#"

# Everything else is described in the common file
properties:
$nodename:
pattern: "^dma-controller(@.*)?$"

examples:
- |
dma: dma-controller@48000000 {
compatible = "ti,omap-sdma";
reg = <0x48000000 0x1000>;
interrupts = <0 12 0x4
0 13 0x4
0 14 0x4
0 15 0x4>;
#dma-cells = <1>;
dma-channels = <32>;
dma-requests = <127>;
dma-channel-mask = <0xfffe>;
};
...
50 changes: 50 additions & 0 deletions Documentation/devicetree/bindings/dma/dma-router.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/dma-router.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: DMA Router Generic Binding

maintainers:
- Vinod Koul <vkoul@kernel.org>

allOf:
- $ref: "dma-common.yaml#"

description:
DMA routers are transparent IP blocks used to route DMA request
lines from devices to the DMA controller. Some SoCs (like TI DRA7x)
have more peripherals integrated with DMA requests than what the DMA
controller can handle directly.

properties:
$nodename:
pattern: "^dma-router(@.*)?$"

dma-masters:
$ref: /schemas/types.yaml#definitions/phandle-array
description:
Array of phandles to the DMA controllers the router can direct
the signal to.

dma-requests:
description:
Number of incoming request lines the router can handle.

required:
- "#dma-cells"
- dma-masters

examples:
- |
sdma_xbar: dma-router@4a002b78 {
compatible = "ti,dra7-dma-crossbar";
reg = <0x4a002b78 0xfc>;
#dma-cells = <1>;
dma-requests = <205>;
ti,dma-safe-map = <0>;
dma-masters = <&sdma>;
};
...
Loading

0 comments on commit 04cbfba

Please sign in to comment.