| From 620fa8f590ecad76bfd997faaaa771e237fe37f3 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 25 Mar 2022 15:42:39 +0000 |
| Subject: ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek |
| |
| From: Mark Brown <broonie@kernel.org> |
| |
| [ Upstream commit c775cbf62ed4911e4f0f23880f01815753123690 ] |
| |
| The MCLK of the WM8731 on the AT91SAM9G20-EK board is connected to the |
| PCK0 output of the SoC, intended in the reference software to be supplied |
| using PLLB and programmed to 12MHz. As originally written for use with a |
| board file the audio driver was responsible for configuring the entire tree |
| but in the conversion to the common clock framework the registration of |
| the named pck0 and pllb clocks was removed so the driver has failed to |
| instantiate ever since. |
| |
| Since the WM8731 driver has had support for managing a MCLK provided via |
| the common clock framework for some time we can simply drop all the clock |
| management code from the machine driver other than configuration of the |
| sysclk rate, the CODEC driver still respects that configuration from the |
| machine driver. |
| |
| Fixes: ff78a189b0ae55f ("ARM: at91: remove old at91-specific clock driver") |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Reviewed-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> |
| Link: https://lore.kernel.org/r/20220325154241.1600757-2-broonie@kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/soc/atmel/sam9g20_wm8731.c | 61 -------------------------------- |
| 1 file changed, 61 deletions(-) |
| |
| diff --git a/sound/soc/atmel/sam9g20_wm8731.c b/sound/soc/atmel/sam9g20_wm8731.c |
| index 05277a88e20d..d1579896f3a1 100644 |
| --- a/sound/soc/atmel/sam9g20_wm8731.c |
| +++ b/sound/soc/atmel/sam9g20_wm8731.c |
| @@ -46,35 +46,6 @@ |
| */ |
| #undef ENABLE_MIC_INPUT |
| |
| -static struct clk *mclk; |
| - |
| -static int at91sam9g20ek_set_bias_level(struct snd_soc_card *card, |
| - struct snd_soc_dapm_context *dapm, |
| - enum snd_soc_bias_level level) |
| -{ |
| - static int mclk_on; |
| - int ret = 0; |
| - |
| - switch (level) { |
| - case SND_SOC_BIAS_ON: |
| - case SND_SOC_BIAS_PREPARE: |
| - if (!mclk_on) |
| - ret = clk_enable(mclk); |
| - if (ret == 0) |
| - mclk_on = 1; |
| - break; |
| - |
| - case SND_SOC_BIAS_OFF: |
| - case SND_SOC_BIAS_STANDBY: |
| - if (mclk_on) |
| - clk_disable(mclk); |
| - mclk_on = 0; |
| - break; |
| - } |
| - |
| - return ret; |
| -} |
| - |
| static const struct snd_soc_dapm_widget at91sam9g20ek_dapm_widgets[] = { |
| SND_SOC_DAPM_MIC("Int Mic", NULL), |
| SND_SOC_DAPM_SPK("Ext Spk", NULL), |
| @@ -135,7 +106,6 @@ static struct snd_soc_card snd_soc_at91sam9g20ek = { |
| .owner = THIS_MODULE, |
| .dai_link = &at91sam9g20ek_dai, |
| .num_links = 1, |
| - .set_bias_level = at91sam9g20ek_set_bias_level, |
| |
| .dapm_widgets = at91sam9g20ek_dapm_widgets, |
| .num_dapm_widgets = ARRAY_SIZE(at91sam9g20ek_dapm_widgets), |
| @@ -148,7 +118,6 @@ static int at91sam9g20ek_audio_probe(struct platform_device *pdev) |
| { |
| struct device_node *np = pdev->dev.of_node; |
| struct device_node *codec_np, *cpu_np; |
| - struct clk *pllb; |
| struct snd_soc_card *card = &snd_soc_at91sam9g20ek; |
| int ret; |
| |
| @@ -162,31 +131,6 @@ static int at91sam9g20ek_audio_probe(struct platform_device *pdev) |
| return -EINVAL; |
| } |
| |
| - /* |
| - * Codec MCLK is supplied by PCK0 - set it up. |
| - */ |
| - mclk = clk_get(NULL, "pck0"); |
| - if (IS_ERR(mclk)) { |
| - dev_err(&pdev->dev, "Failed to get MCLK\n"); |
| - ret = PTR_ERR(mclk); |
| - goto err; |
| - } |
| - |
| - pllb = clk_get(NULL, "pllb"); |
| - if (IS_ERR(pllb)) { |
| - dev_err(&pdev->dev, "Failed to get PLLB\n"); |
| - ret = PTR_ERR(pllb); |
| - goto err_mclk; |
| - } |
| - ret = clk_set_parent(mclk, pllb); |
| - clk_put(pllb); |
| - if (ret != 0) { |
| - dev_err(&pdev->dev, "Failed to set MCLK parent\n"); |
| - goto err_mclk; |
| - } |
| - |
| - clk_set_rate(mclk, MCLK_RATE); |
| - |
| card->dev = &pdev->dev; |
| |
| /* Parse device node info */ |
| @@ -230,9 +174,6 @@ static int at91sam9g20ek_audio_probe(struct platform_device *pdev) |
| |
| return ret; |
| |
| -err_mclk: |
| - clk_put(mclk); |
| - mclk = NULL; |
| err: |
| atmel_ssc_put_audio(0); |
| return ret; |
| @@ -242,8 +183,6 @@ static int at91sam9g20ek_audio_remove(struct platform_device *pdev) |
| { |
| struct snd_soc_card *card = platform_get_drvdata(pdev); |
| |
| - clk_disable(mclk); |
| - mclk = NULL; |
| snd_soc_unregister_card(card); |
| atmel_ssc_put_audio(0); |
| |
| -- |
| 2.35.1 |
| |