Commit 37a49da9 authored by Stephan Gerhold's avatar Stephan Gerhold Committed by Mark Brown

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: default avatarStephan Gerhold <stephan@gerhold.net>
Acked-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211214142049.20422-3-stephan@gerhold.netSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 3d4641a4
...@@ -39,6 +39,14 @@ properties: ...@@ -39,6 +39,14 @@ properties:
$ref: /schemas/types.yaml#/definitions/string $ref: /schemas/types.yaml#/definitions/string
description: User visible long sound card name 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) # Only valid for some compatibles (see allOf if below)
reg: true reg: true
reg-names: true reg-names: true
...@@ -251,7 +259,15 @@ examples: ...@@ -251,7 +259,15 @@ examples:
reg-names = "mic-iomux", "spkr-iomux"; reg-names = "mic-iomux", "spkr-iomux";
model = "msm8916"; model = "msm8916";
widgets =
"Speaker", "Speaker",
"Headphone", "Headphones";
pin-switches = "Speaker";
audio-routing = audio-routing =
"Speaker", "Speaker Amp OUT",
"Speaker Amp IN", "HPH_R",
"Headphones", "HPH_L",
"Headphones", "HPH_R",
"AMIC1", "MIC BIAS Internal1", "AMIC1", "MIC BIAS Internal1",
"AMIC2", "MIC BIAS Internal2", "AMIC2", "MIC BIAS Internal2",
"AMIC3", "MIC BIAS Internal3"; "AMIC3", "MIC BIAS Internal3";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment