summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
diff options
context:
space:
mode:
authorStephan Gerhold <stephan@gerhold.net>2021-12-14 17:20:47 +0300
committerMark Brown <broonie@kernel.org>2021-12-23 21:34:24 +0300
commit37a49da9a7d5ac1f7128000de42ff222da46ba7a (patch)
tree67a0be6a6d7dcce84e4e156287dc901b179fb96b /Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
parent3d4641a42ccf1593b3f3a474ee7541727acbb8e0 (diff)
downloadlinux-37a49da9a7d5ac1f7128000de42ff222da46ba7a.tar.xz
ASoC: dt-bindings: qcom: sm8250: Document "pin-switches" and "widgets"
Some sound card setups might require extra pin switches to allow turning off certain audio components. There are two real examples for this in smartphones/tablets based on MSM8916: 1. Analog speaker amplifiers connected to headphone outputs. The MSM8916 analog codec does not have a separate "Line Out" port so some devices have an analog speaker amplifier connected to one of the headphone outputs. A pin switch is necessary to allow playback on headphones without also activating the speaker. 2. External speaker codec also used as earpiece. Some smartphones have two front-facing (stereo) speakers that can be also configured to act as an earpiece during voice calls. A pin switch is needed to allow disabling the second speaker during voice calls. There are existing bindings that allow setting up such pin switches in simple-card.yaml. Document the same for Qcom sound cards. One variant of example 1 above is added to the examples in the DT schema: There is an analog speaker amplifier connected to the HPH_R (right headphone channel) output. Adding a "Speaker" pin switch and widget allows turning off the speaker when audio should be only played via the connected headphones. Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Acked-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20211214142049.20422-3-stephan@gerhold.net Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'Documentation/devicetree/bindings/sound/qcom,sm8250.yaml')
-rw-r--r--Documentation/devicetree/bindings/sound/qcom,sm8250.yaml16
1 files changed, 16 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
index e50964c54bb9..4bfda04b4608 100644
--- a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
@@ -39,6 +39,14 @@ properties:
$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
@@ -251,7 +259,15 @@ examples:
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";