summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2p.yaml
blob: d14c31553543651b5af620936ae816e6dc8c0000 (plain)
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>;
    };