| # 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>; |
| }; |