blob: f2a1cdc3766116d9f8ac4899e3b42c1392983e30 [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
Andy Shevchenko3d598f42014-08-19 20:29:12 +030013#include <linux/platform_data/dma-dw.h>
Hans-Christian Egtvedt4ede0282009-02-05 13:11:00 +010014
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.
Hans-Christian Egtvedt4ede0282009-02-05 13:11:00 +010026 *
27 * If the user do not want to use a DMA channel for playback or capture, i.e.
28 * only one feature is required on the board. The slave for playback or capture
29 * can be set to NULL. The AC97C driver will take use of this when setting up
30 * the sound streams.
31 */
32struct ac97c_platform_data {
33 struct dw_dma_slave rx_dws;
34 struct dw_dma_slave tx_dws;
Hans-Christian Egtvedt4ede0282009-02-05 13:11:00 +010035 int reset_pin;
36};
37
38#endif /* __INCLUDE_SOUND_ATMEL_AC97C_H */