linux/sound
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
..
arm [ALSA] semaphore -> mutex (Archs, misc buses) 2006-03-22 10:25:43 +01:00
core [ALSA] Fix / clean up PCM-OSS setup hooks 2006-03-31 17:58:59 +02:00
drivers [PATCH] pnp: mpu401: adjust pnp_register_driver signature 2006-03-27 08:44:53 -08:00
i2c [ALSA] ice1712 & cs8427 - fix problem for S/PDIF input setup 2006-03-22 10:28:15 +01:00
isa [ALSA] AdLib FM card driver 2006-03-31 17:58:59 +02:00
mips [ALSA] AMD Au1x00: AC'97 controller is memory mapped 2006-03-22 10:43:28 +01:00
oss Merge ../linux-2.6 2006-03-29 13:24:50 +11:00
parisc [ALSA] Remove xxx_t typedefs: PARISC Harmony 2006-01-03 12:20:09 +01:00
pci [ALSA] Add Aux input switch control for Aureon Universe 2006-03-31 17:59:01 +02:00
pcmcia [ALSA] Don't NULL check vfree argument in pdaudiocf_pcm.c 2006-03-22 10:31:45 +01:00
ppc [PATCH] powerpc: Kill _machine and hard-coded platform numbers 2006-03-28 23:15:54 +11:00
sparc BUG_ON() Conversion in sound/sparc/cs4231.c 2006-03-24 18:49:12 +01:00
synth [ALSA] semaphore -> mutex (driver part) 2006-03-22 10:24:57 +01:00
usb [ALSA] Test volume resolution of usb audio at initialization 2006-03-31 17:59:00 +02:00
Kconfig [ALSA] sound: align device drivers menus 2006-01-03 12:29:56 +01:00
last.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sound_core.c [PATCH] mark f_ops const in the inode 2006-03-28 09:16:05 -08:00
sound_firmware.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00