* [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs
@ 2010-12-20 2:04 Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 01/10] ASoC: Samsung: Set default rclk source rate Jassi, Brar <jassisinghbrar
` (11 more replies)
0 siblings, 12 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:04 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Hi,
Next coming are patches that enable I2S and AC97 support on
Samsung's latest SoC based SMDKs. The platform side support
has been submitted to the LAML.
Thanks,
Jassi
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 01/10] ASoC: Samsung: Set default rclk source rate
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 02/10] ASoC: Samsung: I2S: Flush FIFO after stop Jassi, Brar <jassisinghbrar
` (10 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Since the rclk_srcrate is cleared upon startup, it should be
initialized upon second and later 'open' calls to the device
with same root-clock source. The bug is otherwise visible in
Codec-Slave mode.
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/i2s.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index d6de3f0..26b4bdf 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -525,6 +525,8 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,
clk_disable(i2s->op_clk);
clk_put(i2s->op_clk);
} else {
+ i2s->rclk_srcrate =
+ clk_get_rate(i2s->op_clk);
return 0;
}
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 02/10] ASoC: Samsung: I2S: Flush FIFO after stop
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 01/10] ASoC: Samsung: Set default rclk source rate Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 03/10] ASoC: SMDK_WM8580: Make I2S0 as default dai Jassi, Brar <jassisinghbrar
` (9 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Flush the FIFO while stopping the channel rather than starting.
This saves time during stream start and keeps the FIFOs clean
when the channel is idling.
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/i2s.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index 26b4bdf..d00ac3a 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -843,11 +843,6 @@ static int i2s_trigger(struct snd_pcm_substream *substream,
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
local_irq_save(flags);
- if (capture)
- i2s_fifo(i2s, FIC_RXFLUSH);
- else
- i2s_fifo(i2s, FIC_TXFLUSH);
-
if (config_setup(i2s)) {
local_irq_restore(flags);
return -EINVAL;
@@ -870,6 +865,11 @@ static int i2s_trigger(struct snd_pcm_substream *substream,
else
i2s_txctrl(i2s, 0);
+ if (capture)
+ i2s_fifo(i2s, FIC_RXFLUSH);
+ else
+ i2s_fifo(i2s, FIC_TXFLUSH);
+
local_irq_restore(flags);
break;
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 03/10] ASoC: SMDK_WM8580: Make I2S0 as default dai
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 01/10] ASoC: Samsung: Set default rclk source rate Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 02/10] ASoC: Samsung: I2S: Flush FIFO after stop Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 04/10] ASoC: SMDK6440: Enable I2S device Jassi, Brar <jassisinghbrar
` (8 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Since most newer SMDKs have I2S0 routed to the WM8580's Primary DAI,
future changes can be minimized if the default CPU DAIs are set to
0, rather than 2.
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/smdk_wm8580.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/sound/soc/samsung/smdk_wm8580.c b/sound/soc/samsung/smdk_wm8580.c
index e2d56b9..e4f3bc8 100644
--- a/sound/soc/samsung/smdk_wm8580.c
+++ b/sound/soc/samsung/smdk_wm8580.c
@@ -212,7 +212,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
[PRI_PLAYBACK] = { /* Primary Playback i/f */
.name = "WM8580 PAIF RX",
.stream_name = "Playback",
- .cpu_dai_name = "samsung-i2s.2",
+ .cpu_dai_name = "samsung-i2s.0",
.codec_dai_name = "wm8580-hifi-playback",
.platform_name = "samsung-audio",
.codec_name = "wm8580-codec.0-001b",
@@ -222,7 +222,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
[PRI_CAPTURE] = { /* Primary Capture i/f */
.name = "WM8580 PAIF TX",
.stream_name = "Capture",
- .cpu_dai_name = "samsung-i2s.2",
+ .cpu_dai_name = "samsung-i2s.0",
.codec_dai_name = "wm8580-hifi-capture",
.platform_name = "samsung-audio",
.codec_name = "wm8580-codec.0-001b",
@@ -256,14 +256,14 @@ static int __init smdk_audio_init(void)
if (machine_is_smdkc100()) {
smdk.num_links = 3;
- /* S5PC100 has I2S0 as v5 */
- str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name;
- str[strlen(str) - 1] = '0';
- str = (char *)smdk_dai[PRI_CAPTURE].cpu_dai_name;
- str[strlen(str) - 1] = '0';
/* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */
str = (char *)smdk_dai[SEC_PLAYBACK].cpu_dai_name;
str[strlen(str) - 1] = '0' + SAMSUNG_I2S_SECOFF;
+ } else if (machine_is_smdk6410()) {
+ str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name;
+ str[strlen(str) - 1] = '2';
+ str = (char *)smdk_dai[PRI_CAPTURE].cpu_dai_name;
+ str[strlen(str) - 1] = '2';
}
smdk_snd_device = platform_device_alloc("soc-audio", -1);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 04/10] ASoC: SMDK6440: Enable I2S device
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (2 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 03/10] ASoC: SMDK_WM8580: Make I2S0 as default dai Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 05/10] ASoC: SMDK6450: " Jassi, Brar <jassisinghbrar
` (7 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index 67cdad4..be09a22 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -1,6 +1,6 @@
config ASOC_SAMSUNG
tristate "ASoC support for Samsung"
- depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210
+ depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0
select S3C64XX_DMA if ARCH_S3C64XX
select S3C2410_DMA if ARCH_S3C2410
help
@@ -62,7 +62,7 @@ config ASOC_SAMSUNG_JIVE_WM8750
config ASOC_SAMSUNG_SMDK_WM8580
tristate "SoC I2S Audio support for WM8580 on SMDK"
- depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100)
+ depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440)
select SND_SOC_WM8580
select SND_SAMSUNG_I2S
help
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 05/10] ASoC: SMDK6450: Enable I2S device
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (3 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 04/10] ASoC: SMDK6440: Enable I2S device Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 13:43 ` Mark Brown
2010-12-20 2:05 ` [PATCH 06/10] ASoC: SMDK6442: " Jassi, Brar <jassisinghbrar
` (6 subsequent siblings)
11 siblings, 1 reply; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index be09a22..c8aa73e 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -62,7 +62,7 @@ config ASOC_SAMSUNG_JIVE_WM8750
config ASOC_SAMSUNG_SMDK_WM8580
tristate "SoC I2S Audio support for WM8580 on SMDK"
- depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440)
+ depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450)
select SND_SOC_WM8580
select SND_SAMSUNG_I2S
help
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 06/10] ASoC: SMDK6442: Enable I2S device
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (4 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 05/10] ASoC: SMDK6450: " Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 07/10] ASoC: SMDKV210: " Jassi, Brar <jassisinghbrar
` (5 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 4 ++--
sound/soc/samsung/smdk_wm8580.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index c8aa73e..1e73f70 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -1,6 +1,6 @@
config ASOC_SAMSUNG
tristate "ASoC support for Samsung"
- depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0
+ depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_S5P6442
select S3C64XX_DMA if ARCH_S3C64XX
select S3C2410_DMA if ARCH_S3C2410
help
@@ -62,7 +62,7 @@ config ASOC_SAMSUNG_JIVE_WM8750
config ASOC_SAMSUNG_SMDK_WM8580
tristate "SoC I2S Audio support for WM8580 on SMDK"
- depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450)
+ depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDK6442)
select SND_SOC_WM8580
select SND_SAMSUNG_I2S
help
diff --git a/sound/soc/samsung/smdk_wm8580.c b/sound/soc/samsung/smdk_wm8580.c
index e4f3bc8..c149f73 100644
--- a/sound/soc/samsung/smdk_wm8580.c
+++ b/sound/soc/samsung/smdk_wm8580.c
@@ -254,7 +254,7 @@ static int __init smdk_audio_init(void)
int ret;
char *str;
- if (machine_is_smdkc100()) {
+ if (machine_is_smdkc100() || machine_is_smdk6442()) {
smdk.num_links = 3;
/* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */
str = (char *)smdk_dai[SEC_PLAYBACK].cpu_dai_name;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 07/10] ASoC: SMDKV210: Enable I2S device
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (5 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 06/10] ASoC: SMDK6442: " Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 08/10] ASoC: SMDKC110: " Jassi, Brar <jassisinghbrar
` (4 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 2 +-
sound/soc/samsung/smdk_wm8580.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index 1e73f70..e718ec1 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -62,7 +62,7 @@ config ASOC_SAMSUNG_JIVE_WM8750
config ASOC_SAMSUNG_SMDK_WM8580
tristate "SoC I2S Audio support for WM8580 on SMDK"
- depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDK6442)
+ depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDK6442 || MACH_SMDKV210)
select SND_SOC_WM8580
select SND_SAMSUNG_I2S
help
diff --git a/sound/soc/samsung/smdk_wm8580.c b/sound/soc/samsung/smdk_wm8580.c
index c149f73..f37b9da 100644
--- a/sound/soc/samsung/smdk_wm8580.c
+++ b/sound/soc/samsung/smdk_wm8580.c
@@ -254,7 +254,8 @@ static int __init smdk_audio_init(void)
int ret;
char *str;
- if (machine_is_smdkc100() || machine_is_smdk6442()) {
+ if (machine_is_smdkc100() || machine_is_smdk6442()
+ || machine_is_smdkv210()) {
smdk.num_links = 3;
/* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */
str = (char *)smdk_dai[SEC_PLAYBACK].cpu_dai_name;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 08/10] ASoC: SMDKC110: Enable I2S device
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (6 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 07/10] ASoC: SMDKV210: " Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 09/10] ASoC: SMDKV310: Enable AC97 device Jassi, Brar <jassisinghbrar
` (3 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 2 +-
sound/soc/samsung/smdk_wm8580.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index e718ec1..472951d 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -62,7 +62,7 @@ config ASOC_SAMSUNG_JIVE_WM8750
config ASOC_SAMSUNG_SMDK_WM8580
tristate "SoC I2S Audio support for WM8580 on SMDK"
- depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDK6442 || MACH_SMDKV210)
+ depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450 || MACH_SMDK6442 || MACH_SMDKV210 || MACH_SMDKC110)
select SND_SOC_WM8580
select SND_SAMSUNG_I2S
help
diff --git a/sound/soc/samsung/smdk_wm8580.c b/sound/soc/samsung/smdk_wm8580.c
index f37b9da..b2cff1a 100644
--- a/sound/soc/samsung/smdk_wm8580.c
+++ b/sound/soc/samsung/smdk_wm8580.c
@@ -255,7 +255,7 @@ static int __init smdk_audio_init(void)
char *str;
if (machine_is_smdkc100() || machine_is_smdk6442()
- || machine_is_smdkv210()) {
+ || machine_is_smdkv210() || machine_is_smdkc110()) {
smdk.num_links = 3;
/* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */
str = (char *)smdk_dai[SEC_PLAYBACK].cpu_dai_name;
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 09/10] ASoC: SMDKV310: Enable AC97 device
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (7 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 08/10] ASoC: SMDKC110: " Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 10/10] ASoC: SMDKV310: Add I2S support Jassi, Brar <jassisinghbrar
` (2 subsequent siblings)
11 siblings, 0 replies; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Enable AC97 audio device on SMDKV310/C210.
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 4 ++--
sound/soc/samsung/smdk_wm9713.c | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index 472951d..9cedf34 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -1,6 +1,6 @@
config ASOC_SAMSUNG
tristate "ASoC support for Samsung"
- depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_S5P6442
+ depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_S5P6442 || ARCH_S5PV310
select S3C64XX_DMA if ARCH_S3C64XX
select S3C2410_DMA if ARCH_S3C2410
help
@@ -134,7 +134,7 @@ config ASOC_SAMSUNG_RX1950_UDA1380
config ASOC_SAMSUNG_SMDK_WM9713
tristate "SoC AC97 Audio support for SMDK with WM9713"
- depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDKV210 || MACH_SMDKC110)
+ depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDKV210 || MACH_SMDKC110 || MACH_SMDKV310 || MACH_SMDKC210)
select SND_SOC_WM9713
select SND_SAMSUNG_AC97
help
diff --git a/sound/soc/samsung/smdk_wm9713.c b/sound/soc/samsung/smdk_wm9713.c
index 238cb3a..ae5fed6 100644
--- a/sound/soc/samsung/smdk_wm9713.c
+++ b/sound/soc/samsung/smdk_wm9713.c
@@ -27,6 +27,7 @@ static struct snd_soc_card smdk;
* SMDKC100: Set CFG6 1-3 On, CFG7 1 On
* SMDKC110: Set CFGB10 1-2 Off, CFGB12 1-3 On
* SMDKV210: Set CFGB10 1-2 Off, CFGB12 1-3 On
+ * SMDKV310: Set CFG2 1-2 Off, CFG4 All On, CFG7 All Off, CFG8 1-On
*/
/*
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 10/10] ASoC: SMDKV310: Add I2S support
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (8 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 09/10] ASoC: SMDKV310: Enable AC97 device Jassi, Brar <jassisinghbrar
@ 2010-12-20 2:05 ` Jassi, Brar <jassisinghbrar
2010-12-20 13:41 ` Mark Brown
2010-12-20 9:32 ` [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Liam Girdwood
2010-12-20 13:45 ` Mark Brown
11 siblings, 1 reply; 16+ messages in thread
From: Jassi, Brar <jassisinghbrar @ 2010-12-20 2:05 UTC (permalink / raw)
To: alsa-devel; +Cc: lrg, kgene.kim, Jassi Brar, broonie
From: Jassi Brar <jassi.brar@samsung.com>
Add ASoC machine driver for SMDKV310/C210 boards that have
a WM8994 attached to I2S-0.
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
sound/soc/samsung/Kconfig | 8 ++
sound/soc/samsung/Makefile | 2 +
sound/soc/samsung/smdk_wm8994.c | 180 +++++++++++++++++++++++++++++++++++++++
3 files changed, 190 insertions(+), 0 deletions(-)
create mode 100644 sound/soc/samsung/smdk_wm8994.c
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index 9cedf34..11ff4ad 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -68,6 +68,14 @@ config ASOC_SAMSUNG_SMDK_WM8580
help
Say Y if you want to add support for SoC audio on the SMDKs.
+config ASOC_SAMSUNG_SMDK_WM8994
+ tristate "SoC I2S Audio support for WM8994 on SMDK"
+ depends on ASOC_SAMSUNG && (MACH_SMDKV310 || MACH_SMDKC210)
+ select SND_SOC_WM8994
+ select SND_SAMSUNG_I2S
+ help
+ Say Y if you want to add support for SoC audio on the SMDKs.
+
config ASOC_SAMSUNG_SMDK2443_WM9710
tristate "SoC AC97 Audio support for SMDK2443 - WM9710"
depends on ASOC_SAMSUNG && MACH_SMDK2443
diff --git a/sound/soc/samsung/Makefile b/sound/soc/samsung/Makefile
index 622e76e..fe694cc 100644
--- a/sound/soc/samsung/Makefile
+++ b/sound/soc/samsung/Makefile
@@ -30,6 +30,7 @@ snd-soc-s3c24xx-simtec-tlv320aic23-objs := s3c24xx_simtec_tlv320aic23.o
snd-soc-h1940-uda1380-objs := h1940_uda1380.o
snd-soc-rx1950-uda1380-objs := rx1950_uda1380.o
snd-soc-smdk-wm8580-objs := smdk_wm8580.o
+snd-soc-smdk-wm8994-objs := smdk_wm8994.o
snd-soc-smdk-wm9713-objs := smdk_wm9713.o
snd-soc-s3c64xx-smartq-wm8987-objs := smartq_wm8987.o
snd-soc-goni-wm8994-objs := goni_wm8994.o
@@ -47,6 +48,7 @@ obj-$(CONFIG_ASOC_SAMSUNG_SIMTEC_TLV320AIC23) += snd-soc-s3c24xx-simtec-tlv320ai
obj-$(CONFIG_ASOC_SAMSUNG_H1940_UDA1380) += snd-soc-h1940-uda1380.o
obj-$(CONFIG_ASOC_SAMSUNG_RX1950_UDA1380) += snd-soc-rx1950-uda1380.o
obj-$(CONFIG_ASOC_SAMSUNG_SMDK_WM8580) += snd-soc-smdk-wm8580.o
+obj-$(CONFIG_ASOC_SAMSUNG_SMDK_WM8994) += snd-soc-smdk-wm8994.o
obj-$(CONFIG_ASOC_SAMSUNG_SMDK_WM9713) += snd-soc-smdk-wm9713.o
obj-$(CONFIG_ASOC_SMARTQ) += snd-soc-s3c64xx-smartq-wm8987.o
obj-$(CONFIG_ASOC_SAMSUNG_SMDK_SPDIF) += snd-soc-smdk-spdif.o
diff --git a/sound/soc/samsung/smdk_wm8994.c b/sound/soc/samsung/smdk_wm8994.c
new file mode 100644
index 0000000..25313f6
--- /dev/null
+++ b/sound/soc/samsung/smdk_wm8994.c
@@ -0,0 +1,176 @@
+/*
+ * smdk_wm8994.c
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#include "../codecs/wm8994.h"
+
+ /*
+ * Default CFG switch settings to use this driver:
+ * SMDKV310: CFG5-1000, CFG7-111111
+ */
+
+ /*
+ * Configure audio route as :-
+ * $ amixer sset 'DAC1' on,on
+ * $ amixer sset 'Right Headphone Mux' 'DAC'
+ * $ amixer sset 'Left Headphone Mux' 'DAC'
+ * $ amixer sset 'DAC1R Mixer AIF1.1' on
+ * $ amixer sset 'DAC1L Mixer AIF1.1' on
+ * $ amixer sset 'IN2L' on
+ * $ amixer sset 'IN2L PGA IN2LN' on
+ * $ amixer sset 'MIXINL IN2L' on
+ * $ amixer sset 'AIF1ADC1L Mixer ADC/DMIC' on
+ * $ amixer sset 'IN2R' on
+ * $ amixer sset 'IN2R PGA IN2RN' on
+ * $ amixer sset 'MIXINR IN2R' on
+ * $ amixer sset 'AIF1ADC1R Mixer ADC/DMIC' on
+ */
+
+/* SMDK has a 16.934MHZ crystal attached to WM8994 */
+#define SMDK_WM8994_FREQ 16934000
+
+static int smdk_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+ struct snd_soc_dai *codec_dai = rtd->codec_dai;
+ unsigned int pll_out;
+ int ret;
+
+ /* AIF1CLK should be >=3MHz for optimal performance */
+ if (params_rate(params) == 8000 || params_rate(params) == 11025)
+ pll_out = params_rate(params) * 512;
+ else
+ pll_out = params_rate(params) * 256;
+
+ ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S
+ | SND_SOC_DAIFMT_NB_NF
+ | SND_SOC_DAIFMT_CBM_CFM);
+ if (ret < 0)
+ return ret;
+
+ ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S
+ | SND_SOC_DAIFMT_NB_NF
+ | SND_SOC_DAIFMT_CBM_CFM);
+ if (ret < 0)
+ return ret;
+
+ ret = snd_soc_dai_set_pll(codec_dai, WM8994_FLL1, WM8994_FLL_SRC_MCLK1,
+ SMDK_WM8994_FREQ, pll_out);
+ if (ret < 0)
+ return ret;
+
+ ret = snd_soc_dai_set_sysclk(codec_dai, WM8994_SYSCLK_FLL1,
+ pll_out, SND_SOC_CLOCK_IN);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
+/*
+ * SMDK WM8994 DAI operations.
+ */
+static struct snd_soc_ops smdk_ops = {
+ .hw_params = smdk_hw_params,
+};
+
+static int smdk_wm8994_init_paiftx(struct snd_soc_pcm_runtime *rtd)
+{
+ struct snd_soc_codec *codec = rtd->codec;
+ struct snd_soc_dapm_context *dapm = &codec->dapm;
+
+ /* HeadPhone */
+ snd_soc_dapm_enable_pin(dapm, "HPOUT1R");
+ snd_soc_dapm_enable_pin(dapm, "HPOUT1L");
+
+ /* MicIn */
+ snd_soc_dapm_enable_pin(dapm, "IN1LN");
+ snd_soc_dapm_enable_pin(dapm, "IN1RN");
+
+ /* LineIn */
+ snd_soc_dapm_enable_pin(dapm, "IN2LN");
+ snd_soc_dapm_enable_pin(dapm, "IN2RN");
+
+ /* Other pins NC */
+ snd_soc_dapm_nc_pin(dapm, "HPOUT2P");
+ snd_soc_dapm_nc_pin(dapm, "HPOUT2N");
+ snd_soc_dapm_nc_pin(dapm, "SPKOUTLN");
+ snd_soc_dapm_nc_pin(dapm, "SPKOUTLP");
+ snd_soc_dapm_nc_pin(dapm, "SPKOUTRP");
+ snd_soc_dapm_nc_pin(dapm, "SPKOUTRN");
+ snd_soc_dapm_nc_pin(dapm, "LINEOUT1N");
+ snd_soc_dapm_nc_pin(dapm, "LINEOUT1P");
+ snd_soc_dapm_nc_pin(dapm, "LINEOUT2N");
+ snd_soc_dapm_nc_pin(dapm, "LINEOUT2P");
+ snd_soc_dapm_nc_pin(dapm, "IN1LP");
+ snd_soc_dapm_nc_pin(dapm, "IN2LP:VXRN");
+ snd_soc_dapm_nc_pin(dapm, "IN1RP");
+ snd_soc_dapm_nc_pin(dapm, "IN2RP:VXRP");
+
+ snd_soc_dapm_sync(dapm);
+
+ return 0;
+}
+
+static struct snd_soc_dai_link smdk_dai[] = {
+ { /* Primary DAI i/f */
+ .name = "WM8994 AIF1",
+ .stream_name = "Pri_Dai",
+ .cpu_dai_name = "samsung-i2s.0",
+ .codec_dai_name = "wm8994-aif1",
+ .platform_name = "samsung-audio",
+ .codec_name = "wm8994-codec",
+ .init = smdk_wm8994_init_paiftx,
+ .ops = &smdk_ops,
+ }, { /* Sec_Fifo Playback i/f */
+ .name = "Sec_FIFO TX",
+ .stream_name = "Sec_Dai",
+ .cpu_dai_name = "samsung-i2s.4",
+ .codec_dai_name = "wm8994-aif1",
+ .platform_name = "samsung-audio",
+ .codec_name = "wm8994-codec",
+ .ops = &smdk_ops,
+ },
+};
+
+static struct snd_soc_card smdk = {
+ .name = "SMDK-I2S",
+ .dai_link = smdk_dai,
+ .num_links = ARRAY_SIZE(smdk_dai),
+};
+
+static struct platform_device *smdk_snd_device;
+
+static int __init smdk_audio_init(void)
+{
+ int ret;
+
+ smdk_snd_device = platform_device_alloc("soc-audio", -1);
+ if (!smdk_snd_device)
+ return -ENOMEM;
+
+ platform_set_drvdata(smdk_snd_device, &smdk);
+
+ ret = platform_device_add(smdk_snd_device);
+ if (ret)
+ platform_device_put(smdk_snd_device);
+
+ return ret;
+}
+module_init(smdk_audio_init);
+
+static void __exit smdk_audio_exit(void)
+{
+ platform_device_unregister(smdk_snd_device);
+}
+module_exit(smdk_audio_exit);
+
+MODULE_DESCRIPTION("ALSA SoC SMDK WM8994");
+MODULE_LICENSE("GPL");
--
1.6.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (9 preceding siblings ...)
2010-12-20 2:05 ` [PATCH 10/10] ASoC: SMDKV310: Add I2S support Jassi, Brar <jassisinghbrar
@ 2010-12-20 9:32 ` Liam Girdwood
2010-12-20 13:45 ` Mark Brown
11 siblings, 0 replies; 16+ messages in thread
From: Liam Girdwood @ 2010-12-20 9:32 UTC (permalink / raw)
To: Jassi, Brar; +Cc: alsa-devel, kgene.kim, Jassi Brar, broonie
On Mon, 2010-12-20 at 11:04 +0900, Jassi@alsa-project.org wrote:
> From: Jassi Brar <jassi.brar@samsung.com>
>
> Hi,
> Next coming are patches that enable I2S and AC97 support on
> Samsung's latest SoC based SMDKs. The platform side support
> has been submitted to the LAML.
>
All
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
--
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 10/10] ASoC: SMDKV310: Add I2S support
2010-12-20 2:05 ` [PATCH 10/10] ASoC: SMDKV310: Add I2S support Jassi, Brar <jassisinghbrar
@ 2010-12-20 13:41 ` Mark Brown
0 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2010-12-20 13:41 UTC (permalink / raw)
To: jassisinghbrar; +Cc: alsa-devel, kgene.kim, Jassi Brar, lrg
On Mon, Dec 20, 2010 at 11:05:57AM +0900, Jassi@opensource.wolfsonmicro.com wrote:
> + ret = snd_soc_dai_set_pll(codec_dai, WM8994_FLL1, WM8994_FLL_SRC_MCLK1,
> + SMDK_WM8994_FREQ, pll_out);
> + if (ret < 0)
> + return ret;
> +
> + ret = snd_soc_dai_set_sysclk(codec_dai, WM8994_SYSCLK_FLL1,
> + pll_out, SND_SOC_CLOCK_IN);
> + if (ret < 0)
> + return ret;
...
> +static struct snd_soc_ops smdk_ops = {
> + .hw_params = smdk_hw_params,
> +};
This means that the FLL won't ever get powered off when it goes idle.
While it's not going to be such an issue on a board like this as it is a
reference design it's likely people will lift the code into places where
it does matter so it'd be good to get such support into the driver.
> + /* HeadPhone */
> + snd_soc_dapm_enable_pin(dapm, "HPOUT1R");
> + snd_soc_dapm_enable_pin(dapm, "HPOUT1L");
There's no need to explicitly enable pins that aren't being actively
managed - the default is for all pins to be enabled.
> + snd_soc_dapm_sync(dapm);
> +
Core should be doing this automatically for you these days, on the other
hand this does no harm.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 05/10] ASoC: SMDK6450: Enable I2S device
2010-12-20 2:05 ` [PATCH 05/10] ASoC: SMDK6450: " Jassi, Brar <jassisinghbrar
@ 2010-12-20 13:43 ` Mark Brown
0 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2010-12-20 13:43 UTC (permalink / raw)
To: Jassi, "Brar <jassisinghbrar"
Cc: alsa-devel, kgene.kim, Jassi Brar, lrg
On Mon, Dec 20, 2010 at 11:05:51AM +0900, Jassi@opensource.wolfsonmicro.com wrote:
> config ASOC_SAMSUNG_SMDK_WM8580
> tristate "SoC I2S Audio support for WM8580 on SMDK"
> - depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440)
> + depends on ASOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDK6440 || MACH_SMDK6450)
Might be worth adding a HAS_SMDK_WM8580 or something that the machines
can select otherwise this line couldget very long.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
` (10 preceding siblings ...)
2010-12-20 9:32 ` [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Liam Girdwood
@ 2010-12-20 13:45 ` Mark Brown
2010-12-21 1:53 ` Jassi Brar
11 siblings, 1 reply; 16+ messages in thread
From: Mark Brown @ 2010-12-20 13:45 UTC (permalink / raw)
To: Jassi, "Brar <jassisinghbrar"
Cc: alsa-devel, kgene.kim, Jassi Brar, lrg
On Mon, Dec 20, 2010 at 11:04:27AM +0900, Jassi@opensource.wolfsonmicro.com wrote:
> Next coming are patches that enable I2S and AC97 support on
> Samsung's latest SoC based SMDKs. The platform side support
> has been submitted to the LAML.
All applied, thanks. I did have a couple of minor comments but nothing
to stop the merge.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs
2010-12-20 13:45 ` Mark Brown
@ 2010-12-21 1:53 ` Jassi Brar
0 siblings, 0 replies; 16+ messages in thread
From: Jassi Brar @ 2010-12-21 1:53 UTC (permalink / raw)
To: Mark Brown
Cc: alsa-devel, kgene.kim, "Brar <jassisinghbrar",
Jassi Brar, Jassi, lrg
On Mon, Dec 20, 2010 at 10:45 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Mon, Dec 20, 2010 at 11:04:27AM +0900, Jassi@opensource.wolfsonmicro.com wrote:
>
>> Next coming are patches that enable I2S and AC97 support on
>> Samsung's latest SoC based SMDKs. The platform side support
>> has been submitted to the LAML.
>
> All applied, thanks. I did have a couple of minor comments but nothing
> to stop the merge.
Thanks.
Though I would have happily resubmitted after modifying as per your comments.
Only I read your comments and this mail just now when I reached office :)
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2010-12-21 1:53 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-20 2:04 [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 01/10] ASoC: Samsung: Set default rclk source rate Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 02/10] ASoC: Samsung: I2S: Flush FIFO after stop Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 03/10] ASoC: SMDK_WM8580: Make I2S0 as default dai Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 04/10] ASoC: SMDK6440: Enable I2S device Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 05/10] ASoC: SMDK6450: " Jassi, Brar <jassisinghbrar
2010-12-20 13:43 ` Mark Brown
2010-12-20 2:05 ` [PATCH 06/10] ASoC: SMDK6442: " Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 07/10] ASoC: SMDKV210: " Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 08/10] ASoC: SMDKC110: " Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 09/10] ASoC: SMDKV310: Enable AC97 device Jassi, Brar <jassisinghbrar
2010-12-20 2:05 ` [PATCH 10/10] ASoC: SMDKV310: Add I2S support Jassi, Brar <jassisinghbrar
2010-12-20 13:41 ` Mark Brown
2010-12-20 9:32 ` [PATCHes 00/10] ASoC: Samsung: Enable latest SoCs Liam Girdwood
2010-12-20 13:45 ` Mark Brown
2010-12-21 1:53 ` Jassi Brar
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.