blob: e6aabdb458653ff2b817c7a5b1e87c15048085a4 [file] [log] [blame]
Hans-Christian Egtvedt4ede0282009-02-05 13:11:00 +01001/*
2 * Driver for the Atmel AC97C controller
3 *
4 * Copyright (C) 2005-2009 Atmel Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published
8 * by the Free Software Foundation.
9 */
10#ifndef __INCLUDE_SOUND_ATMEL_AC97C_H
11#define __INCLUDE_SOUND_ATMEL_AC97C_H
12
13#include <linux/dw_dmac.h>
14
15#define AC97C_CAPTURE 0x01
16#define AC97C_PLAYBACK 0x02
17#define AC97C_BOTH (AC97C_CAPTURE | AC97C_PLAYBACK)
18
19/**
20 * struct atmel_ac97c_pdata - board specific AC97C configuration
21 * @rx_dws: DMA slave interface to use for sound capture.
22 * @tx_dws: DMA slave interface to use for sound playback.
23 * @reset_pin: GPIO pin wired to the reset input on the external AC97 codec,
24 * optional to use, set to -ENODEV if not in use. AC97 layer will
25 * try to do a software reset of the external codec anyway.
26 * @flags: Flags for which directions should be enabled.
27 *
28 * If the user do not want to use a DMA channel for playback or capture, i.e.
29 * only one feature is required on the board. The slave for playback or capture
30 * can be set to NULL. The AC97C driver will take use of this when setting up
31 * the sound streams.
32 */
33struct ac97c_platform_data {
34 struct dw_dma_slave rx_dws;
35 struct dw_dma_slave tx_dws;
36 unsigned int flags;
37 int reset_pin;
38};
39
40#endif /* __INCLUDE_SOUND_ATMEL_AC97C_H */