diff options
| -rw-r--r-- | sound/soc/s3c24xx/Kconfig | 2 | ||||
| -rw-r--r-- | sound/soc/s3c24xx/smartq_wm8987.c | 25 |
2 files changed, 12 insertions, 15 deletions
diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig index ec870baf6d7a..3b9736bd7a7e 100644 --- a/sound/soc/s3c24xx/Kconfig +++ b/sound/soc/s3c24xx/Kconfig | |||
| @@ -145,7 +145,7 @@ config SND_SOC_SMDK_WM9713 | |||
| 145 | config SND_S3C64XX_SOC_SMARTQ | 145 | config SND_S3C64XX_SOC_SMARTQ |
| 146 | tristate "SoC I2S Audio support for SmartQ board" | 146 | tristate "SoC I2S Audio support for SmartQ board" |
| 147 | depends on SND_S3C24XX_SOC && MACH_SMARTQ | 147 | depends on SND_S3C24XX_SOC && MACH_SMARTQ |
| 148 | select SND_S3C64XX_SOC_I2S | 148 | select SND_SAMSUNG_I2S |
| 149 | select SND_SOC_WM8750 | 149 | select SND_SOC_WM8750 |
| 150 | 150 | ||
| 151 | config SND_SOC_GONI_AQUILA_WM8994 | 151 | config SND_SOC_GONI_AQUILA_WM8994 |
diff --git a/sound/soc/s3c24xx/smartq_wm8987.c b/sound/soc/s3c24xx/smartq_wm8987.c index 968902e8e469..bcb69820f1cc 100644 --- a/sound/soc/s3c24xx/smartq_wm8987.c +++ b/sound/soc/s3c24xx/smartq_wm8987.c | |||
| @@ -25,7 +25,7 @@ | |||
| 25 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
| 26 | 26 | ||
| 27 | #include "dma.h" | 27 | #include "dma.h" |
| 28 | #include "s3c64xx-i2s.h" | 28 | #include "i2s.h" |
| 29 | 29 | ||
| 30 | #include "../codecs/wm8750.h" | 30 | #include "../codecs/wm8750.h" |
| 31 | 31 | ||
| @@ -41,13 +41,9 @@ static int smartq_hifi_hw_params(struct snd_pcm_substream *substream, | |||
| 41 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 41 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
| 42 | struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; | 42 | struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; |
| 43 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 43 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
| 44 | struct s3c_i2sv2_rate_calc div; | ||
| 45 | unsigned int clk = 0; | 44 | unsigned int clk = 0; |
| 46 | int ret; | 45 | int ret; |
| 47 | 46 | ||
| 48 | s3c_i2sv2_iis_calc_rate(&div, NULL, params_rate(params), | ||
| 49 | s3c_i2sv2_get_clock(cpu_dai)); | ||
| 50 | |||
| 51 | switch (params_rate(params)) { | 47 | switch (params_rate(params)) { |
| 52 | case 8000: | 48 | case 8000: |
| 53 | case 16000: | 49 | case 16000: |
| @@ -78,20 +74,21 @@ static int smartq_hifi_hw_params(struct snd_pcm_substream *substream, | |||
| 78 | if (ret < 0) | 74 | if (ret < 0) |
| 79 | return ret; | 75 | return ret; |
| 80 | 76 | ||
| 81 | /* set the codec system clock for DAC and ADC */ | 77 | /* Use PCLK for I2S signal generation */ |
| 82 | ret = snd_soc_dai_set_sysclk(codec_dai, WM8750_SYSCLK, clk, | 78 | ret = snd_soc_dai_set_sysclk(cpu_dai, SAMSUNG_I2S_RCLKSRC_0, |
| 83 | SND_SOC_CLOCK_IN); | 79 | 0, SND_SOC_CLOCK_IN); |
| 84 | if (ret < 0) | 80 | if (ret < 0) |
| 85 | return ret; | 81 | return ret; |
| 86 | 82 | ||
| 87 | /* set MCLK division for sample rate */ | 83 | /* Gate the RCLK output on PAD */ |
| 88 | ret = snd_soc_dai_set_clkdiv(cpu_dai, S3C_I2SV2_DIV_RCLK, div.fs_div); | 84 | ret = snd_soc_dai_set_sysclk(cpu_dai, SAMSUNG_I2S_CDCLK, |
| 85 | 0, SND_SOC_CLOCK_IN); | ||
| 89 | if (ret < 0) | 86 | if (ret < 0) |
| 90 | return ret; | 87 | return ret; |
| 91 | 88 | ||
| 92 | /* set prescaler division for sample rate */ | 89 | /* set the codec system clock for DAC and ADC */ |
| 93 | ret = snd_soc_dai_set_clkdiv(cpu_dai, S3C_I2SV2_DIV_PRESCALER, | 90 | ret = snd_soc_dai_set_sysclk(codec_dai, WM8750_SYSCLK, clk, |
| 94 | div.clk_div - 1); | 91 | SND_SOC_CLOCK_IN); |
| 95 | if (ret < 0) | 92 | if (ret < 0) |
| 96 | return ret; | 93 | return ret; |
| 97 | 94 | ||
| @@ -212,7 +209,7 @@ static struct snd_soc_dai_link smartq_dai[] = { | |||
| 212 | { | 209 | { |
| 213 | .name = "wm8987", | 210 | .name = "wm8987", |
| 214 | .stream_name = "SmartQ Hi-Fi", | 211 | .stream_name = "SmartQ Hi-Fi", |
| 215 | .cpu_dai_name = "s3c64xx-i2s.0", | 212 | .cpu_dai_name = "samsung-i2s.0", |
| 216 | .codec_dai_name = "wm8750-hifi", | 213 | .codec_dai_name = "wm8750-hifi", |
| 217 | .platform_name = "samsung-audio", | 214 | .platform_name = "samsung-audio", |
| 218 | .codec_name = "wm8750-codec.0-0x1a", | 215 | .codec_name = "wm8750-codec.0-0x1a", |
