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

title: NVIDIA Tegra audio complex with ALC5632 CODEC

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Thierry Reding <thierry.reding@gmail.com>

allOf:
  - $ref: nvidia,tegra-audio-common.yaml#

properties:
  compatible:
    items:
      - pattern: '^[a-z0-9]+,tegra-audio-alc5632(-[a-z0-9]+)+$'
      - const: nvidia,tegra-audio-alc5632

  nvidia,audio-routing:
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    description: |
      A list of the connections between audio components.
      Each entry is a pair of strings, the first being the connection's sink,
      the second being the connection's source. Valid names for sources and
      sinks are the pins (documented in the binding document),
      and the jacks on the board.
    minItems: 2
    items:
      enum:
        # Board Connectors
        - "Headset Stereophone"
        - "Int Spk"
        - "Headset Mic"
        - "Digital Mic"

        # CODEC Pins
        - SPKOUT
        - SPKOUTN
        - MICBIAS1
        - MIC1
        - HPR
        - HPL
        - DMICDAT

required:
  - nvidia,i2s-controller

unevaluatedProperties: false

examples:
  - |
    sound {
        compatible = "nvidia,tegra-audio-alc5632-paz00",
                     "nvidia,tegra-audio-alc5632";

        nvidia,model = "Compal PAZ00";

        nvidia,audio-routing = "Int Spk", "SPKOUT",
                               "Int Spk", "SPKOUTN",
                               "Headset Mic", "MICBIAS1",
                               "MIC1", "Headset Mic",
                               "Headset Stereophone", "HPR",
                               "Headset Stereophone", "HPL",
                               "DMICDAT", "Digital Mic";

        nvidia,i2s-controller = <&i2s>;
        nvidia,audio-codec = <&codec>;

        clocks = <&clk 112>, <&clk 113>, <&clk 93>;
        clock-names = "pll_a", "pll_a_out0", "mclk";
    };
