1
linux/sound/soc
Janusz Krzysztofik 6d7f68a1ea ASoC: add support for Amstrad E3 (Delta) machine
This patch adds machine support for Amstrad E3 (Delta) videophone to ASoC.

Created and tested against linux-2.6.31-rc3.
Applies and works with linux-omap-2.6 commit
7c5cb7862d32cb344be7831d466535d5255e35ac as well.

Depends on:
1) latest version of the CX20442 codec driver that exposes v253_ops
   structure[1],
2) patch 2/3 form this series: TTY: Add definition of a new line
   discipline required by Amstrad E3 (Delta) ASoC driver[2].

CPU DAI parameters best matching the codec DAI has been selected out
empirically for best user experience.

Board specific audio function control (with related DAPM widgets) has been
modeled after empirically discovered codec capabilities.

Unlike other ASoC machine drivers, this one makes use of a codec provided line
discipline that is required for talking to a modem chip that can control the
codec behavoiur. As the line discipline operations must call board specific
bits as well, the machine driver registers its own line discipline ops, not
the codec provided, and then calls those codec provided from inside its own
callbacks.
If some kind of a glue, like a bus over a tty, exsited that could help in
runtime detection of a modem (bus adapter) over a more generic line discipline
(bus driver)[3], the line discipline code could be probably designed in a
more generic way.

In order to work at all, this driver requires a working McBSP1. On OMAP1510
based machines (not sure if other OMAP1 variants as well), where McBSP1 is a
DSP public peripheral, that means the kernel must provide basic DSP support,
ie. omap_dsp_init(), in order to power up the DSP. This used to be included in
linux-omap-2.6 tree up to commit 2512fd29db4eb09e82d182596304c7aaf76d2c5c.
Without that, the driver would not work, ie. not shift in/out any bits over
the CPU DAI[4]. This limitation is not board, but CPU specific, and may apply
to other code that makes use of McBSP1/McBSP3 on affected machines. I provide
an extra patch (4/3) as a temporary solution.

To work correctly in playback mode, this driver requires my prevoiusly
submitted patch that corrects pcm pointer calculation for OMAP1510 based
machines[5] (already included in linux-2.6.31-rc3).

To support codec controls, this driver requires my previously submitted patch
that adds support for modem found on Amstrad Delta[6].

[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2009-July/019780.html
[2] http://www.spinics.net/lists/linux-serial/msg01862.html
[3] http://www.spinics.net/lists/linux-serial/msg01856.html
[4] http://www.spinics.net/lists/linux-omap/msg15114.html
[5] http://mailman.alsa-project.org/pipermail/alsa-devel/2009-June/018950.html
[6] http://www.spinics.net/lists/linux-omap/msg15432.html

Credits to:
Mark Underwood - for his initial, omap-alsa based sound driver for
this machine,
Mark Brown - for his help, patience and excellent subsytem maintainer support.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-07-31 22:38:44 +01:00
..
atmel ASoC: Configure WM8731 SYSCLK at startup on AT91SAM9G20-EK 2009-07-08 18:41:05 +01:00
au1x ALSA: Add missing SNDRV_PCM_INFO_BATCH flag to some drivers 2009-04-28 15:06:44 +02:00
blackfin ASoC: Fix checkpatch issues and typos of ad1938 codec and bf5xx-tdm dai 2009-07-29 21:31:53 +01:00
codecs ASoC: CX20442: push down machine independent line discipline bits 2009-07-31 22:38:44 +01:00
davinci ASoC: davinci: don't use clock names 2009-07-16 10:59:52 +01:00
fsl ASoC: MPC5200: Increase the delay time between resets 2009-07-22 00:07:51 +01:00
omap ASoC: add support for Amstrad E3 (Delta) machine 2009-07-31 22:38:44 +01:00
pxa ASoC: Switch palm27x-asoc to jack detection api 2009-07-24 11:29:03 +01:00
s3c24xx Merge branch 'gta02-audio' into for-2.6.32 2009-07-30 13:21:38 +01:00
s6000 ASoC: correct s6000 I2S clock polarity 2009-04-06 11:18:39 +01:00
sh ASoC: correct print specifiers for unsigneds 2009-05-28 10:20:26 +01:00
txx9 ASoC: txx9aclc: dynamically allocate dmaengine devname 2009-06-25 21:06:30 +01:00
Kconfig ASoC: Add TXx9 AC link controller driver (v3) 2009-05-19 19:54:28 +01:00
Makefile ASoC: Add TXx9 AC link controller driver (v3) 2009-05-19 19:54:28 +01:00
soc-core.c ASoC: Allow CODECs to flag invalid registers 2009-07-31 18:54:48 +01:00
soc-dapm.c ASoC: fix checking for external widgets bug 2009-07-13 23:01:29 +01:00
soc-jack.c ASoC: jack: Fix race in snd_soc_jack_add_gpios 2009-07-31 22:38:43 +01:00