diff -urN -X ../dontdiff linux-2.6.11-rc5/include/asm-arm/arch-s3c2410/audio.h linux-2.6.11-rc5-audio9/include/asm-arm/arch-s3c2410/audio.h --- linux-2.6.11-rc5/include/asm-arm/arch-s3c2410/audio.h 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.11-rc5-audio9/include/asm-arm/arch-s3c2410/audio.h 2005-03-15 10:23:46.000000000 +0000 @@ -0,0 +1,49 @@ +/* linux/include/asm-arm/arch-s3c2410/audio.h + * + * (c) 2004-2005 Simtec Electronics + * http://www.simtec.co.uk/products/SWLINUX/ + * Ben Dooks + * + * S3C24XX - Audio platfrom_device info + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Changelog: + * 20-Nov-2004 BJD Created file + * 07-Mar-2005 BJD Added suspend/resume calls +*/ + +#ifndef __ASM_ARCH_AUDIO_H +#define __ASM_ARCH_AUDIO_H __FILE__ + +/* struct s3c24xx_iis_ops + * + * called from the s3c24xx audio core to deal with the architecture + * or the codec's setup and control. + * + * the pointer to itself is passed through in case the caller wants to + * embed this in an larger structure for easy reference to it's context. +*/ + +struct s3c24xx_iis_ops { + struct module *owner; + + int (*startup)(struct s3c24xx_iis_ops *me); + void (*shutdown)(struct s3c24xx_iis_ops *me); + int (*suspend)(struct s3c24xx_iis_ops *me); + int (*resume)(struct s3c24xx_iis_ops *me); + + int (*open)(struct s3c24xx_iis_ops *me, snd_pcm_substream_t *strm); + int (*close)(struct s3c24xx_iis_ops *me, snd_pcm_substream_t *strm); + int (*prepare)(struct s3c24xx_iis_ops *me, snd_pcm_substream_t *strm, snd_pcm_runtime_t *rt); +}; + +struct s3c24xx_platdata_iis { + const char *codec_clk; + struct s3c24xx_iis_ops *ops; + int (*match_dev)(struct device *dev); +}; + +#endif /* __ASM_ARCH_AUDIO_H */ diff -urN -X ../dontdiff linux-2.6.11-rc5/include/asm-arm/arch-s3c2410/regs-iis.h linux-2.6.11-rc5-audio9/include/asm-arm/arch-s3c2410/regs-iis.h --- linux-2.6.11-rc5/include/asm-arm/arch-s3c2410/regs-iis.h 2005-02-25 11:14:22.000000000 +0000 +++ linux-2.6.11-rc5-audio9/include/asm-arm/arch-s3c2410/regs-iis.h 2005-03-10 11:20:09.000000000 +0000 @@ -13,6 +13,7 @@ * 19-06-2003 BJD Created file * 26-06-2003 BJD Finished off definitions for register addresses * 12-03-2004 BJD Updated include protection + * 07-03-2005 BJD Added FIFO size flags and S3C2440 MPLL */ #ifndef __ASM_ARCH_REGS_IIS_H @@ -20,6 +21,7 @@ #define S3C2410_IISCON (0x00) +#define S3C2440_IISCON_MPLL (1<<9) #define S3C2410_IISCON_LRINDEX (1<<8) #define S3C2410_IISCON_TXFIFORDY (1<<7) #define S3C2410_IISCON_RXFIFORDY (1<<6) @@ -42,6 +44,7 @@ #define S3C2410_IISMOD_MSB (1<<4) #define S3C2410_IISMOD_8BIT (0<<3) #define S3C2410_IISMOD_16BIT (1<<3) +#define S3C2410_IISMOD_BITMASK (1<<3) #define S3C2410_IISMOD_256FS (0<<1) #define S3C2410_IISMOD_384FS (1<<1) #define S3C2410_IISMOD_16FS (0<<0) @@ -50,7 +53,7 @@ #define S3C2410_IISPSR (0x08) #define S3C2410_IISPSR_INTMASK (31<<5) -#define S3C2410_IISPSR_INTSHFIT (5) +#define S3C2410_IISPSR_INTSHIFT (5) #define S3C2410_IISPSR_EXTMASK (31<<0) #define S3C2410_IISPSR_EXTSHFIT (0) @@ -60,8 +63,10 @@ #define S3C2410_IISFCON_RXDMA (1<<14) #define S3C2410_IISFCON_TXENABLE (1<<13) #define S3C2410_IISFCON_RXENABLE (1<<12) +#define S3C2410_IISFCON_TXMASK (0x3f << 6) +#define S3C2410_IISFCON_TXSHIFT (6) +#define S3C2410_IISFCON_RXMASK (0x3f) +#define S3C2410_IISFCON_RXSHIFT (0) #define S3C2410_IISFIFO (0x10) - #endif /* __ASM_ARCH_REGS_IIS_H */ -