Skip to content

Commit

Permalink
[ALSA] ALSA sound driver for the AT73C213 DAC using Atmel SSC driver
Browse files Browse the repository at this point in the history
This patch adds support for the AT73C213 DAC using the misc Atmel SSC driver in
I2S mode. The driver also requires a SPI to setup the registers and control
volume.
It has been tested with an AT32AP7000 on the ATSTK1000 development board. The
driver should also work with any Atmel device with an SSC module supported by
the Atmel SSC driver (atmel-ssc).
The atmel-ssc driver is just submitted to the Linux kernel. Please see mail
thread http://lkml.org/lkml/2007/7/16/32

Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
  • Loading branch information
Hans-Christian Egtvedt authored and perexg committed Oct 16, 2007
1 parent 3b0a899 commit eafe570
Show file tree
Hide file tree
Showing 5 changed files with 1,301 additions and 0 deletions.
25 changes: 25 additions & 0 deletions include/linux/spi/at73c213.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Board-specific data used to set up AT73c213 audio DAC driver.
*/

#ifndef __LINUX_SPI_AT73C213_H
#define __LINUX_SPI_AT73C213_H

/**
* at73c213_board_info - how the external DAC is wired to the device.
*
* @ssc_id: SSC platform_driver id the DAC shall use to stream the audio.
* @dac_clk: the external clock used to provide master clock to the DAC.
* @shortname: a short discription for the DAC, seen by userspace tools.
*
* This struct contains the configuration of the hardware connection to the
* external DAC. The DAC needs a master clock and a I2S audio stream. It also
* provides a name which is used to identify it in userspace tools.
*/
struct at73c213_board_info {
int ssc_id;
struct clk *dac_clk;
char shortname[32];
};

#endif /* __LINUX_SPI_AT73C213_H */
25 changes: 25 additions & 0 deletions sound/spi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,29 @@
menu "SPI devices"
depends on SND != n

config SND_AT73C213
tristate "Atmel AT73C213 DAC driver"
depends on ATMEL_SSC
select SND_PCM
help
Say Y here if you want to use the Atmel AT73C213 external DAC. This
DAC can be found on Atmel development boards.

This driver requires the Atmel SSC driver for sound sink, a
peripheral found on most AT91 and AVR32 microprocessors.

To compile this driver as a module, choose M here: the module will be
called snd-at73c213.

config SND_AT73C213_TARGET_BITRATE
int "Target bitrate for AT73C213"
depends on SND_AT73C213
default "48000"
range 8000 50000
help
Sets the target bitrate for the bitrate calculator in the driver.
Limited by hardware to be between 8000 Hz and 50000 Hz.

Set to 48000 Hz by default.

endmenu
3 changes: 3 additions & 0 deletions sound/spi/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# Makefile for SPI drivers

snd-at73c213-objs := at73c213.o

obj-$(CONFIG_SND_AT73C213) += snd-at73c213.o
Loading

0 comments on commit eafe570

Please sign in to comment.