blob: a3449e35a6f554eb781d6203c294e648528edce9 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ASM_ARCH_AUDIO_H__
2#define __ASM_ARCH_AUDIO_H__
3
Linus Torvalds1da177e2005-04-16 15:20:36 -07004#include <sound/core.h>
5#include <sound/pcm.h>
Marek Vasut4ac04782009-07-30 02:55:01 +02006#include <sound/ac97_codec.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07007
Mark Browneae17752009-04-13 11:48:03 +01008/*
9 * @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95)
10 * a -1 value means no gpio will be used for reset
Marek Vasut4ac04782009-07-30 02:55:01 +020011 * @codec_pdata: AC97 codec platform_data
Mark Browneae17752009-04-13 11:48:03 +010012
13 * reset_gpio should only be specified for pxa27x CPUs where a silicon
14 * bug prevents correct operation of the reset line. If not specified,
15 * the default behaviour on these CPUs is to consider gpio 113 as the
16 * AC97 reset line, which is the default on most boards.
17 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070018typedef struct {
Takashi Iwaif7cbb7f2006-01-13 18:48:06 +010019 int (*startup)(struct snd_pcm_substream *, void *);
20 void (*shutdown)(struct snd_pcm_substream *, void *);
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 void (*suspend)(void *);
22 void (*resume)(void *);
23 void *priv;
Mark Browneae17752009-04-13 11:48:03 +010024 int reset_gpio;
Marek Vasut4ac04782009-07-30 02:55:01 +020025 void *codec_pdata[AC97_BUS_MAX_DEVICES];
Linus Torvalds1da177e2005-04-16 15:20:36 -070026} pxa2xx_audio_ops_t;
27
Mark Brown9f19d632008-06-10 12:30:05 +010028extern void pxa_set_ac97_info(pxa2xx_audio_ops_t *ops);
29
Linus Torvalds1da177e2005-04-16 15:20:36 -070030#endif