diff options
author | Annaliese McDermond <nh6z@nh6z.net> | 2019-03-22 03:58:52 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-03-25 18:54:56 +0300 |
commit | aa6a60f7be925210d5156f0e8025f3afe1f4f54d (patch) | |
tree | 701da0b46f3646facadf572bda3adf8f5fc5875d /sound/soc/codecs/tlv320aic32x4.c | |
parent | 96c3bb00239de4fb5f4ddca42c1f90d6d9b3c697 (diff) | |
download | linux-aa6a60f7be925210d5156f0e8025f3afe1f4f54d.tar.xz |
ASoC: tlv320aic32x4: Restructure set_dai_sysclk
The sysclk is now managed by the CCF. Change this function
to merely find the system clock and set it using
clk_set_rate.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/tlv320aic32x4.c')
-rw-r--r-- | sound/soc/codecs/tlv320aic32x4.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c index 625528500f8d..289bf411e60e 100644 --- a/sound/soc/codecs/tlv320aic32x4.c +++ b/sound/soc/codecs/tlv320aic32x4.c @@ -49,7 +49,6 @@ struct aic32x4_priv { struct regmap *regmap; - u32 sysclk; u32 power_cfg; u32 micpga_routing; bool swapdacs; @@ -567,17 +566,13 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai, int clk_id, unsigned int freq, int dir) { struct snd_soc_component *component = codec_dai->component; - struct aic32x4_priv *aic32x4 = snd_soc_component_get_drvdata(component); + struct clk *mclk; + struct clk *pll; - switch (freq) { - case 12000000: - case 24000000: - case 25000000: - aic32x4->sysclk = freq; - return 0; - } - printk(KERN_ERR "aic32x4: invalid frequency to set DAI system clock\n"); - return -EINVAL; + pll = devm_clk_get(component->dev, "pll"); + mclk = clk_get_parent(pll); + + return clk_set_rate(mclk, freq); } static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) |