aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2023-07-31 11:47:02 +0100
committerMark Brown <broonie@kernel.org>2023-07-31 16:12:46 +0100
commit0169cc3f200cbd737a57592fc478b24ff3cec3c5 (patch)
treef5594f990a4ab6657347ceba2537bbae4a820339
parentASoC: Merge up fixes from Linus' tree (diff)
downloadwireguard-linux-0169cc3f200cbd737a57592fc478b24ff3cec3c5.tar.xz
wireguard-linux-0169cc3f200cbd737a57592fc478b24ff3cec3c5.zip
ASoC: wm8960: Read initial MCLK rate from clock API
When we have a MCLK provided by the clock API read the rate at startup and store it so that there's something set before the machine driver has done clocking configuration (eg, if it only configures clocking based on sample rate). Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20230731-asoc-wm8960-clk-v1-1-69f9ffa2b10a@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/codecs/wm8960.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c
index c2bd9ef41ebb..d4bc97088354 100644
--- a/sound/soc/codecs/wm8960.c
+++ b/sound/soc/codecs/wm8960.c
@@ -1429,6 +1429,14 @@ static int wm8960_i2c_probe(struct i2c_client *i2c)
if (IS_ERR(wm8960->mclk)) {
if (PTR_ERR(wm8960->mclk) == -EPROBE_DEFER)
return -EPROBE_DEFER;
+ } else {
+ ret = clk_get_rate(wm8960->mclk);
+ if (ret >= 0) {
+ wm8960->freq_in = ret;
+ } else {
+ dev_err(&i2c->dev, "Failed to read MCLK rate: %d\n",
+ ret);
+ }
}
wm8960->regmap = devm_regmap_init_i2c(i2c, &wm8960_regmap);