Welcome to AVR32 Linux... Users Groups

AtmelAc97cDriver

The AC97C ALSA sound driver was submitted for the initial review to the ALSA developmen list, see this email thread http://mailman.alsa-project.org/pipermail/alsa-devel/2009-February/014500.html This mean however that you need to be working on a Linux kernel version 2.6.29-rc3 or later, and have patches for DW DMAC cyclic DMA API which can be grabbed from http://avr32linux.org/archives/kernel/2009-February/002088.html + http://avr32linux.org/archives/kernel/2009-February/002087.html

The driver works against any AC97 codec which follows the AC97 standard, interfacing them is also quite easy. Remember that it is the external AC97 codec which provides the clock signal.

How to enable it

Board code

You need to add a small snippet of board code to add the platform device for you board. This could be something like the following:

#include <sound/atmel-ac97c.h>
static struct ac97c_platform_data __initdata ac97c0_data = {
   .reset_pin = GPIO_PIN_PB(19),
};

And then later in the postcore_initcall(...) add:

at32_add_device_ac97c(0, &ac97c0_data, AC97C_BOTH);

See the file include/sound/atmel-ac97c.h for more information about the struct ac97c_platform_data and flags passed to the machine code.

Select the driver in the kernel config

In menuconfig the driver is located in

Device Drivers  --->
  Sound card support  --->
    Advanced Linux Sound Architecture  --->
      AVR32 devices  --->
        Atmel AVR32 AC97 Controller Driver

After selecting it as builtin or module do a compile and install to target. When the driver probes it will examine which features are available in the external codec and setup mixer, playback and capture accordingly.

r3 - 2009-02-04 - 12:24:43 - HansChristianEgtvedt
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Atmel®, AVR® and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries.
All other trademarks are the property of their respective owners.
Syndicate this site RSSATOM