From: "Andreas Färber" <afaerber@suse.de>
To: Sangbeom Kim <sbkim73@samsung.com>,
alsa-devel@alsa-project.org, linux-samsung-soc@vger.kernel.org
Cc: "Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
"Vincent Palatin" <vpalatin@chromium.org>,
"Doug Anderson" <dianders@chromium.org>,
"Javier Martinez Canillas" <javier.martinez@collabora.co.uk>,
"Tomasz Figa" <tomasz.figa@gmail.com>,
"Andreas Färber" <afaerber@suse.de>,
"Tushar Behera" <tushar.behera@linaro.org>,
"Jaroslav Kysela" <perex@perex.cz>,
"Takashi Iwai" <tiwai@suse.de>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Xiubo Li" <Li.Xiubo@freescale.com>
Subject: [PATCH] ASoC: max98088: Add master clock handling
Date: Thu, 19 Feb 2015 20:18:41 +0100 [thread overview]
Message-ID: <1424373526-4135-1-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1424283959-16289-3-git-send-email-afaerber@suse.de>
If master clock is provided through device tree, then update
the master clock frequency during set_sysclk.
Cc: Tushar Behera <tushar.behera@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
sound/soc/codecs/max98088.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c
index 69a21d1946e3..1aa81321afba 100644
--- a/sound/soc/codecs/max98088.c
+++ b/sound/soc/codecs/max98088.c
@@ -16,6 +16,7 @@
#include <linux/pm.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
+#include <linux/clk.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
@@ -42,6 +43,7 @@ struct max98088_priv {
struct regmap *regmap;
enum max98088_type devtype;
struct max98088_pdata *pdata;
+ struct clk *mclk;
unsigned int sysclk;
struct max98088_cdata dai[2];
int eq_textcnt;
@@ -1361,6 +1363,11 @@ static int max98088_dai_set_sysclk(struct snd_soc_dai *dai,
if (freq == max98088->sysclk)
return 0;
+ if (!IS_ERR(max98088->mclk)) {
+ freq = clk_round_rate(max98088->mclk, freq);
+ clk_set_rate(max98088->mclk, freq);
+ }
+
/* Setup clocks for slave mode, and using the PLL
* PSCLK = 0x01 (when master clk is 10MHz to 20MHz)
* 0x02 (when master clk is 20MHz to 30MHz)..
@@ -1568,6 +1575,19 @@ static int max98088_set_bias_level(struct snd_soc_codec *codec,
break;
case SND_SOC_BIAS_PREPARE:
+ /*
+ * SND_SOC_BIAS_PREPARE is called while preparing for a
+ * transition to ON or away from ON. If current bias_level
+ * is SND_SOC_BIAS_ON, then it is preparing for a transition
+ * away from ON. Disable the clock in that case, otherwise
+ * enable it.
+ */
+ if (!IS_ERR(max98088->mclk)) {
+ if (codec->dapm.bias_level == SND_SOC_BIAS_ON)
+ clk_disable_unprepare(max98088->mclk);
+ else
+ clk_prepare_enable(max98088->mclk);
+ }
break;
case SND_SOC_BIAS_STANDBY:
@@ -1900,6 +1920,10 @@ static int max98088_probe(struct snd_soc_codec *codec)
max98088->sysclk = (unsigned)-1;
max98088->eq_textcnt = 0;
+ max98088->mclk = devm_clk_get(codec->dev, "mclk");
+ if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
+
cdata = &max98088->dai[0];
cdata->rate = (unsigned)-1;
cdata->fmt = (unsigned)-1;
--
2.1.4
next prev parent reply other threads:[~2015-02-19 19:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-18 18:25 [PATCH 0/6] ASoC: samsung: Spring sound support Andreas Färber
2015-02-18 18:25 ` [PATCH 1/6] ASoC: max98088: Document DT bindings Andreas Färber
2015-02-19 13:55 ` Javier Martinez Canillas
2015-02-19 14:13 ` Andreas Färber
2015-02-19 17:48 ` Doug Anderson
2015-02-19 18:40 ` Andreas Färber
2015-02-19 18:54 ` Andreas Färber
2015-02-19 20:48 ` Javier Martinez Canillas
2015-02-20 0:36 ` Andreas Färber
2015-02-20 12:12 ` Sylwester Nawrocki
2015-02-23 16:46 ` Javier Martinez Canillas
2015-02-18 18:25 ` [PATCH 2/6] ASoC: max98088: Add " Andreas Färber
2015-02-18 19:08 ` Sergei Shtylyov
2015-02-18 19:17 ` Andreas Färber
2015-02-19 19:18 ` Andreas Färber [this message]
2015-02-20 3:27 ` [alsa-devel] [PATCH] ASoC: max98088: Add master clock handling Tushar Behera
2015-02-23 8:29 ` Javier Martinez Canillas
[not found] ` <54EAE4DF.3040607-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2015-02-23 12:23 ` Andreas Färber
2015-02-18 18:25 ` [PATCH 3/6] ARM: dts: Add max98089 to exynos5250-spring Andreas Färber
2015-02-18 18:25 ` [PATCH 4/6] ASoC: samsung: Document binding for max98089 based Snow driver Andreas Färber
[not found] ` <1424283959-16289-5-git-send-email-afaerber-l3A5Bk7waGM@public.gmane.org>
2015-02-19 3:49 ` [alsa-devel] " Tushar Behera
2015-02-18 18:25 ` [PATCH 5/6] ASoC: samsung: Extend Snow driver to support max98089 Andreas Färber
2015-02-19 9:44 ` Mark Brown
2015-02-19 12:33 ` Andreas Färber
[not found] ` <20150219094425.GB3198-bheZrs9scGb3/WHNxyQH9YN0K6Il/+VY@public.gmane.org>
2015-02-19 17:44 ` Doug Anderson
2015-02-19 17:56 ` Andreas Färber
[not found] ` <54E623C9.7070001-l3A5Bk7waGM@public.gmane.org>
2015-02-19 19:01 ` Doug Anderson
2015-02-21 2:40 ` Mark Brown
2015-02-18 18:25 ` [PATCH 6/6] ARM: dts: Add sound support to exynos5250-spring Andreas Färber
2015-02-19 14:05 ` Javier Martinez Canillas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424373526-4135-1-git-send-email-afaerber@suse.de \
--to=afaerber@suse.de \
--cc=Li.Xiubo@freescale.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=javier.martinez@collabora.co.uk \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=perex@perex.cz \
--cc=sbkim73@samsung.com \
--cc=tiwai@suse.de \
--cc=tomasz.figa@gmail.com \
--cc=tushar.behera@linaro.org \
--cc=vpalatin@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).