| # 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 |
| - items: |
| - enum: |
| - qcom,sm8550-sndcard |
| - qcom,sm8650-sndcard |
| - const: qcom,sm8450-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 |
| - qcom,x1e80100-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 = <<9611_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>; |
| }; |
| }; |
| }; |