linux-sg2042/sound/pci
Maximilian Rehkopf af9b70ac00 [ALSA] Add Aux input switch control for Aureon Universe
This patch adds a mixer control which allows the user to switch the Aux
playback between the internal Aux jack, Wavetable, and Rear Line-In on
Aureon Universe cards.

For switching, a PCA9554 (8-line GPIO with I2C interface) and a 74HC4052
(dual 4-way mux/demux) are used.  Output 0 and 1 of the PCA9554 are
connected to the select pins of the 74HC4052. The I2C interface of the
PCA9554 is connected to the card's internal SPI bus which is also used
to control the WM8770 and CS8415. SPI and I2C on the same lines...

To communicate with the PCA9554 the WM8770 and CS8415 are disabled and
an I2C Stop Condition is generated before the Start Condition (needed
for synchronisation because other SPI traffic appear to confuse the
PCA9554). Then a normal I2C data transfer takes place.  Programming must
be done ridiculously slow; in theory, 4.7us is the minimum delay time
for normal-speed I2C according to the datasheet, but even with 10us
switching was unreliable.  The Windows driver from Terratec does the
programming very slowly, too (checked with an oscilloscope).

PCA9554 datasheet:
http://www.semiconductors.philips.com/acrobat/datasheets/PCA9554_9554A_6.pdf

74HC4052 datasheet:
http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT4052_4.pdf

Signed-off-by: Maximilian Rehkopf <otakon@gmx.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
..
ac97 [ALSA] ac97 - Clean up obsolete workarounds 2006-03-22 10:38:53 +01:00
ali5451 [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
au88x0 [ALSA] au88x0 - Fix structs for equalizer 2006-03-22 10:24:35 +01:00
ca0106 [ALSA] snd-ca0106: Fixed ALSA bug#1600 2006-01-22 16:23:58 +01:00
cs46xx [ALSA] fix some memory leaks 2006-03-22 10:38:23 +01:00
cs5535audio [ALSA] CS5535: shorter delays when accessing AC'97 codec registers 2006-03-22 10:34:45 +01:00
emu10k1 [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
hda [ALSA] sound/pci/hda: use create_singlethread_workqueue() 2006-03-31 17:59:01 +02:00
ice1712 [ALSA] Add Aux input switch control for Aureon Universe 2006-03-31 17:59:01 +02:00
korg1212 [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
mixart [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
nm256 [ALSA] Fix NM256 hard lock up 2006-03-22 10:38:50 +01:00
pcxhr [ALSA] pcxhr - Fix the crash with REV01 board 2006-03-31 17:59:01 +02:00
riptide [ALSA] Remove obsolete kfree_nocheck call 2006-03-31 17:58:58 +02:00
rme9652 [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
trident [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
vx222 [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
ymfpci [ALSA] ymfpci - make rear channel swap optional 2006-03-22 10:26:21 +01:00
Kconfig [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards 2006-03-31 17:58:58 +02:00
Makefile [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards 2006-03-31 17:58:58 +02:00
ad1889.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
ad1889.h [ALSA] ad1889: add AD1889 driver 2005-09-12 10:40:17 +02:00
als300.c [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards 2006-03-31 17:58:58 +02:00
als4000.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
atiixp.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
atiixp_modem.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
azt3328.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
azt3328.h [ALSA] AZT3328 driver update 2005-11-04 13:20:18 +01:00
bt87x.c [ALSA] bt87x: add more DVB card IDs 2006-03-22 10:37:10 +01:00
cmipci.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
cs4281.c [ALSA] cs4281 - Fix the check of timeout in probe 2006-03-31 17:59:00 +02:00
ens1370.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
ens1371.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
es1938.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
es1968.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
fm801.c [ALSA] fm801 - Add PM support 2006-01-03 12:27:59 +01:00
intel8x0.c [ALSA] intel8x0 - wait for ICH_RESETREGS 2006-03-22 10:29:29 +01:00
intel8x0m.c [ALSA] Optimize for config without PROC_FS (pci drivers) 2006-01-03 12:30:08 +01:00
maestro3.c [ALSA] maestro3.c: fix BUG, optimization 2006-03-31 17:59:00 +02:00
rme32.c [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
rme96.c [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
sonicvibes.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
via82xx.c [ALSA] via82xx - Add dxs entry for EPoX EP-8KRAI 2006-03-31 17:58:56 +02:00
via82xx_modem.c [ALSA] via82xx - Fix PM support 2006-01-03 12:27:48 +01:00