# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/sound/mt8186-mt6366-rt1019-rt5682s.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Mediatek MT8186 with MT6366, RT1019 and RT5682S ASoC sound card driver maintainers: - Jiaxin Yu description: This binding describes the MT8186 sound card. allOf: - $ref: sound-card-common.yaml# properties: compatible: enum: - mediatek,mt8186-mt6366-rt1019-rt5682s-sound - mediatek,mt8186-mt6366-rt5682s-max98360-sound - mediatek,mt8186-mt6366-rt5650-sound 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 the input or output widgets of audio components, power supplies, MicBias of codec and the software switch. minItems: 2 items: enum: # Sinks - HDMI1 - Headphone - IN1P - IN1N - Line Out - Speakers # Sources - Headset Mic - HPOL - HPOR - Speaker - SPOL - SPOR - TX mediatek,platform: $ref: /schemas/types.yaml#/definitions/phandle description: The phandle of MT8186 ASoC platform. dmic-gpios: maxItems: 1 description: dmic-gpios optional prop for switching between two DMICs. Ex, the GPIO can control a MUX HW component to select dmic clk and data form a Front or Rear dmic. headset-codec: type: object deprecated: true additionalProperties: false properties: sound-dai: maxItems: 1 required: - sound-dai playback-codecs: type: object deprecated: true additionalProperties: false properties: sound-dai: items: - description: phandle of dp codec - description: phandle of l channel speaker codec - description: phandle of r channel speaker codec minItems: 2 required: - sound-dai mediatek,adsp: $ref: /schemas/types.yaml#/definitions/phandle description: The phandle of MT8186 ADSP platform. mediatek,dai-link: $ref: /schemas/types.yaml#/definitions/string-array description: A list of the desired dai-links in the sound card. Each entry is a name defined in the machine driver. 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 ] 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 examples: - | #include sound: mt8186-sound { compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound"; model = "mt8186_rt1019_rt5682s"; pinctrl-names = "aud_clk_mosi_off", "aud_clk_mosi_on", "aud_gpio_dmic_sec"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; pinctrl-2 = <&aud_gpio_dmic_sec>; mediatek,platform = <&afe>; dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>; audio-routing = "Headphone", "HPOL", "Headphone", "HPOR", "IN1P", "Headset Mic", "Speakers", "Speaker", "HDMI1", "TX"; hs-playback-dai-link { link-name = "I2S0"; dai-format = "i2s"; mediatek,clk-provider = "cpu"; codec { sound-dai = <&rt5682s 0>; }; }; hs-capture-dai-link { link-name = "I2S1"; dai-format = "i2s"; mediatek,clk-provider = "cpu"; codec { sound-dai = <&rt5682s 0>; }; }; spk-hdmi-playback-dai-link { link-name = "I2S3"; dai-format = "i2s"; mediatek,clk-provider = "cpu"; codec { sound-dai = <&it6505dptx>, <&rt1019p>; }; }; }; ...