315 lines
8.1 KiB
YAML
315 lines
8.1 KiB
YAML
# 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:
|
|
enum:
|
|
- lenovo,yoga-c630-sndcard
|
|
- qcom,apq8016-sbc-sndcard
|
|
- qcom,db845c-sndcard
|
|
- qcom,msm8916-qdsp6-sndcard
|
|
- qcom,qrb5165-rb5-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 = <<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>;
|
|
};
|
|
};
|
|
};
|