Commit bfdf35c5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull dmaengine updates from Vinod Koul:
 "A fairly small update for the dmaengine subsystem. This has a new ARM
  dmaengine driver and couple of new device support and few driver
  changes:

  New support:
   - Renesas RZ/V2H(P) dma support for r9a09g057
   - Arm DMA-350 driver
   - Tegra Tegra264 ADMA support

  Updates:
   - AMD ptdma driver code removal and optimizations
   - Freescale edma error interrupt handler support"

* tag 'dmaengine-6.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (27 commits)
  dmaengine: idxd: Remove unused pointer and macro
  arm64: dts: renesas: r9a09g057: Add DMAC nodes
  dmaengine: sh: rz-dmac: Add RZ/V2H(P) support
  dmaengine: sh: rz-dmac: Allow for multiple DMACs
  irqchip/renesas-rzv2h: Add rzv2h_icu_register_dma_req()
  dt-bindings: dma: rz-dmac: Document RZ/V2H(P) family of SoCs
  dt-bindings: dma: rz-dmac: Restrict properties for RZ/A1H
  dmaengine: idxd: Narrow the restriction on BATCH to ver. 1 only
  dmaengine: ti: Add NULL check in udma_probe()
  fsldma: Set correct dma_mask based on hw capability
  dmaengine: idxd: Check availability of workqueue allocated by idxd wq driver before using
  dmaengine: xilinx_dma: Set dma_device directions
  dmaengine: tegra210-adma: Add Tegra264 support
  dt-bindings: Document Tegra264 ADMA support
  dmaengine: dw-edma: Add HDMA NATIVE map check
  dmaegnine: fsl-edma: add edma error interrupt handler
  dt-bindings: dma: fsl-edma: increase maxItems of interrupts and interrupt-names
  dmaengine: ARM_DMA350 should depend on ARM/ARM64
  dt-bindings: dma: qcom,bam: Document dma-coherent property
  dmaengine: Add Arm DMA-350 driver
  ...
parents d12ed2b7 3c018bf5
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/arm,dma-350.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Arm CoreLink DMA-350 Controller

maintainers:
  - Robin Murphy <robin.murphy@arm.com>

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

properties:
  compatible:
    const: arm,dma-350

  reg:
    items:
      - description: Base and size of the full register map

  interrupts:
    minItems: 1
    items:
      - description: Channel 0 interrupt
      - description: Channel 1 interrupt
      - description: Channel 2 interrupt
      - description: Channel 3 interrupt
      - description: Channel 4 interrupt
      - description: Channel 5 interrupt
      - description: Channel 6 interrupt
      - description: Channel 7 interrupt

  "#dma-cells":
    const: 1
    description: The cell is the trigger input number

required:
  - compatible
  - reg
  - interrupts

unevaluatedProperties: false
+2 −2
Original line number Diff line number Diff line
@@ -48,11 +48,11 @@ properties:

  interrupts:
    minItems: 1
    maxItems: 64
    maxItems: 65

  interrupt-names:
    minItems: 1
    maxItems: 64
    maxItems: 65

  "#dma-cells":
    description: |
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ properties:
      - enum:
          - nvidia,tegra210-adma
          - nvidia,tegra186-adma
          - nvidia,tegra264-adma
      - items:
          - enum:
              - nvidia,tegra234-adma
@@ -92,6 +93,7 @@ allOf:
          contains:
            enum:
              - nvidia,tegra186-adma
              - nvidia,tegra264-adma
    then:
      anyOf:
        - properties:
+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ properties:
  interrupts:
    maxItems: 1

  dma-coherent: true

  iommus:
    minItems: 1
    maxItems: 6
+89 −18
Original line number Diff line number Diff line
@@ -11,7 +11,8 @@ maintainers:

properties:
  compatible:
    items:
    oneOf:
      - items:
          - enum:
              - renesas,r7s72100-dmac # RZ/A1H
              - renesas,r9a07g043-dmac # RZ/G2UL and RZ/Five
@@ -20,10 +21,13 @@ properties:
              - renesas,r9a08g045-dmac # RZ/G3S
          - const: renesas,rz-dmac

      - const: renesas,r9a09g057-dmac # RZ/V2H(P)

  reg:
    items:
      - description: Control and channel register block
      - description: DMA extended resource selector block
    minItems: 1

  interrupts:
    maxItems: 17
@@ -52,6 +56,7 @@ properties:
    items:
      - description: DMA main clock
      - description: DMA register access clock
    minItems: 1

  clock-names:
    items:
@@ -61,10 +66,10 @@ properties:
  '#dma-cells':
    const: 1
    description:
      The cell specifies the encoded MID/RID values of the DMAC port
      connected to the DMA client and the slave channel configuration
      parameters.
      bits[0:9] - Specifies MID/RID value
      The cell specifies the encoded MID/RID or the REQ No values of
      the DMAC port connected to the DMA client and the slave channel
      configuration parameters.
      bits[0:9] - Specifies the MID/RID or the REQ No value
      bit[10] - Specifies DMA request high enable (HIEN)
      bit[11] - Specifies DMA request detection type (LVL)
      bits[12:14] - Specifies DMAACK output mode (AM)
@@ -80,12 +85,26 @@ properties:
    items:
      - description: Reset for DMA ARESETN reset terminal
      - description: Reset for DMA RST_ASYNC reset terminal
    minItems: 1

  reset-names:
    items:
      - const: arst
      - const: rst_async

  renesas,icu:
    description:
      It must contain the phandle to the ICU and the index of the DMAC as seen
      from the ICU.
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: Phandle to the ICU node.
          - description:
              The number of the DMAC as seen from the ICU, i.e. parameter k from
              register ICU_DMkSELy. This may differ from the actual DMAC instance
              number.

required:
  - compatible
  - reg
@@ -98,13 +117,25 @@ allOf:
  - $ref: dma-controller.yaml#

  - if:
      not:
      properties:
        compatible:
          contains:
            enum:
                - renesas,r7s72100-dmac
              - renesas,r9a07g043-dmac
              - renesas,r9a07g044-dmac
              - renesas,r9a07g054-dmac
              - renesas,r9a08g045-dmac
    then:
      properties:
        reg:
          minItems: 2
        clocks:
          minItems: 2
        resets:
          minItems: 2

        renesas,icu: false

      required:
        - clocks
        - clock-names
@@ -112,6 +143,46 @@ allOf:
        - resets
        - reset-names

  - if:
      properties:
        compatible:
          contains:
            const: renesas,r7s72100-dmac
    then:
      properties:
        reg:
          minItems: 2

        clocks: false
        clock-names: false
        power-domains: false
        resets: false
        reset-names: false
        renesas,icu: false

  - if:
      properties:
        compatible:
          contains:
            const: renesas,r9a09g057-dmac
    then:
      properties:
        reg:
          maxItems: 1
        clocks:
          maxItems: 1
        resets:
          maxItems: 1

        clock-names: false
        reset-names: false

      required:
        - clocks
        - power-domains
        - renesas,icu
        - resets

additionalProperties: false

examples:
Loading