Documentation / devicetree / bindings / dma / cirrus,ep9301-dma-m2p.yaml


Based on kernel version 6.12.4. Page generated on 2024-12-12 21:01 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/cirrus,ep9301-dma-m2p.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic ep93xx SoC M2P DMA controller

maintainers:
  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
  - Nikita Shubin <nikita.shubin@maquefel.me>

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

properties:
  compatible:
    oneOf:
      - const: cirrus,ep9301-dma-m2p
      - items:
          - enum:
              - cirrus,ep9302-dma-m2p
              - cirrus,ep9307-dma-m2p
              - cirrus,ep9312-dma-m2p
              - cirrus,ep9315-dma-m2p
          - const: cirrus,ep9301-dma-m2p

  reg:
    items:
      - description: m2p0 channel registers
      - description: m2p1 channel registers
      - description: m2p2 channel registers
      - description: m2p3 channel registers
      - description: m2p4 channel registers
      - description: m2p5 channel registers
      - description: m2p6 channel registers
      - description: m2p7 channel registers
      - description: m2p8 channel registers
      - description: m2p9 channel registers

  clocks:
    items:
      - description: m2p0 channel gate clock
      - description: m2p1 channel gate clock
      - description: m2p2 channel gate clock
      - description: m2p3 channel gate clock
      - description: m2p4 channel gate clock
      - description: m2p5 channel gate clock
      - description: m2p6 channel gate clock
      - description: m2p7 channel gate clock
      - description: m2p8 channel gate clock
      - description: m2p9 channel gate clock

  clock-names:
    items:
      - const: m2p0
      - const: m2p1
      - const: m2p2
      - const: m2p3
      - const: m2p4
      - const: m2p5
      - const: m2p6
      - const: m2p7
      - const: m2p8
      - const: m2p9

  interrupts:
    items:
      - description: m2p0 channel interrupt
      - description: m2p1 channel interrupt
      - description: m2p2 channel interrupt
      - description: m2p3 channel interrupt
      - description: m2p4 channel interrupt
      - description: m2p5 channel interrupt
      - description: m2p6 channel interrupt
      - description: m2p7 channel interrupt
      - description: m2p8 channel interrupt
      - description: m2p9 channel interrupt
 
  '#dma-cells':
    const: 2
    description: |
      The first cell is the unique device channel number as indicated by this
      table for ep93xx:
 
      0: I2S channel 1
      1: I2S channel 2 (unused)
      2: AC97 channel 1 (unused)
      3: AC97 channel 2 (unused)
      4: AC97 channel 3 (unused)
      5: I2S channel 3 (unused)
      6: UART1 (unused)
      7: UART2 (unused)
      8: UART3 (unused)
      9: IRDA (unused)
 
      The second cell is the DMA direction line number:
 
      1: Memory to device
      2: Device to memory

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
    dma-controller@80000000 {
        compatible = "cirrus,ep9301-dma-m2p";
        reg = <0x80000000 0x0040>,
              <0x80000040 0x0040>,
              <0x80000080 0x0040>,
              <0x800000c0 0x0040>,
              <0x80000240 0x0040>,
              <0x80000200 0x0040>,
              <0x800002c0 0x0040>,
              <0x80000280 0x0040>,
              <0x80000340 0x0040>,
              <0x80000300 0x0040>;
        clocks = <&syscon EP93XX_CLK_M2P0>,
                 <&syscon EP93XX_CLK_M2P1>,
                 <&syscon EP93XX_CLK_M2P2>,
                 <&syscon EP93XX_CLK_M2P3>,
                 <&syscon EP93XX_CLK_M2P4>,
                 <&syscon EP93XX_CLK_M2P5>,
                 <&syscon EP93XX_CLK_M2P6>,
                 <&syscon EP93XX_CLK_M2P7>,
                 <&syscon EP93XX_CLK_M2P8>,
                 <&syscon EP93XX_CLK_M2P9>;
        clock-names = "m2p0", "m2p1",
                      "m2p2", "m2p3",
                      "m2p4", "m2p5",
                      "m2p6", "m2p7",
                      "m2p8", "m2p9";
        interrupt-parent = <&vic0>;
        interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
        #dma-cells = <2>;
    };