Skip to content

Commit

Permalink
ASoC: Add S3C64xx IIS CDCLK source selection
Browse files Browse the repository at this point in the history
CDCLK can either be an output generated by the CPU, intended for use
as the CODEC master clock, or an input (probably from the CODEC)
providing a master clock for the IIS block.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Mark Brown committed Sep 16, 2009
1 parent 9b95b16 commit 8bb0148
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@
#define S3C2412_IISMOD_BCLK_MASK (3 << 1)
#define S3C2412_IISMOD_8BIT (1 << 0)

#define S3C64XX_IISMOD_CDCLKCON (1 << 12)

#define S3C2412_IISPSR_PSREN (1 << 15)

#define S3C2412_IISFIC_TXFLUSH (1 << 15)
Expand Down
13 changes: 13 additions & 0 deletions sound/soc/s3c24xx/s3c64xx-i2s.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,19 @@ static int s3c64xx_i2s_set_sysclk(struct snd_soc_dai *cpu_dai,
iismod |= S3C64XX_IISMOD_IMS_SYSMUX;
break;

case S3C64XX_CLKSRC_CDCLK:
switch (dir) {
case SND_SOC_CLOCK_IN:
iismod |= S3C64XX_IISMOD_CDCLKCON;
break;
case SND_SOC_CLOCK_OUT:
iismod &= ~S3C64XX_IISMOD_CDCLKCON;
break;
default:
return -EINVAL;
}
break;

default:
return -EINVAL;
}
Expand Down
1 change: 1 addition & 0 deletions sound/soc/s3c24xx/s3c64xx-i2s.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ struct clk;

#define S3C64XX_CLKSRC_PCLK (0)
#define S3C64XX_CLKSRC_MUX (1)
#define S3C64XX_CLKSRC_CDCLK (2)

extern struct snd_soc_dai s3c64xx_i2s_dai[];

Expand Down

0 comments on commit 8bb0148

Please sign in to comment.