1/* arch/arm/mach-s3c2410/include/mach/audio.h 2 * 3 * Copyright (c) 2004-2005 Simtec Electronics 4 * http://www.simtec.co.uk/products/SWLINUX/ 5 * Ben Dooks <ben@simtec.co.uk> 6 * 7 * S3C24XX - Audio platfrom_device info 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License version 2 as 11 * published by the Free Software Foundation. 12*/ 13 14#ifndef __ASM_ARCH_AUDIO_H 15#define __ASM_ARCH_AUDIO_H __FILE__ 16 17/* struct s3c24xx_iis_ops 18 * 19 * called from the s3c24xx audio core to deal with the architecture 20 * or the codec's setup and control. 21 * 22 * the pointer to itself is passed through in case the caller wants to 23 * embed this in an larger structure for easy reference to it's context. 24*/ 25 26struct s3c24xx_iis_ops { 27 struct module *owner; 28 29 int (*startup)(struct s3c24xx_iis_ops *me); 30 void (*shutdown)(struct s3c24xx_iis_ops *me); 31 int (*suspend)(struct s3c24xx_iis_ops *me); 32 int (*resume)(struct s3c24xx_iis_ops *me); 33 34 int (*open)(struct s3c24xx_iis_ops *me, struct snd_pcm_substream *strm); 35 int (*close)(struct s3c24xx_iis_ops *me, struct snd_pcm_substream *strm); 36 int (*prepare)(struct s3c24xx_iis_ops *me, struct snd_pcm_substream *strm, struct snd_pcm_runtime *rt); 37}; 38 39struct s3c24xx_platdata_iis { 40 const char *codec_clk; 41 struct s3c24xx_iis_ops *ops; 42 int (*match_dev)(struct device *dev); 43}; 44 45#endif /* __ASM_ARCH_AUDIO_H */ 46