ASoC: qcom: common: Parse "pin-switches" and "widgets" from DT
authorStephan Gerhold <stephan@gerhold.net>
Tue, 14 Dec 2021 14:20:48 +0000 (15:20 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 23 Dec 2021 18:34:26 +0000 (18:34 +0000)
Use the DT helpers in the ASoC core to parse the "pin-switches" and
"widgets" properties from the device tree. This allows adding extra
mixers to disable e.g. an extra speaker amplifier that would be
normally powered on automatically because it is connected to a shared
output pin.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20211214142049.20422-4-stephan@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/common.c

index e1bf04d0062594dc356fef1275c4287912bf17f7..c407684ce1a225b1ab807772048d1402b03a6210 100644 (file)
@@ -26,6 +26,12 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
                return ret;
        }
 
+       if (of_property_read_bool(dev->of_node, "widgets")) {
+               ret = snd_soc_of_parse_audio_simple_widgets(card, "widgets");
+               if (ret)
+                       return ret;
+       }
+
        /* DAPM routes */
        if (of_property_read_bool(dev->of_node, "audio-routing")) {
                ret = snd_soc_of_parse_audio_routing(card, "audio-routing");
@@ -39,6 +45,10 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
                        return ret;
        }
 
+       ret = snd_soc_of_parse_pin_switches(card, "pin-switches");
+       if (ret)
+               return ret;
+
        ret = snd_soc_of_parse_aux_devs(card, "aux-devs");
        if (ret)
                return ret;