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

title: NVIDIA Tegra30 I2S controller

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

properties:
  compatible:
    oneOf:
      - enum:
          - nvidia,tegra124-i2s
          - nvidia,tegra30-i2s
      - items:
          - const: nvidia,tegra114-i2s
          - const: nvidia,tegra30-i2s

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: i2s

  resets:
    maxItems: 1

  reset-names:
    const: i2s

  nvidia,ahub-cif-ids:
    description: list of AHUB CIF IDs
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - description: rx (playback)
      - description: tx (capture)

required:
  - compatible
  - reg
  - clocks
  - resets
  - reset-names
  - nvidia,ahub-cif-ids

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/tegra30-car.h>

    i2s@70080300 {
        compatible = "nvidia,tegra30-i2s";
        reg = <0x70080300 0x100>;
        nvidia,ahub-cif-ids = <4 4>;
        clocks = <&tegra_car TEGRA30_CLK_I2S0>;
        resets = <&tegra_car 30>;
        reset-names = "i2s";
    };
...
