aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ice1712/phase.c
diff options
context:
space:
mode:
authorVedran Miletic <rivanvx@gmail.com>2008-08-29 12:31:13 -0400
committerJaroslav Kysela <perex@perex.cz>2008-09-04 04:25:03 -0400
commiteee75a6ca77a729c26258649abe992c15a6c76f6 (patch)
tree5b6af475f8f07e4567733cbb3e1e89875fd88201 /sound/pci/ice1712/phase.c
parentc1805dddc9fbd65e831963f671bfb79384e8b3b8 (diff)
ALSA: ice1724: Enable MIDI on TerraTec PHASE 22 and PHASE 28
Even though MIDI was fixed on ice1724 chips a while ago, it wasn't yet enabled for some cards as it didn't get enough testing. This was tested with MIDI keyboard on PHASE 22 and with looping back output to input and it works stable, so it's safe to enable it. Besides this, there are some more minor fixes, not exactly user visible: * added info about PHASE 28 (collected, as I don't have a card) * added info about TS22PCI and new revisions of PHASE 22 * disable 192k on PHASE 22 as AK4524 I2S doesn't support it * enable SPDIF reciever on PHASE 22 Signed-off-by: Vedran Miletic <rivanvx@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/ice1712/phase.c')
-rw-r--r--sound/pci/ice1712/phase.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c
index f5acdeef4438..6a614729280f 100644
--- a/sound/pci/ice1712/phase.c
+++ b/sound/pci/ice1712/phase.c
@@ -22,15 +22,24 @@
22 */ 22 */
23 23
24/* PHASE 22 overview: 24/* PHASE 22 overview:
25 * Audio controller: VIA Envy24HT-S (slightly trimmed down version of Envy24HT) 25 * Audio controller: VIA Envy24HT-S (slightly trimmed down Envy24HT, 4in/4out)
26 * Analog chip: AK4524 (partially via Philip's 74HCT125) 26 * Analog chip: AK4524 (partially via Philip's 74HCT125)
27 * Digital receiver: CS8414-CS (not supported in this release) 27 * Digital receiver: CS8414-CS (supported in this release)
28 * PHASE 22 revision 2.0 and Terrasoniq/Musonik TS22PCI have CS8416
29 * (support status unknown, please test and report)
28 * 30 *
29 * Envy connects to AK4524 31 * Envy connects to AK4524
30 * - CS directly from GPIO 10 32 * - CS directly from GPIO 10
31 * - CCLK via 74HCT125's gate #4 from GPIO 4 33 * - CCLK via 74HCT125's gate #4 from GPIO 4
32 * - CDTI via 74HCT125's gate #2 from GPIO 5 34 * - CDTI via 74HCT125's gate #2 from GPIO 5
33 * CDTI may be completely blocked by 74HCT125's gate #1 controlled by GPIO 3 35 * CDTI may be completely blocked by 74HCT125's gate #1
36 * controlled by GPIO 3
37 */
38
39/* PHASE 28 overview:
40 * Audio controller: VIA Envy24HT (full untrimmed version, 8in/8out)
41 * Analog chip: WM8770 (8 channel 192k DAC, 2 channel 96k ADC)
42 * Digital receiver: CS8414-CS (supported in this release)
34 */ 43 */
35 44
36#include <asm/io.h> 45#include <asm/io.h>
@@ -161,9 +170,10 @@ static int __devinit phase22_add_controls(struct snd_ice1712 *ice)
161} 170}
162 171
163static unsigned char phase22_eeprom[] __devinitdata = { 172static unsigned char phase22_eeprom[] __devinitdata = {
164 [ICE_EEP2_SYSCONF] = 0x00, /* 1xADC, 1xDACs */ 173 [ICE_EEP2_SYSCONF] = 0x28, /* clock 512, mpu 401,
174 spdif-in/1xADC, 1xDACs */
165 [ICE_EEP2_ACLINK] = 0x80, /* I2S */ 175 [ICE_EEP2_ACLINK] = 0x80, /* I2S */
166 [ICE_EEP2_I2S] = 0xf8, /* vol, 96k, 24bit */ 176 [ICE_EEP2_I2S] = 0xf0, /* vol, 96k, 24bit */
167 [ICE_EEP2_SPDIF] = 0xc3, /* out-en, out-int, spdif-in */ 177 [ICE_EEP2_SPDIF] = 0xc3, /* out-en, out-int, spdif-in */
168 [ICE_EEP2_GPIO_DIR] = 0xff, 178 [ICE_EEP2_GPIO_DIR] = 0xff,
169 [ICE_EEP2_GPIO_DIR1] = 0xff, 179 [ICE_EEP2_GPIO_DIR1] = 0xff,
@@ -177,7 +187,8 @@ static unsigned char phase22_eeprom[] __devinitdata = {
177}; 187};
178 188
179static unsigned char phase28_eeprom[] __devinitdata = { 189static unsigned char phase28_eeprom[] __devinitdata = {
180 [ICE_EEP2_SYSCONF] = 0x0b, /* clock 512, spdif-in/ADC, 4DACs */ 190 [ICE_EEP2_SYSCONF] = 0x2b, /* clock 512, mpu401,
191 spdif-in/1xADC, 4xDACs */
181 [ICE_EEP2_ACLINK] = 0x80, /* I2S */ 192 [ICE_EEP2_ACLINK] = 0x80, /* I2S */
182 [ICE_EEP2_I2S] = 0xfc, /* vol, 96k, 24bit, 192k */ 193 [ICE_EEP2_I2S] = 0xfc, /* vol, 96k, 24bit, 192k */
183 [ICE_EEP2_SPDIF] = 0xc3, /* out-en, out-int, spdif-in */ 194 [ICE_EEP2_SPDIF] = 0xc3, /* out-en, out-int, spdif-in */