diff options
| author | Mark Brown <broonie@kernel.org> | 2020-09-08 15:50:13 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2020-09-08 15:50:13 +0100 |
| commit | bc442e472ca6120e8a763f4e0392fa41786e2883 (patch) | |
| tree | 1001436fb3a62a494d41dddf469bcccad3a2f50d | |
| parent | e525db7e4b44c5b2b5aac0dad24e23cb58c54d22 (diff) | |
| parent | 1b839d3e15fd48e4278c83190725467713a5b3c6 (diff) | |
| download | cachepc-linux-bc442e472ca6120e8a763f4e0392fa41786e2883.tar.gz cachepc-linux-bc442e472ca6120e8a763f4e0392fa41786e2883.zip | |
Merge series "ASoC: qcom: common: Parse auxiliary devices from device tree" from Stephan Gerhold <stephan@gerhold.net>:
In some cases we need to probe additional audio components that do
not appear as part of the DAI links specified in the device tree.
Examples for this are auxiliary devices such as analog amplifiers
or codecs.
The ASoC core provides a way to probe these components by adding
them to snd_soc_card->aux_dev.
This patch set allows specifying them in the device tree through
a new "aux-devs" property.
v1: https://lore.kernel.org/linux-arm-msm/20200819091533.2334-1-stephan@gerhold.net/
Changes in v2:
- Fix value type in device tree bindings:
aux-devs should be array of phandles without any arguments, so change
<phandles with arguments> -> <array of phandles>
Stephan Gerhold (2):
ASoC: dt-bindings: qcom: Document "aux-devs" property
ASoC: qcom: common: Parse auxiliary devices from device tree
.../devicetree/bindings/sound/qcom,apq8016-sbc.txt | 7 +++++++
Documentation/devicetree/bindings/sound/qcom,apq8096.txt | 8 ++++++++
Documentation/devicetree/bindings/sound/qcom,sdm845.txt | 8 ++++++++
sound/soc/qcom/common.c | 4 ++++
4 files changed, 27 insertions(+)
--
2.28.0
4 files changed, 27 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt b/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt index 84b28dbe9f15..23998262a0a7 100644 --- a/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt +++ b/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt @@ -34,6 +34,13 @@ Required properties: * DMIC * Ext Spk +Optional properties: + +- aux-devs : A list of phandles for auxiliary devices (e.g. analog + amplifiers) that do not appear directly within the DAI + links. Should be connected to another audio component + using "qcom,audio-routing". + Dai-link subnode properties and subnodes: Required dai-link subnodes: diff --git a/Documentation/devicetree/bindings/sound/qcom,apq8096.txt b/Documentation/devicetree/bindings/sound/qcom,apq8096.txt index c814e867850f..e1b9fa8a5bf8 100644 --- a/Documentation/devicetree/bindings/sound/qcom,apq8096.txt +++ b/Documentation/devicetree/bindings/sound/qcom,apq8096.txt @@ -55,6 +55,14 @@ This binding describes the APQ8096 sound card, which uses qdsp for audio. Value type: <stringlist> Definition: The user-visible name of this sound card. +- aux-devs + Usage: optional + Value type: <array of phandles> + Definition: A list of phandles for auxiliary devices (e.g. analog + amplifiers) that do not appear directly within the DAI + links. Should be connected to another audio component + using "audio-routing". + = dailinks Each subnode of sndcard represents either a dailink, and subnodes of each dailinks would be cpu/codec/platform dais. diff --git a/Documentation/devicetree/bindings/sound/qcom,sdm845.txt b/Documentation/devicetree/bindings/sound/qcom,sdm845.txt index ca8c89e88bfa..de4c604641da 100644 --- a/Documentation/devicetree/bindings/sound/qcom,sdm845.txt +++ b/Documentation/devicetree/bindings/sound/qcom,sdm845.txt @@ -24,6 +24,14 @@ This binding describes the SDM845 sound card, which uses qdsp for audio. Value type: <stringlist> Definition: The user-visible name of this sound card. +- aux-devs + Usage: optional + Value type: <array of phandles> + Definition: A list of phandles for auxiliary devices (e.g. analog + amplifiers) that do not appear directly within the DAI + links. Should be connected to another audio component + using "audio-routing". + = dailinks Each subnode of sndcard represents either a dailink, and subnodes of each dailinks would be cpu/codec/platform dais. diff --git a/sound/soc/qcom/common.c b/sound/soc/qcom/common.c index 5194d90ddb96..fe6e778c31c0 100644 --- a/sound/soc/qcom/common.c +++ b/sound/soc/qcom/common.c @@ -39,6 +39,10 @@ int qcom_snd_parse_of(struct snd_soc_card *card) return ret; } + ret = snd_soc_of_parse_aux_devs(card, "aux-devs"); + if (ret) + return ret; + /* Populate links */ num_links = of_get_child_count(dev->of_node); |
