xref: /freebsd/sys/contrib/device-tree/Bindings/dma/cirrus,ep9301-dma-m2p.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b2d2a78aSEmmanuel Vadot%YAML 1.2
3*b2d2a78aSEmmanuel Vadot---
4*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/dma/cirrus,ep9301-dma-m2p.yaml#
5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b2d2a78aSEmmanuel Vadot
7*b2d2a78aSEmmanuel Vadottitle: Cirrus Logic ep93xx SoC M2P DMA controller
8*b2d2a78aSEmmanuel Vadot
9*b2d2a78aSEmmanuel Vadotmaintainers:
10*b2d2a78aSEmmanuel Vadot  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
11*b2d2a78aSEmmanuel Vadot  - Nikita Shubin <nikita.shubin@maquefel.me>
12*b2d2a78aSEmmanuel Vadot
13*b2d2a78aSEmmanuel VadotallOf:
14*b2d2a78aSEmmanuel Vadot  - $ref: dma-controller.yaml#
15*b2d2a78aSEmmanuel Vadot
16*b2d2a78aSEmmanuel Vadotproperties:
17*b2d2a78aSEmmanuel Vadot  compatible:
18*b2d2a78aSEmmanuel Vadot    oneOf:
19*b2d2a78aSEmmanuel Vadot      - const: cirrus,ep9301-dma-m2p
20*b2d2a78aSEmmanuel Vadot      - items:
21*b2d2a78aSEmmanuel Vadot          - enum:
22*b2d2a78aSEmmanuel Vadot              - cirrus,ep9302-dma-m2p
23*b2d2a78aSEmmanuel Vadot              - cirrus,ep9307-dma-m2p
24*b2d2a78aSEmmanuel Vadot              - cirrus,ep9312-dma-m2p
25*b2d2a78aSEmmanuel Vadot              - cirrus,ep9315-dma-m2p
26*b2d2a78aSEmmanuel Vadot          - const: cirrus,ep9301-dma-m2p
27*b2d2a78aSEmmanuel Vadot
28*b2d2a78aSEmmanuel Vadot  reg:
29*b2d2a78aSEmmanuel Vadot    items:
30*b2d2a78aSEmmanuel Vadot      - description: m2p0 channel registers
31*b2d2a78aSEmmanuel Vadot      - description: m2p1 channel registers
32*b2d2a78aSEmmanuel Vadot      - description: m2p2 channel registers
33*b2d2a78aSEmmanuel Vadot      - description: m2p3 channel registers
34*b2d2a78aSEmmanuel Vadot      - description: m2p4 channel registers
35*b2d2a78aSEmmanuel Vadot      - description: m2p5 channel registers
36*b2d2a78aSEmmanuel Vadot      - description: m2p6 channel registers
37*b2d2a78aSEmmanuel Vadot      - description: m2p7 channel registers
38*b2d2a78aSEmmanuel Vadot      - description: m2p8 channel registers
39*b2d2a78aSEmmanuel Vadot      - description: m2p9 channel registers
40*b2d2a78aSEmmanuel Vadot
41*b2d2a78aSEmmanuel Vadot  clocks:
42*b2d2a78aSEmmanuel Vadot    items:
43*b2d2a78aSEmmanuel Vadot      - description: m2p0 channel gate clock
44*b2d2a78aSEmmanuel Vadot      - description: m2p1 channel gate clock
45*b2d2a78aSEmmanuel Vadot      - description: m2p2 channel gate clock
46*b2d2a78aSEmmanuel Vadot      - description: m2p3 channel gate clock
47*b2d2a78aSEmmanuel Vadot      - description: m2p4 channel gate clock
48*b2d2a78aSEmmanuel Vadot      - description: m2p5 channel gate clock
49*b2d2a78aSEmmanuel Vadot      - description: m2p6 channel gate clock
50*b2d2a78aSEmmanuel Vadot      - description: m2p7 channel gate clock
51*b2d2a78aSEmmanuel Vadot      - description: m2p8 channel gate clock
52*b2d2a78aSEmmanuel Vadot      - description: m2p9 channel gate clock
53*b2d2a78aSEmmanuel Vadot
54*b2d2a78aSEmmanuel Vadot  clock-names:
55*b2d2a78aSEmmanuel Vadot    items:
56*b2d2a78aSEmmanuel Vadot      - const: m2p0
57*b2d2a78aSEmmanuel Vadot      - const: m2p1
58*b2d2a78aSEmmanuel Vadot      - const: m2p2
59*b2d2a78aSEmmanuel Vadot      - const: m2p3
60*b2d2a78aSEmmanuel Vadot      - const: m2p4
61*b2d2a78aSEmmanuel Vadot      - const: m2p5
62*b2d2a78aSEmmanuel Vadot      - const: m2p6
63*b2d2a78aSEmmanuel Vadot      - const: m2p7
64*b2d2a78aSEmmanuel Vadot      - const: m2p8
65*b2d2a78aSEmmanuel Vadot      - const: m2p9
66*b2d2a78aSEmmanuel Vadot
67*b2d2a78aSEmmanuel Vadot  interrupts:
68*b2d2a78aSEmmanuel Vadot    items:
69*b2d2a78aSEmmanuel Vadot      - description: m2p0 channel interrupt
70*b2d2a78aSEmmanuel Vadot      - description: m2p1 channel interrupt
71*b2d2a78aSEmmanuel Vadot      - description: m2p2 channel interrupt
72*b2d2a78aSEmmanuel Vadot      - description: m2p3 channel interrupt
73*b2d2a78aSEmmanuel Vadot      - description: m2p4 channel interrupt
74*b2d2a78aSEmmanuel Vadot      - description: m2p5 channel interrupt
75*b2d2a78aSEmmanuel Vadot      - description: m2p6 channel interrupt
76*b2d2a78aSEmmanuel Vadot      - description: m2p7 channel interrupt
77*b2d2a78aSEmmanuel Vadot      - description: m2p8 channel interrupt
78*b2d2a78aSEmmanuel Vadot      - description: m2p9 channel interrupt
79*b2d2a78aSEmmanuel Vadot
80*b2d2a78aSEmmanuel Vadot  '#dma-cells':
81*b2d2a78aSEmmanuel Vadot    const: 2
82*b2d2a78aSEmmanuel Vadot    description: |
83*b2d2a78aSEmmanuel Vadot      The first cell is the unique device channel number as indicated by this
84*b2d2a78aSEmmanuel Vadot      table for ep93xx:
85*b2d2a78aSEmmanuel Vadot
86*b2d2a78aSEmmanuel Vadot      0: I2S channel 1
87*b2d2a78aSEmmanuel Vadot      1: I2S channel 2 (unused)
88*b2d2a78aSEmmanuel Vadot      2: AC97 channel 1 (unused)
89*b2d2a78aSEmmanuel Vadot      3: AC97 channel 2 (unused)
90*b2d2a78aSEmmanuel Vadot      4: AC97 channel 3 (unused)
91*b2d2a78aSEmmanuel Vadot      5: I2S channel 3 (unused)
92*b2d2a78aSEmmanuel Vadot      6: UART1 (unused)
93*b2d2a78aSEmmanuel Vadot      7: UART2 (unused)
94*b2d2a78aSEmmanuel Vadot      8: UART3 (unused)
95*b2d2a78aSEmmanuel Vadot      9: IRDA (unused)
96*b2d2a78aSEmmanuel Vadot
97*b2d2a78aSEmmanuel Vadot      The second cell is the DMA direction line number:
98*b2d2a78aSEmmanuel Vadot
99*b2d2a78aSEmmanuel Vadot      1: Memory to device
100*b2d2a78aSEmmanuel Vadot      2: Device to memory
101*b2d2a78aSEmmanuel Vadot
102*b2d2a78aSEmmanuel Vadotrequired:
103*b2d2a78aSEmmanuel Vadot  - compatible
104*b2d2a78aSEmmanuel Vadot  - reg
105*b2d2a78aSEmmanuel Vadot  - clocks
106*b2d2a78aSEmmanuel Vadot  - clock-names
107*b2d2a78aSEmmanuel Vadot  - interrupts
108*b2d2a78aSEmmanuel Vadot
109*b2d2a78aSEmmanuel VadotadditionalProperties: false
110*b2d2a78aSEmmanuel Vadot
111*b2d2a78aSEmmanuel Vadotexamples:
112*b2d2a78aSEmmanuel Vadot  - |
113*b2d2a78aSEmmanuel Vadot    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
114*b2d2a78aSEmmanuel Vadot    dma-controller@80000000 {
115*b2d2a78aSEmmanuel Vadot        compatible = "cirrus,ep9301-dma-m2p";
116*b2d2a78aSEmmanuel Vadot        reg = <0x80000000 0x0040>,
117*b2d2a78aSEmmanuel Vadot              <0x80000040 0x0040>,
118*b2d2a78aSEmmanuel Vadot              <0x80000080 0x0040>,
119*b2d2a78aSEmmanuel Vadot              <0x800000c0 0x0040>,
120*b2d2a78aSEmmanuel Vadot              <0x80000240 0x0040>,
121*b2d2a78aSEmmanuel Vadot              <0x80000200 0x0040>,
122*b2d2a78aSEmmanuel Vadot              <0x800002c0 0x0040>,
123*b2d2a78aSEmmanuel Vadot              <0x80000280 0x0040>,
124*b2d2a78aSEmmanuel Vadot              <0x80000340 0x0040>,
125*b2d2a78aSEmmanuel Vadot              <0x80000300 0x0040>;
126*b2d2a78aSEmmanuel Vadot        clocks = <&syscon EP93XX_CLK_M2P0>,
127*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P1>,
128*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P2>,
129*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P3>,
130*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P4>,
131*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P5>,
132*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P6>,
133*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P7>,
134*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P8>,
135*b2d2a78aSEmmanuel Vadot                 <&syscon EP93XX_CLK_M2P9>;
136*b2d2a78aSEmmanuel Vadot        clock-names = "m2p0", "m2p1",
137*b2d2a78aSEmmanuel Vadot                      "m2p2", "m2p3",
138*b2d2a78aSEmmanuel Vadot                      "m2p4", "m2p5",
139*b2d2a78aSEmmanuel Vadot                      "m2p6", "m2p7",
140*b2d2a78aSEmmanuel Vadot                      "m2p8", "m2p9";
141*b2d2a78aSEmmanuel Vadot        interrupt-parent = <&vic0>;
142*b2d2a78aSEmmanuel Vadot        interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
143*b2d2a78aSEmmanuel Vadot        #dma-cells = <2>;
144*b2d2a78aSEmmanuel Vadot    };
145