All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Prchal Jiří" <jiri.prchal@aksignal.cz>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: vbarinov@embeddedalley.com, alsa-devel@alsa-project.org,
	sudhakar.raj@ti.com, nsekhar@ti.com, peter.ujfalusi@ti.com,
	mr.swami.reddy@ti.com, lrg@ti.com
Subject: Re: [PATCH] ASoC: tlv320aic3x: add input clock selection
Date: Tue, 26 Jun 2012 13:47:35 +0200	[thread overview]
Message-ID: <4FE9A157.8030105@aksignal.cz> (raw)
In-Reply-To: <20120626102627.GN30406@opensource.wolfsonmicro.com>

Hi Mark,

Dne 26.6.2012 12:26, Mark Brown napsal(a):
> On Tue, Jun 26, 2012 at 12:21:28PM +0200, Prchal Jiří wrote:
>
>> +	/* set clock on MCLK or GPIO2 or BCLK */
>> +	snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, PLLCLK_IN_MASK, clk_id);
>> +	snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, CLKDIV_IN_MASK, clk_id);
>
> Normally it's possible to set these separately.  Is there a reason why
> they have to be the same (and if so why has the chip got separate
> registers)?
It could be set separately but in my opinion that doesn't make sense. Codec has one inner clock which is from divider or 
pll. In one time is used only one clock source so it doesn't matter how is set the other. And the other must be set to 
someone, cannot be switched off.
Normally board design contain one clock connected to one of tree input pins. This is to select pin.
Selection of input divider or pll is done somewhere else depended on frequency and sampling rate.
Can someone from TI approve or disapprove this?
>
>> +#define PLLCLK_IN_MASK		0x30
>> +#define CLKDIV_IN_MASK		0xc0
>> +/* clock in source */
>> +#define CLKIN_MCLK		0
>> +#define CLKIN_GPIO2		1
>> +#define CLKIN_BCLK		2
>
> This doesn't look right - you use the clock source values directly above
> but they need shifting to be used as if they're used directly they'll
> always come out as zero.  It'd also be better to have some bounds
> checking on the values.
You are right, my mistake. Below is corrected patch.
Thanks.


--- /home/prchal/arm/fw-cdu/linux/linux-3.5-rc3/sound/soc/codecs/tlv320aic3x.c.orig
+++ /home/prchal/arm/fw-cdu/linux/linux-3.5-rc3/sound/soc/codecs/tlv320aic3x.c
@@ -972,6 +972,12 @@
  	struct snd_soc_codec *codec = codec_dai->codec;
  	struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec);

+	/* set clock on MCLK or GPIO2 or BCLK */
+	snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, PLLCLK_IN_MASK,
+				clk_id << PLLCLK_IN_SHIFT);
+	snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, CLKDIV_IN_MASK,
+				clk_id << CLKDIV_IN_SHIFT);
+
  	aic3x->sysclk = freq;
  	return 0;
  }

--- /home/prchal/arm/fw-cdu/linux/linux-3.5-rc3/sound/soc/codecs/tlv320aic3x.h.orig
+++ /home/prchal/arm/fw-cdu/linux/linux-3.5-rc3/sound/soc/codecs/tlv320aic3x.h
@@ -178,6 +178,15 @@
  #define PLL_CLKIN_SHIFT		4
  #define MCLK_SOURCE		0x0
  #define PLL_CLKDIV_SHIFT	0
+#define PLLCLK_IN_MASK		0x30
+#define PLLCLK_IN_SHIFT		4
+#define CLKDIV_IN_MASK		0xc0
+#define CLKDIV_IN_SHIFT		6
+/* clock in source */
+#define CLKIN_MCLK		0
+#define CLKIN_GPIO2		1
+#define CLKIN_BCLK		2
+

  /* Software reset register bits */
  #define SOFT_RESET		0x80
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2012-06-26 11:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-26 10:21 [PATCH] ASoC: tlv320aic3x: add input clock selection Prchal Jiří
2012-06-26 10:26 ` Mark Brown
2012-06-26 11:47   ` Prchal Jiří [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-07-10 12:36 Jiri Prchal
2012-07-10 13:42 ` Mark Brown

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=4FE9A157.8030105@aksignal.cz \
    --to=jiri.prchal@aksignal.cz \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=lrg@ti.com \
    --cc=mr.swami.reddy@ti.com \
    --cc=nsekhar@ti.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=sudhakar.raj@ti.com \
    --cc=vbarinov@embeddedalley.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.