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

title: NVIDIA Tegra20 I2S Controller

description: |
  The I2S Controller streams synchronous serial audio data between system
  memory and an external audio device. The controller supports the I2S Left
  Justified Mode, Right Justified Mode, and DSP mode formats.

maintainers:
  - Thierry Reding <treding@nvidia.com>
  - Jon Hunter <jonathanh@nvidia.com>

properties:
  compatible:
    const: nvidia,tegra20-i2s

  reg:
    maxItems: 1

  resets:
    maxItems: 1

  reset-names:
    const: i2s

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1

  dmas:
    minItems: 2

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

  nvidia,fixed-parent-rate:
    description: |
      Specifies whether board prefers parent clock to stay at a fixed rate.
      This allows multiple Tegra20 audio components work simultaneously by
      limiting number of supportable audio rates.
    type: boolean

required:
  - compatible
  - reg
  - resets
  - reset-names
  - interrupts
  - clocks
  - dmas
  - dma-names

additionalProperties: false

examples:
  - |
    i2s@70002800 {
        compatible = "nvidia,tegra20-i2s";
        reg = <0x70002800 0x200>;
        interrupts = <45>;
        clocks = <&tegra_car 11>;
        resets = <&tegra_car 11>;
        reset-names = "i2s";
        dmas = <&apbdma 21>, <&apbdma 21>;
        dma-names = "rx", "tx";
    };

...