• Maximilian Rehkopf's avatar
    [ALSA] Add Aux input switch control for Aureon Universe · af9b70ac
    Maximilian Rehkopf authored
    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.pdfSigned-off-by: default avatarMaximilian Rehkopf <otakon@gmx.net>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    af9b70ac
aureon.c 58.3 KB