All of lore.kernel.org
 help / color / mirror / Atom feed
From: <jsarha-l0cyMroinI0@public.gmane.org>
To: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: peter.ujfalusi-l0cyMroinI0@public.gmane.org,
	joelf-l0cyMroinI0@public.gmane.org,
	gururaja.hebbar-l0cyMroinI0@public.gmane.org,
	detheridge-l0cyMroinI0@public.gmane.org,
	nm-l0cyMroinI0@public.gmane.org,
	Jyri Sarha <jsarha-l0cyMroinI0@public.gmane.org>
Subject: [PATCH v2 01/11] ASoC: davinci-evm: Move sysclk logic away from evm_hw_params
Date: Tue, 17 Sep 2013 12:26:00 +0300	[thread overview]
Message-ID: <dad0f7eb787d3f65848425a67d668e3935033195.1379409268.git.jsarha@ti.com> (raw)
In-Reply-To: <cover.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>

From: Jyri Sarha <jsarha-l0cyMroinI0@public.gmane.org>

The sysclk rate does not change runtime so it should be initialized at
init time.

Signed-off-by: Jyri Sarha <jsarha-l0cyMroinI0@public.gmane.org>
---
 sound/soc/davinci/davinci-evm.c |   64 +++++++++++++++++++++++++++------------
 1 file changed, 44 insertions(+), 20 deletions(-)

diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index fd7c45b..2f8161c 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -27,6 +27,10 @@
 #include "davinci-i2s.h"
 #include "davinci-mcasp.h"
 
+struct snd_soc_card_drvdata_davinci {
+	unsigned sysclk;
+};
+
 #define AUDIO_FORMAT (SND_SOC_DAIFMT_DSP_B | \
 		SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF)
 static int evm_hw_params(struct snd_pcm_substream *substream,
@@ -35,27 +39,11 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
 	struct snd_soc_dai *codec_dai = rtd->codec_dai;
 	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+	struct snd_soc_codec *codec = rtd->codec;
+	struct snd_soc_card *soc_card = codec->card;
 	int ret = 0;
-	unsigned sysclk;
-
-	/* ASP1 on DM355 EVM is clocked by an external oscillator */
-	if (machine_is_davinci_dm355_evm() || machine_is_davinci_dm6467_evm() ||
-	    machine_is_davinci_dm365_evm())
-		sysclk = 27000000;
-
-	/* ASP0 in DM6446 EVM is clocked by U55, as configured by
-	 * board-dm644x-evm.c using GPIOs from U18.  There are six
-	 * options; here we "know" we use a 48 KHz sample rate.
-	 */
-	else if (machine_is_davinci_evm())
-		sysclk = 12288000;
-
-	else if (machine_is_davinci_da830_evm() ||
-				machine_is_davinci_da850_evm())
-		sysclk = 24576000;
-
-	else
-		return -EINVAL;
+	unsigned sysclk = ((struct snd_soc_card_drvdata_davinci *)
+			   snd_soc_card_get_drvdata(soc_card))->sysclk;
 
 	/* set codec DAI configuration */
 	ret = snd_soc_dai_set_fmt(codec_dai, AUDIO_FORMAT);
@@ -243,35 +231,65 @@ static struct snd_soc_dai_link da850_evm_dai = {
 };
 
 /* davinci dm6446 evm audio machine driver */
+/*
+ * ASP0 in DM6446 EVM is clocked by U55, as configured by
+ * board-dm644x-evm.c using GPIOs from U18.  There are six
+ * options; here we "know" we use a 48 KHz sample rate.
+ */
+static struct snd_soc_card_drvdata_davinci dm6446_snd_soc_card_drvdata = {
+	.sysclk = 12288000,
+};
+
 static struct snd_soc_card dm6446_snd_soc_card_evm = {
 	.name = "DaVinci DM6446 EVM",
 	.owner = THIS_MODULE,
 	.dai_link = &dm6446_evm_dai,
 	.num_links = 1,
+	.drvdata = &dm6446_snd_soc_card_drvdata,
 };
 
 /* davinci dm355 evm audio machine driver */
+/* ASP1 on DM355 EVM is clocked by an external oscillator */
+static struct snd_soc_card_drvdata_davinci dm355_snd_soc_card_drvdata = {
+	.sysclk = 27000000,
+};
+
 static struct snd_soc_card dm355_snd_soc_card_evm = {
 	.name = "DaVinci DM355 EVM",
 	.owner = THIS_MODULE,
 	.dai_link = &dm355_evm_dai,
 	.num_links = 1,
+	.drvdata = &dm355_snd_soc_card_drvdata,
 };
 
 /* davinci dm365 evm audio machine driver */
+static struct snd_soc_card_drvdata_davinci dm365_snd_soc_card_drvdata = {
+	.sysclk = 27000000,
+};
+
 static struct snd_soc_card dm365_snd_soc_card_evm = {
 	.name = "DaVinci DM365 EVM",
 	.owner = THIS_MODULE,
 	.dai_link = &dm365_evm_dai,
 	.num_links = 1,
+	.drvdata = &dm365_snd_soc_card_drvdata,
 };
 
 /* davinci dm6467 evm audio machine driver */
+static struct snd_soc_card_drvdata_davinci dm6467_snd_soc_card_drvdata = {
+	.sysclk = 27000000,
+};
+
 static struct snd_soc_card dm6467_snd_soc_card_evm = {
 	.name = "DaVinci DM6467 EVM",
 	.owner = THIS_MODULE,
 	.dai_link = dm6467_evm_dai,
 	.num_links = ARRAY_SIZE(dm6467_evm_dai),
+	.drvdata = &dm6467_snd_soc_card_drvdata,
+};
+
+static struct snd_soc_card_drvdata_davinci da830_snd_soc_card_drvdata = {
+	.sysclk = 24576000,
 };
 
 static struct snd_soc_card da830_snd_soc_card = {
@@ -279,6 +297,11 @@ static struct snd_soc_card da830_snd_soc_card = {
 	.owner = THIS_MODULE,
 	.dai_link = &da830_evm_dai,
 	.num_links = 1,
+	.drvdata = &da830_snd_soc_card_drvdata,
+};
+
+static struct snd_soc_card_drvdata_davinci da850_snd_soc_card_drvdata = {
+	.sysclk = 24576000,
 };
 
 static struct snd_soc_card da850_snd_soc_card = {
@@ -286,6 +309,7 @@ static struct snd_soc_card da850_snd_soc_card = {
 	.owner = THIS_MODULE,
 	.dai_link = &da850_evm_dai,
 	.num_links = 1,
+	.drvdata = &da850_snd_soc_card_drvdata,
 };
 
 static struct platform_device *evm_snd_device;
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2013-09-17  9:26 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-17  9:25 [PATCH v2 00/11] Fix AM335x-evm analog audio support jsarha-l0cyMroinI0
     [not found] ` <cover.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-17  9:26   ` jsarha-l0cyMroinI0 [this message]
2013-09-18  9:53     ` [PATCH v2 01/11] ASoC: davinci-evm: Move sysclk logic away from evm_hw_params Mark Brown
2013-09-17  9:26   ` [PATCH v2 02/11] ASoC: davinci-evm: Add device tree binding jsarha-l0cyMroinI0
     [not found]     ` <b94659fe6bb26dd457c6c6d542db912896f327b0.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-18 14:38       ` [alsa-devel] " Mark Brown
2013-09-17  9:26   ` [PATCH v2 03/11] ASoC: davinci-mcasp: Add DMA register locations to DT jsarha-l0cyMroinI0
2013-09-18 14:39     ` Mark Brown
2013-09-17  9:26   ` [PATCH v2 04/11] ASoC: davinci-mcasp: Extract DMA channels directly from DT jsarha-l0cyMroinI0
     [not found]     ` <dc7012e1c2ae59c35eedd9328139f1060048b395.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-18 14:51       ` [alsa-devel] " Mark Brown
2013-09-17  9:26   ` [PATCH v2 05/11] ASoC: davinci-mcasp: Remove interrupt property from DT bindings doc jsarha-l0cyMroinI0
     [not found]     ` <1b47734e397bfac8846dcfc194fd1ab63f320d1a.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-18  5:50       ` Gururaja Hebbar
2013-09-18  7:40         ` Jyri Sarha
2013-09-18 14:46       ` [alsa-devel] " Mark Brown
     [not found]         ` <20130918144635.GT21013-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-09-18 14:48           ` Nishanth Menon
     [not found]             ` <5239BD42.2060903-l0cyMroinI0@public.gmane.org>
2013-09-18 15:07               ` Mark Brown
2013-09-19 11:46       ` Peter Ujfalusi
2013-09-17  9:26   ` [PATCH v2 06/11] ASoC: davinci: Add support for AM33xx SoC Audio jsarha-l0cyMroinI0
     [not found]     ` <c59efc1524b19f50dc37606bfa246dde9c20d312.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-18 14:47       ` [alsa-devel] " Mark Brown
2013-09-18 18:09         ` Mark Brown
     [not found]           ` <20130918180946.GF21013-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-09-19  9:31             ` [alsa-devel] " Jyri Sarha
2013-09-19  9:31       ` Peter Ujfalusi
2013-09-17  9:26   ` [PATCH v2 07/11] ASoC: tlv320aic3x: Add regulators to DT bindings document jsarha-l0cyMroinI0
     [not found]     ` <5281fbfa7e5a2090a2949c7b3941debbbc5ac397.1379409268.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-18 14:48       ` [alsa-devel] " Mark Brown
2013-09-17  9:26   ` [PATCH v2 08/11] ASoC: tlv320aic3x: Add codec pins " jsarha-l0cyMroinI0
2013-09-18 14:50     ` Mark Brown
2013-09-17  9:26   ` [PATCH v2 09/11] ARM/dts: am33xx: Add mcasp0 and mcasp1 device tree entries jsarha-l0cyMroinI0
2013-09-17  9:26   ` [PATCH v2 10/11] ARM/dts: am33xx: mcasp: Add new dma register location to reg-property jsarha-l0cyMroinI0
2013-09-17  9:26   ` [PATCH v2 11/11] ARM/dts: am335x-evm: Add audio support for am335x-evm.dts jsarha-l0cyMroinI0
2013-09-18  9:42   ` [alsa-devel] [PATCH v2 00/11] Fix AM335x-evm analog audio support Mark Brown
2013-09-18  9:56     ` Jyri Sarha
2013-09-18 10:18       ` Mark Brown
2013-09-18 10:27         ` Jyri Sarha
2013-09-18 10:40           ` Mark Brown
2013-09-18 11:09             ` Jyri Sarha
2013-09-19 11:29   ` [PATCH v3 " Jyri Sarha
     [not found]     ` <cover.1379590035.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-19 11:29       ` [PATCH v3 01/11] ASoC: davinci-evm: Move sysclk logic away from evm_hw_params Jyri Sarha
2013-09-19 13:23         ` Mark Brown
2013-09-19 13:43           ` Sarha, Jyri
2013-09-26 19:36         ` [RESEND PATCH " Mark Brown
2013-09-19 11:29       ` [PATCH v3 02/11] ASoC: davinci-evm: Add device tree binding Jyri Sarha
2013-09-19 11:29       ` [PATCH v3 03/11] ASoC: davinci-mcasp: Add DMA register locations to DT Jyri Sarha
2013-10-07 21:47         ` [RESEND PATCH " Mark Rutland
2013-10-08  0:46           ` Mark Brown
2013-10-10 16:59             ` Mark Rutland
2013-10-10 17:29               ` Peter Ujfalusi
2013-10-16 15:04                 ` Mark Rutland
2013-10-16 16:53                   ` Jyri Sarha
2013-10-08  9:13           ` Jyri Sarha
2013-10-08 10:07             ` Peter Ujfalusi
2013-09-19 11:29       ` [PATCH v3 05/11] ASoC: davinci-mcasp: Interrupts property to optional and add interrupt-names Jyri Sarha
2013-10-07 21:56         ` [RESEND PATCH " Mark Rutland
2013-10-08 10:38           ` Jyri Sarha
2013-09-19 11:29       ` [PATCH v3 08/11] ASoC: tlv320aic3x: Add codec pins to DT bindings document Jyri Sarha
2013-09-19 11:29       ` [PATCH v3 10/11] ARM/dts: am33xx: mcasp: Add new dma register location to reg-property Jyri Sarha
2013-10-07 22:00         ` [RESEND PATCH " Mark Rutland
2013-10-08 11:35           ` Jyri Sarha
2013-09-19 11:29       ` [PATCH v3 11/11] ARM/dts: am335x-evm: Add audio support for am335x-evm.dts Jyri Sarha
2013-10-07 22:02         ` [RESEND PATCH " Mark Rutland
2013-10-08 11:37           ` Jyri Sarha
2013-09-19 11:29     ` [PATCH v3 04/11] ASoC: davinci-mcasp: Extract DMA channels directly from DT Jyri Sarha
2013-10-07 21:53       ` [RESEND PATCH " Mark Rutland
2013-10-08  7:05         ` Jyri Sarha
2013-09-19 11:29     ` [PATCH v3 06/11] ASoC: davinci: Add support for AM33xx SoC Audio Jyri Sarha
2013-09-19 11:29     ` [PATCH v3 07/11] ASoC: tlv320aic3x: Add regulators to DT bindings document Jyri Sarha
     [not found]       ` <1b88bfa3793d807ff6e325df1bbff6cb4eb976e6.1379590036.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-09-19 13:29         ` Mark Brown
     [not found]           ` <20130919132955.GS21013-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-09-19 13:45             ` Sarha, Jyri
2013-09-19 11:29     ` [PATCH v3 09/11] ARM/dts: am33xx: Add mcasp0 and mcasp1 device tree entries Jyri Sarha
2013-09-19 13:31     ` [PATCH v3 00/11] Fix AM335x-evm analog audio support Mark Brown
2013-10-08 19:36 ` [PATCH v4 00/10] " Jyri Sarha
2013-10-08 19:36   ` [PATCH v4 01/10] ASoC: davinci: Fix AM33xx SoC Audio support Jyri Sarha
2013-10-08 19:36   ` [PATCH v4 02/10] ASoC: davinci-evm: Add device tree binding Jyri Sarha
2013-10-08 19:36   ` [PATCH v4 03/10] ASoC: davinci-mcasp: Add location for data port registers to DT Jyri Sarha
2013-10-08 19:36   ` [PATCH v4 05/10] ASoC: davinci-mcasp: Improve DT bindings document Jyri Sarha
     [not found]   ` <cover.1381259962.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-10-08 19:36     ` [PATCH v4 04/10] ASoC: davinci-mcasp: Extract DMA channels directly from DT Jyri Sarha
2013-10-08 19:36     ` [PATCH v4 06/10] ASoC: davinci-mcasp: Remove redundant num-serializer DT parameter Jyri Sarha
2013-10-08 19:36   ` [PATCH v4 07/10] ARM/dts: am33xx: Add mcasp0 and mcasp1 device tree entries Jyri Sarha
2013-10-08 19:36   ` [PATCH v4 08/10] ARM/dts: am33xx: mcasp: Add location for data port registers to reg-property Jyri Sarha
2013-10-09  8:29     ` Peter Ujfalusi
2013-10-09 12:44       ` [PATCH v4.1 " y
2013-10-09 12:44       ` [alsa-devel] " y
     [not found]       ` <525513F8.1040103-l0cyMroinI0@public.gmane.org>
2013-10-09 12:44         ` y
2013-10-09 12:44       ` y
2013-10-09 12:44       ` y
2013-10-08 19:36   ` [PATCH v4 09/10] ARM/dts: am335x-evm: Add audio support for am335x-evm.dts Jyri Sarha
2013-10-09  8:12     ` Peter Ujfalusi
2013-10-09 12:45       ` [PATCH v4.1 " Jyri Sarha
2013-10-09 14:32         ` [PATCH v4.2 " Jyri Sarha
2013-10-18 15:37       ` [PATCH v5 00/12] Fix AM335x-evm analog audio support Jyri Sarha
2013-10-18 15:37         ` [PATCH v5 01/12] ASoC: davinci: Fix AM33xx SoC Audio support Jyri Sarha
2013-10-22 12:24           ` Mark Brown
2013-10-22 13:02             ` Jyri Sarha
     [not found]         ` <cover.1382110089.git.jsarha-l0cyMroinI0@public.gmane.org>
2013-10-18 15:37           ` [PATCH v5 02/12] ASoC: davinci-evm: Add device tree binding Jyri Sarha
2013-10-22 11:01             ` Mark Brown
2013-10-22 12:26               ` Jyri Sarha
2013-10-22 12:39                 ` Mark Brown
2013-10-22 16:41                   ` Jyri Sarha
2013-10-18 15:37           ` [PATCH v5 04/12] ASoC: davinci-mcasp: Extract DMA channels directly from DT Jyri Sarha
2013-10-22 12:10             ` Mark Brown
2013-10-18 15:37         ` [PATCH v5 03/12] ASoC: davinci-mcasp: Add location for data port registers to DT Jyri Sarha
2013-10-22 11:04           ` Mark Brown
2013-10-18 15:37         ` [PATCH v5 05/12] ASoC: davinci-mcasp: Change compatible property model to more accurate Jyri Sarha
2013-10-22 12:14           ` Mark Brown
2013-10-18 15:37         ` [PATCH v5 06/12] ASoC: davinci-mcasp: Improve DT bindings document Jyri Sarha
2013-10-23 11:15           ` Mark Brown
2013-10-18 15:37         ` [PATCH v5 07/12] ASoC: davinci-mcasp: Remove redundant num-serializer DT parameter Jyri Sarha
2013-10-23 11:15           ` Mark Brown
2013-10-18 15:37         ` [PATCH v5 08/12] ARM/dts: am33xx: Add mcasp0 and mcasp1 device tree entries Jyri Sarha
2013-10-18 15:37         ` [PATCH v5 09/12] ARM/dts: am33xx: mcasp: Add location for data port registers to reg-property Jyri Sarha
2013-10-18 15:37         ` [PATCH v5 10/12] ARM/dts: am335x-evm: Add audio support for am335x-evm.dts Jyri Sarha
2013-10-18 15:37         ` [PATCH v5 11/12] ARM/dts: am335x-evmsk: Audio support Jyri Sarha
2013-10-18 15:37         ` [PATCH v5 12/12] arm: omap2plus_defconfig: enable AM33xx SOC EVM audio Jyri Sarha
2013-10-18 16:06         ` [PATCH v5 00/12] Fix AM335x-evm analog audio support Benoit Cousson
2013-10-20 17:04           ` [PATCH v5 DTS 0/4] " Jyri Sarha
2013-10-20 17:04             ` [PATCH v5 DTS 1/4] ARM/dts: am33xx: Add mcasp0 and mcasp1 device tree entries Jyri Sarha
2013-10-20 17:04             ` [PATCH v5 DTS 2/4] ARM/dts: am33xx: mcasp: Add location for data port registers to reg-property Jyri Sarha
2013-10-20 17:04             ` [PATCH v5 DTS 3/4] ARM/dts: am335x-evm: Add audio support for am335x-evm.dts Jyri Sarha
2013-10-20 17:04             ` [PATCH v5 DTS 4/4] ARM/dts: am335x-evmsk: Audio support Jyri Sarha
2013-10-20 17:14             ` [PATCH v5 DTS 0/4] Fix AM335x-evm analog audio support Benoit Cousson
2013-10-08 19:36   ` [PATCH v4 10/10] ARM/dts: am335x-evmsk: Audio support Jyri Sarha
2013-10-09 15:58     ` [PATCH v4.2 " Jyri Sarha
2013-10-23 12:30 ` [PATCH v6 0/4] Fix AM335x-evm analog audio support Jyri Sarha
2013-10-23 12:30   ` [PATCH v6 1/4] ASoC: davinci: Add support for AM33xx SoC Audio Jyri Sarha
2013-10-23 15:40     ` Mark Brown
2013-10-23 12:30   ` [PATCH v6 2/4] ASoC: davinci-evm: Add device tree binding Jyri Sarha
2013-10-23 15:43     ` Mark Brown
2013-10-23 12:30   ` [PATCH v6 3/4] ASoC: davinci-mcasp: Remove last reference to num-serializer in DT doc Jyri Sarha
2013-10-23 15:40     ` Mark Brown
2013-10-23 12:30   ` [PATCH v6 4/4] arm: omap2plus_defconfig: enable AM33xx SOC EVM audio Jyri Sarha
2013-11-05  8:42     ` [PATCH RESEND] " Jyri Sarha
2013-11-05  8:42       ` Jyri Sarha
2014-01-08 19:18         ` Tony Lindgren

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=dad0f7eb787d3f65848425a67d668e3935033195.1379409268.git.jsarha@ti.com \
    --to=jsarha-l0cymroini0@public.gmane.org \
    --cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \
    --cc=detheridge-l0cyMroinI0@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=gururaja.hebbar-l0cyMroinI0@public.gmane.org \
    --cc=joelf-l0cyMroinI0@public.gmane.org \
    --cc=nm-l0cyMroinI0@public.gmane.org \
    --cc=peter.ujfalusi-l0cyMroinI0@public.gmane.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 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.