Skip to content

Commit

Permalink
ALSA: Add ALSA driver for Atmel AC97 controller
Browse files Browse the repository at this point in the history
This patch adds ALSA support for the AC97 controller found on Atmel
AVR32 devices.

Tested on ATSTK1006 + ATSTK1000 with a development board with a AC97
codec.

Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Hans-Christian Egtvedt authored and Takashi Iwai committed Feb 5, 2009
1 parent e4967d6 commit 4ede028
Show file tree
Hide file tree
Showing 5 changed files with 1,053 additions and 0 deletions.
40 changes: 40 additions & 0 deletions include/sound/atmel-ac97c.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Driver for the Atmel AC97C controller
*
* Copyright (C) 2005-2009 Atmel Corporation
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*/
#ifndef __INCLUDE_SOUND_ATMEL_AC97C_H
#define __INCLUDE_SOUND_ATMEL_AC97C_H

#include <linux/dw_dmac.h>

#define AC97C_CAPTURE 0x01
#define AC97C_PLAYBACK 0x02
#define AC97C_BOTH (AC97C_CAPTURE | AC97C_PLAYBACK)

/**
* struct atmel_ac97c_pdata - board specific AC97C configuration
* @rx_dws: DMA slave interface to use for sound capture.
* @tx_dws: DMA slave interface to use for sound playback.
* @reset_pin: GPIO pin wired to the reset input on the external AC97 codec,
* optional to use, set to -ENODEV if not in use. AC97 layer will
* try to do a software reset of the external codec anyway.
* @flags: Flags for which directions should be enabled.
*
* If the user do not want to use a DMA channel for playback or capture, i.e.
* only one feature is required on the board. The slave for playback or capture
* can be set to NULL. The AC97C driver will take use of this when setting up
* the sound streams.
*/
struct ac97c_platform_data {
struct dw_dma_slave rx_dws;
struct dw_dma_slave tx_dws;
unsigned int flags;
int reset_pin;
};

#endif /* __INCLUDE_SOUND_ATMEL_AC97C_H */
8 changes: 8 additions & 0 deletions sound/atmel/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,12 @@ config SND_ATMEL_ABDAC
help
ALSA sound driver for the Atmel Audio Bitstream DAC (ABDAC).

config SND_ATMEL_AC97C
tristate "Atmel AC97 Controller (AC97C) driver"
select SND_PCM
select SND_AC97_CODEC
depends on DW_DMAC && AVR32
help
ALSA sound driver for the Atmel AC97 controller.

endmenu
2 changes: 2 additions & 0 deletions sound/atmel/Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
snd-atmel-abdac-objs := abdac.o
snd-atmel-ac97c-objs := ac97c.o

obj-$(CONFIG_SND_ATMEL_ABDAC) += snd-atmel-abdac.o
obj-$(CONFIG_SND_ATMEL_AC97C) += snd-atmel-ac97c.o
Loading

0 comments on commit 4ede028

Please sign in to comment.