blob: 7beebf7297b5fb92236144826e783ca587e549df [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#ifndef __ASM_ARCH_AUDIO_H__
3#define __ASM_ARCH_AUDIO_H__
4
Linus Torvalds1da177e2005-04-16 15:20:36 -07005#include <sound/core.h>
6#include <sound/pcm.h>
Marek Vasut4ac04782009-07-30 02:55:01 +02007#include <sound/ac97_codec.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07008
Mark Browneae17752009-04-13 11:48:03 +01009/*
10 * @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95)
11 * a -1 value means no gpio will be used for reset
Marek Vasut4ac04782009-07-30 02:55:01 +020012 * @codec_pdata: AC97 codec platform_data
Mark Browneae17752009-04-13 11:48:03 +010013
14 * reset_gpio should only be specified for pxa27x CPUs where a silicon
15 * bug prevents correct operation of the reset line. If not specified,
16 * the default behaviour on these CPUs is to consider gpio 113 as the
17 * AC97 reset line, which is the default on most boards.
18 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070019typedef struct {
Takashi Iwaif7cbb7f2006-01-13 18:48:06 +010020 int (*startup)(struct snd_pcm_substream *, void *);
21 void (*shutdown)(struct snd_pcm_substream *, void *);
Linus Torvalds1da177e2005-04-16 15:20:36 -070022 void (*suspend)(void *);
23 void (*resume)(void *);
24 void *priv;
Mark Browneae17752009-04-13 11:48:03 +010025 int reset_gpio;
Marek Vasut4ac04782009-07-30 02:55:01 +020026 void *codec_pdata[AC97_BUS_MAX_DEVICES];
Linus Torvalds1da177e2005-04-16 15:20:36 -070027} pxa2xx_audio_ops_t;
28
Mark Brown9f19d632008-06-10 12:30:05 +010029extern void pxa_set_ac97_info(pxa2xx_audio_ops_t *ops);
30
Linus Torvalds1da177e2005-04-16 15:20:36 -070031#endif