Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: dt-bindings: pm8916-analog-codec: Drop invalid mclk

The audio codec typically used for the MSM8916 SoC is split into two
parts: the digital codec is part of the SoC, while the analog codec is
part of the PM8916 PMIC.

The analog codec in the PMIC has no direct connection to the mclk of
the SoC (GCC_CODEC_DIGCODEC_CLK). As the name of the clock suggests
this is supplied to the digital part of the codec. During playback it
will use this clock to transmit the audio data via the "CDC PDM" pins
to the PMIC. In this case the analog codec indirectly receives the
clock signal through the digital codec.

GCC_CODEC_DIGCODEC_CLK is already managed by the driver of the digital
part of the codec in the SoC. Having this clock on the analog PMIC part
additionally is redundant and incorrect because the analog codec cannot
receive the clock signal without going through the digital codec.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230718-pm8916-mclk-v1-3-4b4a58b4240a@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Stephan Gerhold and committed by
Mark Brown
469c6d9c dfc491e5

-10
-10
Documentation/devicetree/bindings/sound/qcom,pm8916-wcd-analog-codec.yaml
··· 19 19 reg: 20 20 maxItems: 1 21 21 22 - clocks: 23 - maxItems: 1 24 - 25 - clock-names: 26 - items: 27 - - const: mclk 28 - 29 22 interrupts: 30 23 maxItems: 14 31 24 ··· 102 109 103 110 examples: 104 111 - | 105 - #include <dt-bindings/clock/qcom,gcc-msm8916.h> 106 112 #include <dt-bindings/interrupt-controller/irq.h> 107 113 #include <dt-bindings/spmi/spmi.h> 108 114 ··· 114 122 audio-codec@f000 { 115 123 compatible = "qcom,pm8916-wcd-analog-codec"; 116 124 reg = <0xf000>; 117 - clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; 118 - clock-names = "mclk"; 119 125 qcom,mbhc-vthreshold-low = <75 150 237 450 500>; 120 126 qcom,mbhc-vthreshold-high = <75 150 237 450 500>; 121 127 interrupt-parent = <&spmi_bus>;