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

title: Qualcomm Technologies Inc. ASoC sound card drivers

maintainers:
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

description:
  This bindings describes Qualcomm SoC based sound cards
  which uses LPASS internal codec for audio.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - lenovo,yoga-c630-sndcard
              - qcom,db845c-sndcard
          - const: qcom,sdm845-sndcard
      - enum:
          - qcom,apq8016-sbc-sndcard
          - qcom,msm8916-qdsp6-sndcard
          - qcom,qrb5165-rb5-sndcard
          - qcom,sc7180-qdsp6-sndcard
          - qcom,sc8280xp-sndcard
          - qcom,sdm845-sndcard
          - qcom,sm8250-sndcard
          - qcom,sm8450-sndcard

  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 could be power supplies,
      MicBias of codec and the jacks on the board.

  aux-devs:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: |
      List of phandles pointing to auxiliary devices, such
      as amplifiers, to be added to the sound card.

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

  pin-switches:
    description: List of widget names for which pin switches should be created.
    $ref: /schemas/types.yaml#/definitions/string-array

  widgets:
    description: User specified audio sound widgets.
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array

  # Only valid for some compatibles (see allOf if below)
  reg: true
  reg-names: true

patternProperties:
  ".*-dai-link$":
    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

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

        properties:
          sound-dai:
            maxItems: 1

      platform:
        description: Holds subnode which indicates platform 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:
            minItems: 1
            maxItems: 4

    required:
      - link-name
      - cpu

    additionalProperties: false

required:
  - compatible
  - model

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,apq8016-sbc-sndcard
              - qcom,msm8916-qdsp6-sndcard
    then:
      properties:
        reg:
          items:
            - description: Microphone I/O mux register address
            - description: Speaker I/O mux register address
        reg-names:
          items:
            - const: mic-iomux
            - const: spkr-iomux
      required:
        - compatible
        - model
        - reg
        - reg-names
    else:
      properties:
        reg: false
        reg-names: false

additionalProperties: false

examples:

  - |
    #include <dt-bindings/sound/qcom,q6afe.h>
    #include <dt-bindings/sound/qcom,q6asm.h>
    sound {
        compatible = "qcom,qrb5165-rb5-sndcard";
        model = "Qualcomm-qrb5165-RB5-WSA8815-Speakers-DMIC0";
        audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
                    "SpkrRight IN", "WSA_SPK2 OUT",
                    "VA DMIC0", "vdd-micb",
                    "VA DMIC1", "vdd-micb";

        mm1-dai-link {
            link-name = "MultiMedia0";
            cpu {
                sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
            };
        };

        mm2-dai-link {
            link-name = "MultiMedia2";
            cpu {
                sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
            };
        };

        mm3-dai-link {
            link-name = "MultiMedia3";
            cpu {
                sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
            };
        };

        hdmi-dai-link {
            link-name = "HDMI Playback";
            cpu {
                sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
            };

            platform {
                sound-dai = <&q6routing>;
            };

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

        wsa-dai-link {
            link-name = "WSA Playback";
            cpu {
                sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>;
            };

            platform {
                sound-dai = <&q6routing>;
            };

            codec {
                sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro>;
            };
        };

        va-dai-link {
            link-name = "VA Capture";
            cpu {
                sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>;
            };

            platform {
                sound-dai = <&q6routing>;
            };

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

  - |
    #include <dt-bindings/sound/qcom,lpass.h>
    sound@7702000 {
        compatible = "qcom,apq8016-sbc-sndcard";
        reg = <0x07702000 0x4>, <0x07702004 0x4>;
        reg-names = "mic-iomux", "spkr-iomux";

        model = "DB410c";
        audio-routing =
            "AMIC2", "MIC BIAS Internal2",
            "AMIC3", "MIC BIAS External1";

        pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
        pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
        pinctrl-names = "default", "sleep";

        quaternary-dai-link {
            link-name = "ADV7533";
            cpu {
                sound-dai = <&lpass MI2S_QUATERNARY>;
            };
            codec {
                sound-dai = <&adv_bridge 0>;
            };
        };

        primary-dai-link {
            link-name = "WCD";
            cpu {
                sound-dai = <&lpass MI2S_PRIMARY>;
            };
            codec {
                sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
            };
        };

        tertiary-dai-link {
            link-name = "WCD-Capture";
            cpu {
                sound-dai = <&lpass MI2S_TERTIARY>;
            };
            codec {
                sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
            };
        };
    };

  - |
    #include <dt-bindings/sound/qcom,q6afe.h>
    #include <dt-bindings/sound/qcom,q6asm.h>
    sound@7702000 {
        compatible = "qcom,msm8916-qdsp6-sndcard";
        reg = <0x07702000 0x4>, <0x07702004 0x4>;
        reg-names = "mic-iomux", "spkr-iomux";

        model = "msm8916";
        widgets =
            "Speaker", "Speaker",
            "Headphone", "Headphones";
        pin-switches = "Speaker";
        audio-routing =
            "Speaker", "Speaker Amp OUT",
            "Speaker Amp IN", "HPH_R",
            "Headphones", "HPH_L",
            "Headphones", "HPH_R",
            "AMIC1", "MIC BIAS Internal1",
            "AMIC2", "MIC BIAS Internal2",
            "AMIC3", "MIC BIAS Internal3";
        aux-devs = <&speaker_amp>;

        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cdc_pdm_lines_act>;
        pinctrl-1 = <&cdc_pdm_lines_sus>;

        mm1-dai-link {
            link-name = "MultiMedia1";
            cpu {
                sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
            };
        };

        primary-dai-link {
            link-name = "Primary MI2S";
            cpu {
                sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
            };
            platform {
                sound-dai = <&q6routing>;
            };
            codec {
                sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
            };
        };
    };
