[alsa-devel] Writing an AT91SAM9260-EK Dumb Codec Driver
pkavan at gmail.com
Fri Jun 15 23:06:18 CEST 2007
It's probably going to be easier in the long run to copy your driver
> code to linux/sound/soc/at91 and then add an entry for your driver in
> the linux/sound/soc/at91/ Makefile & Kconfig
> e.g. for Kconfig
> config SND_AT91_SOC_ETI_B1_WM8731
> tristate "SoC Audio support for WM8731-based Endrelia ETI-B1
> depends on SND_AT91_SOC && (MACH_ETI_B1 || MACH_ETI_C1)
> select SND_AT91_SOC_SSC
> select SND_SOC_WM8731
> Say Y if you want to add support for SoC audio on WM8731-based
> Endrelia Technologies Inc ETI-B1 or ETI-C1 boards.
> This can then tell the build system (via the select keyword above) that
> your board driver depends on the AT91 platform driver and your codec.
Thanks for the tips. I have rewritten my Kconfig file so that it looks like
tristate "SoC Audio for the Atmel AT91 System-on-Chip"
depends on ARCH_AT91 && SND_SOC
Say Y or M if you want to add support for codecs attached to
the AT91 SSC interface. You will also need
to select the audio interfaces to support below.
tristate "SoC Audio support for at91sam9260ek boards with W6811 codec"
depends on SND_AT91_SOC && MACH_AT91SAM9260EK
Say Y if you want to add support for SoC audio on AT91SAM9260EK boards
with a W6811 codec.
bool "Run codec in slave Mode on AT91SAM9260EK"
depends on SND_AT91_SOC_AT91SAM9260EK_W6811
Say Y if you want to run with the AT91 SSC generating the BCLK
and LRC signals.
...and my Makefile so that it looks like this:
# AT91 Platform Support
snd-soc-at91-objs := at91-pcm.o
snd-soc-at91-ssc-objs := at91-ssc.o
obj-$(CONFIG_SND_AT91_SOC) += snd-soc-at91.o
obj-$(CONFIG_SND_AT91_SOC_SSC) += snd-soc-at91-ssc.o
# AT91 Machine Support
snd-soc-at91sam9260ek-w6811-objs := at91sam9260ek-w6811.o
obj-$(CONFIG_SND_AT91_SOC_ETI_B1_WM8731) += snd-soc-at91sam9260ek-w6811.o
...and I renamed the source to reflect what I think you have done. The
source now lives in /linux- 2.6.22-rc1/sound/soc/at91/. I did a make clean
and a at91sam9260ek_defconfig. Then in menuconfig my new option comes up.
I have selected it and then compiled the kernel. Now, when I go to boot the
board with 2.6.22-rc1 I get:
## Booting image at 22100000 ...
Image Name: Linux-2.6.22-rc1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1068884 Bytes = 1 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Starting kernel ...
and it hangs here, which is probably more related to the kernel than to my
new config stuff. I will have to solve this so I can see what I get when the
system fully boots.
Anything above that you see as an obvious error?
More information about the Alsa-devel