# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cirrus,ep9301-i2s.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus EP93xx I2S Controller

description: |
  The I2S controller is used to stream serial audio data between the external
  I2S CODECs’, ADCs/DACs, and the ARM Core. The controller supports I2S, Left-
  and Right-Justified DSP formats.

maintainers:
  - Alexander Sverdlin <alexander.sverdlin@gmail.com>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: cirrus,ep9301-i2s

  '#sound-dai-cells':
    const: 0

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 3
    maxItems: 3

  clock-names:
    items:
      - const: mclk
      - const: sclk
      - const: lrclk

  dmas:
    items:
      - description: out DMA channel
      - description: in DMA channel

  dma-names:
    items:
      - const: tx
      - const: rx

  port:
    $ref: audio-graph-port.yaml#
    unevaluatedProperties: false

required:
  - compatible
  - '#sound-dai-cells'
  - reg
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
    i2s: i2s@80820000 {
        compatible = "cirrus,ep9301-i2s";
        #sound-dai-cells = <0>;
        reg = <0x80820000 0x100>;
        interrupt-parent = <&vic1>;
        interrupts = <28>;
        clocks = <&syscon 29>,
                 <&syscon 30>,
                 <&syscon 31>;
        clock-names = "mclk", "sclk", "lrclk";
        dmas = <&dma0 0 1>, <&dma0 0 2>;
        dma-names = "tx", "rx";
    };

...
