Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ede028f authored by Hans-Christian Egtvedt's avatar Hans-Christian Egtvedt Committed by Takashi Iwai
Browse files

ALSA: Add ALSA driver for Atmel AC97 controller



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: default avatarHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e4967d60
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
/*
 * 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 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
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