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

title: Google SC7180-Trogdor ASoC sound card driver

maintainers:
  - Rohit kumar <rohitkr@codeaurora.org>
  - Cheng-Yi Chiang <cychiang@chromium.org>

description:
  This binding describes the SC7180 sound card which uses LPASS for audio.

properties:
  compatible:
    enum:
      - google,sc7180-trogdor
      - google,sc7180-coachz

  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.

  model:
    $ref: /schemas/types.yaml#/definitions/string
    description: User specified audio sound card name

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  dmic-gpios:
    maxItems: 1
    description: GPIO for switching between DMICs

patternProperties:
  "^dai-link(@[0-9])?$":
    description:
      Each subnode represents a dai link. Subnodes of each dai links would be
      cpu/codec dais.

    type: object

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name.
        $ref: /schemas/types.yaml#/definitions/string
        maxItems: 1

      reg:
        maxItems: 1
        description: dai link address.

      cpu:
        description: Holds subnode which indicates cpu dai.
        type: object
        additionalProperties: false

        properties:
          sound-dai:
            maxItems: 1

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        additionalProperties: false

        properties:
          sound-dai:
            maxItems: 1

    required:
      - link-name
      - cpu
      - codec

    additionalProperties: false

required:
  - compatible
  - model
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

examples:

  - |
    sound {
        compatible = "google,sc7180-trogdor";
        model = "sc7180-rt5682-max98357a-2mic";

        audio-routing =
                    "Headphone Jack", "HPOL",
                    "Headphone Jack", "HPOR";

        #address-cells = <1>;
        #size-cells = <0>;

        dmic-gpios = <&tlmm 86 0>;

        dai-link@0 {
            link-name = "MultiMedia0";
            reg = <0>;
            cpu {
                sound-dai = <&lpass_cpu 0>;
            };

            codec {
                sound-dai = <&alc5682 0>;
            };
        };

        dai-link@1 {
            link-name = "MultiMedia1";
            reg = <1>;
            cpu {
                sound-dai = <&lpass_cpu 1>;
            };

            codec {
                sound-dai = <&max98357a>;
            };
        };

        dai-link@2 {
            link-name = "MultiMedia2";
            reg = <2>;
            cpu {
                sound-dai = <&lpass_hdmi 0>;
            };

            codec {
                sound-dai = <&msm_dp>;
            };
        };
    };
