[alsa-devel] [PATCH] ASoC: Fix data format configuration for S3C64XX IISv2
The data format configuration for S3C64xx IISv2 was hardcoded for IISMOD register. This patch changes to the defined values it.
And instead of bits 9 and 10 of IISMOD we should clear bits 13 and 14.
Signed-off-by: Joonyoung Shim jy0922.shim@samsung.com --- arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h | 5 +++++ sound/soc/s3c24xx/s3c-i2s-v2.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h b/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h index 0fad757..07659da 100644 --- a/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h +++ b/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h @@ -33,6 +33,11 @@ #define S3C2412_IISCON_RXDMA_ACTIVE (1 << 1) #define S3C2412_IISCON_IIS_ACTIVE (1 << 0)
+#define S3C64XX_IISMOD_BLC_16BIT (0 << 13) +#define S3C64XX_IISMOD_BLC_8BIT (1 << 13) +#define S3C64XX_IISMOD_BLC_24BIT (2 << 13) +#define S3C64XX_IISMOD_BLC_MASK (3 << 13) + #define S3C64XX_IISMOD_IMS_PCLK (0 << 10) #define S3C64XX_IISMOD_IMS_SYSMUX (1 << 10)
diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c index 1a28317..ebfb2f6 100644 --- a/sound/soc/s3c24xx/s3c-i2s-v2.c +++ b/sound/soc/s3c24xx/s3c-i2s-v2.c @@ -357,19 +357,19 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, #endif
#ifdef CONFIG_PLAT_S3C64XX - iismod &= ~0x606; + iismod &= ~(S3C64XX_IISMOD_BLC_MASK | S3C2412_IISMOD_BCLK_MASK); /* Sample size */ switch (params_format(params)) { case SNDRV_PCM_FORMAT_S8: /* 8 bit sample, 16fs BCLK */ - iismod |= 0x2004; + iismod |= (S3C64XX_IISMOD_BLC_8BIT | S3C2412_IISMOD_BCLK_16FS); break; case SNDRV_PCM_FORMAT_S16_LE: /* 16 bit sample, 32fs BCLK */ break; case SNDRV_PCM_FORMAT_S24_LE: /* 24 bit sample, 48fs BCLK */ - iismod |= 0x4002; + iismod |= (S3C64XX_IISMOD_BLC_24BIT | S3C2412_IISMOD_BCLK_48FS); break; } #endif
On Tue, Aug 18, 2009 at 09:56:19PM +0900, Joonyoung Shim wrote:
The data format configuration for S3C64xx IISv2 was hardcoded for IISMOD register. This patch changes to the defined values it.
And instead of bits 9 and 10 of IISMOD we should clear bits 13 and 14.
Thanks - there's quite a few problems with this area.
Can you confirm if you've got the device DMAing usable audio (and if so in what configuration)?
On 8/18/2009 10:05 PM, Mark Brown wrote:
On Tue, Aug 18, 2009 at 09:56:19PM +0900, Joonyoung Shim wrote:
The data format configuration for S3C64xx IISv2 was hardcoded for IISMOD register. This patch changes to the defined values it.
And instead of bits 9 and 10 of IISMOD we should clear bits 13 and 14.
Thanks - there's quite a few problems with this area.
Can you confirm if you've got the device DMAing usable audio (and if so in what configuration)?
Do you mean which target board i use?
I have the NCP target board using S3C6410 arm cpu. The NCP board has the LM49350 audio codec chip, but this codec driver doesn't make ready to post yet. The codec chip of the NCP is connected to the I2S0 of platform for playback and capture.
On Tue, Aug 18, 2009 at 11:17:09PM +0900, Joonyoung Shim wrote:
On 8/18/2009 10:05 PM, Mark Brown wrote:
Can you confirm if you've got the device DMAing usable audio (and if so in what configuration)?
Do you mean which target board i use?
That's useful, yes, but I was more wondering about the configuration of the DAI - mostly what's master.
On 8/18/2009 11:23 PM, Mark Brown wrote:
On Tue, Aug 18, 2009 at 11:17:09PM +0900, Joonyoung Shim wrote:
On 8/18/2009 10:05 PM, Mark Brown wrote:
Can you confirm if you've got the device DMAing usable audio (and if so in what configuration)?
Do you mean which target board i use?
That's useful, yes, but I was more wondering about the configuration of the DAI - mostly what's master.
I use the configuration that the DAI of codec is master and the DAI of cpu is slave.
participants (2)
-
Joonyoung Shim
-
Mark Brown