Commit 04cbfba6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'dmaengine-5.4-rc1' of git://git.infradead.org/users/vkoul/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
  ...
parents 4feaab05 c5c6faae
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
# 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>;
    };

...
+88 −0
Original line number Diff line number Diff line
# 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 −0
Original line number Diff line number Diff line
# 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 −0
Original line number Diff line number Diff line
# 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 −0
Original line number Diff line number Diff line
# 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>;
    };

...
Loading