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

title: MediaTek MT8188 ASoC sound card

maintainers:
  - Trevor Wu <trevor.wu@mediatek.com>

allOf:
  - $ref: sound-card-common.yaml#

properties:
  compatible:
    enum:
      - mediatek,mt8188-mt6359-evb
      - mediatek,mt8188-nau8825

  audio-routing:
    description:
      Valid names could be the input or output widgets of audio components,
      power supplies, MicBias of codec and the software switch.

  mediatek,platform:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of MT8188 ASoC platform.

patternProperties:
  "^dai-link-[0-9]+$":
    type: object
    description:
      Container for dai-link level properties and CODEC sub-nodes.

    properties:
      link-name:
        description:
          This property corresponds to the name of the BE dai-link to which
          we are going to update parameters in this node.
        items:
          enum:
            - DPTX_BE
            - ETDM1_IN_BE
            - ETDM2_IN_BE
            - ETDM1_OUT_BE
            - ETDM2_OUT_BE
            - ETDM3_OUT_BE
            - PCM1_BE

      codec:
        description: Holds subnode which indicates codec dai.
        type: object
        additionalProperties: false
        properties:
          sound-dai:
            minItems: 1
            maxItems: 2
        required:
          - sound-dai

      dai-format:
        description: audio format.
        items:
          enum:
            - i2s
            - right_j
            - left_j
            - dsp_a
            - dsp_b

      mediatek,clk-provider:
        $ref: /schemas/types.yaml#/definitions/string
        description: Indicates dai-link clock master.
        items:
          enum:
            - cpu
            - codec

    additionalProperties: false

    required:
      - link-name

unevaluatedProperties: false

required:
  - compatible
  - mediatek,platform

examples:
  - |
    sound {
        compatible = "mediatek,mt8188-mt6359-evb";
        model = "MT6359-EVB";
        mediatek,platform = <&afe>;
        pinctrl-names = "default";
        pinctrl-0 = <&aud_pins_default>;
        audio-routing =
            "Headphone", "Headphone L",
            "Headphone", "Headphone R",
            "AIN1", "Headset Mic";
        dai-link-0 {
            link-name = "ETDM3_OUT_BE";
            dai-format = "i2s";
            mediatek,clk-provider = "cpu";
            codec {
                sound-dai = <&hdmi0>;
            };
        };
    };

...