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

title: Mediatek MT8192 with MT6359, RT1015 and RT5682 ASoC sound card driver

maintainers:
  - Jiaxin Yu <jiaxin.yu@mediatek.com>
  - Shane Chien <shane.chien@mediatek.com>

description:
  This binding describes the MT8192 sound card.

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

properties:
  compatible:
    enum:
      - mediatek,mt8192_mt6359_rt1015_rt5682
      - mediatek,mt8192_mt6359_rt1015p_rt5682
      - mediatek,mt8192_mt6359_rt1015p_rt5682s

  audio-routing:
    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 could be the input or output widgets of audio components,
      power supplies, MicBias of codec and the software switch.
    minItems: 2
    items:
      enum:
        # Sinks
        - Speakers
        - Headphone Jack
        - IN1P
        - Left Spk
        - Right Spk

        # Sources
        - Headset Mic
        - HPOL
        - HPOR
        - Left SPO
        - Right SPO
        - Speaker

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

  mediatek,hdmi-codec:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: The phandle of HDMI codec.
    deprecated: true

  headset-codec:
    type: object
    additionalProperties: false
    deprecated: true

    properties:
      sound-dai:
        maxItems: 1
    required:
      - sound-dai

  speaker-codecs:
    type: object
    additionalProperties: false
    deprecated: true

    properties:
      sound-dai:
        minItems: 1
        maxItems: 2
        items:
          maxItems: 1
    required:
      - sound-dai

patternProperties:
  ".*-dai-link$":
    type: object
    additionalProperties: false

    description:
      Container for dai-link level properties and CODEC sub-nodes.

    properties:
      link-name:
        description: Indicates dai-link name and PCM stream name
        enum:
          - I2S0
          - I2S1
          - I2S2
          - I2S3
          - I2S4
          - I2S5
          - I2S6
          - I2S7
          - I2S8
          - I2S9
          - TDM

      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
        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.
        enum: [ cpu, codec ]

    required:
      - link-name

unevaluatedProperties: false

required:
  - compatible
  - mediatek,platform

# Disallow legacy properties if xxx-dai-link nodes are specified
if:
  not:
    patternProperties:
      ".*-dai-link$": false
then:
  properties:
    headset-codec: false
    speaker-codecs: false
    mediatek,hdmi-codec: false

examples:
  - |

    sound: mt8192-sound {
        compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
        model = "mt8192_mt6359_rt1015_rt5682";
        pinctrl-names = "aud_clk_mosi_off",
                        "aud_clk_mosi_on";
        pinctrl-0 = <&aud_clk_mosi_off>;
        pinctrl-1 = <&aud_clk_mosi_on>;
        mediatek,platform = <&afe>;

        audio-routing =
                "Headphone Jack", "HPOL",
                "Headphone Jack", "HPOR",
                "IN1P", "Headset Mic",
                "Speakers", "Speaker";

        spk-playback-dai-link {
                link-name = "I2S3";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt1015p>;
                };
        };

        hs-playback-dai-link {
                link-name = "I2S8";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt5682 0>;
                };
        };

        hs-capture-dai-link {
                link-name = "I2S9";
                dai-format = "i2s";
                mediatek,clk-provider = "cpu";
                codec {
                        sound-dai = <&rt5682 0>;
                };
        };

        displayport-dai-link {
                link-name = "TDM";
                dai-format = "dsp_a";
                codec {
                        sound-dai = <&anx_bridge_dp>;
                };
        };
    };

...
