1 ================================= 1 ================================= 2 Notes on Maya44 USB Audio Support 2 Notes on Maya44 USB Audio Support 3 ================================= 3 ================================= 4 4 5 .. note:: 5 .. note:: 6 The following is the original document of R 6 The following is the original document of Rainer's patch that the 7 current maya44 code based on. Some content 7 current maya44 code based on. Some contents might be obsoleted, but I 8 keep here as reference -- tiwai 8 keep here as reference -- tiwai 9 9 10 Feb 14, 2008 10 Feb 14, 2008 11 11 12 Rainer Zimmermann <mail@lightshed.de> 12 Rainer Zimmermann <mail@lightshed.de> 13 13 14 STATE OF DEVELOPMENT 14 STATE OF DEVELOPMENT 15 ==================== 15 ==================== 16 16 17 This driver is being developed on the initiati 17 This driver is being developed on the initiative of Piotr Makowski (oponek@gmail.com) and financed by Lars Bergmann. 18 Development is carried out by Rainer Zimmerman 18 Development is carried out by Rainer Zimmermann (mail@lightshed.de). 19 19 20 ESI provided a sample Maya44 card for the deve 20 ESI provided a sample Maya44 card for the development work. 21 21 22 However, unfortunately it has turned out diffi 22 However, unfortunately it has turned out difficult to get detailed programming information, so I (Rainer Zimmermann) had to find out some card-specific information by experiment and conjecture. Some information (in particular, several GPIO bits) is still missing. 23 23 24 This is the first testing version of the Maya4 24 This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008). 25 25 26 26 27 The following functions work, as tested by Rai 27 The following functions work, as tested by Rainer Zimmermann and Piotr Makowski: 28 28 29 - playback and capture at all sampling rates 29 - playback and capture at all sampling rates 30 - input/output level 30 - input/output level 31 - crossmixing 31 - crossmixing 32 - line/mic switch 32 - line/mic switch 33 - phantom power switch 33 - phantom power switch 34 - analogue monitor a.k.a bypass 34 - analogue monitor a.k.a bypass 35 35 36 36 37 The following functions *should* work, but are 37 The following functions *should* work, but are not fully tested: 38 38 39 - Channel 3+4 analogue - S/PDIF input switchin 39 - Channel 3+4 analogue - S/PDIF input switching 40 - S/PDIF output 40 - S/PDIF output 41 - all inputs/outputs on the M/IO/DIO extension 41 - all inputs/outputs on the M/IO/DIO extension card 42 - internal/external clock selection 42 - internal/external clock selection 43 43 44 44 45 *In particular, we would appreciate testing of 45 *In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.* 46 46 47 47 48 Things that do not seem to work: 48 Things that do not seem to work: 49 49 50 - The level meters ("multi track") in 'alsamix 50 - The level meters ("multi track") in 'alsamixer' do not seem to react to signals in (if this is a bug, it would probably be in the existing ICE1724 code). 51 51 52 - Ardour 2.1 seems to work only via JACK, not 52 - Ardour 2.1 seems to work only via JACK, not using ALSA directly or via OSS. This still needs to be tracked down. 53 53 54 54 55 DRIVER DETAILS 55 DRIVER DETAILS 56 ============== 56 ============== 57 57 58 the following files were added: 58 the following files were added: 59 59 60 * pci/ice1724/maya44.c - Maya44 specific code 60 * pci/ice1724/maya44.c - Maya44 specific code 61 * pci/ice1724/maya44.h 61 * pci/ice1724/maya44.h 62 * pci/ice1724/ice1724.patch 62 * pci/ice1724/ice1724.patch 63 * pci/ice1724/ice1724.h.patch - PROPOSED patch 63 * pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES) 64 * i2c/other/wm8776.c - low-level access routin 64 * i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs 65 * include/wm8776.h 65 * include/wm8776.h 66 66 67 67 68 Note that the wm8776.c code is meant to be car 68 Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure. 69 This is done in maya44.c, mainly because some 69 This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately. 70 70 71 71 72 the following files were created in pci/ice172 72 the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree: 73 73 74 * wtm.h 74 * wtm.h 75 * vt1720_mobo.h 75 * vt1720_mobo.h 76 * revo.h 76 * revo.h 77 * prodigy192.h 77 * prodigy192.h 78 * pontis.h 78 * pontis.h 79 * phase.h 79 * phase.h 80 * maya44.h 80 * maya44.h 81 * juli.h 81 * juli.h 82 * aureon.h 82 * aureon.h 83 * amp.h 83 * amp.h 84 * envy24ht.h 84 * envy24ht.h 85 * se.h 85 * se.h 86 * prodigy_hifi.h 86 * prodigy_hifi.h 87 87 88 88 89 *I hope this is the correct way to do things.* 89 *I hope this is the correct way to do things.* 90 90 91 91 92 SAMPLING RATES 92 SAMPLING RATES 93 ============== 93 ============== 94 94 95 The Maya44 card (or more exactly, the Wolfson 95 The Maya44 card (or more exactly, the Wolfson WM8776 codecs) allow a maximum sampling rate of 192 kHz for playback and 92 kHz for capture. 96 96 97 As the ICE1724 chip only allows one global sam 97 As the ICE1724 chip only allows one global sampling rate, this is handled as follows: 98 98 99 * setting the sampling rate on any open PCM de 99 * setting the sampling rate on any open PCM device on the maya44 card will always set the *global* sampling rate for all playback and capture channels. 100 100 101 * In the current state of the driver, setting 101 * In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices. 102 102 103 *AVOID CAPTURING AT RATES ABOVE 96kHz*, even t 103 *AVOID CAPTURING AT RATES ABOVE 96kHz*, even though it may appear to work. The codec cannot actually capture at such rates, meaning poor quality. 104 104 105 105 106 I propose some additional code for limiting th 106 I propose some additional code for limiting the sampling rate when setting on a capture pcm device. However because of the global sampling rate, this logic would be somewhat problematic. 107 107 108 The proposed code (currently deactivated) is i 108 The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712). 109 109 110 110 111 SOUND DEVICES 111 SOUND DEVICES 112 ============= 112 ============= 113 113 114 PCM devices correspond to inputs/outputs as fo 114 PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0): 115 115 116 * hw:0,0 input - stereo, analog input 1+2 116 * hw:0,0 input - stereo, analog input 1+2 117 * hw:0,0 output - stereo, analog output 1+2 117 * hw:0,0 output - stereo, analog output 1+2 118 * hw:0,1 input - stereo, analog input 3+4 OR S 118 * hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input 119 * hw:0,1 output - stereo, analog output 3+4 (a 119 * hw:0,1 output - stereo, analog output 3+4 (and SPDIF out) 120 120 121 121 122 NAMING OF MIXER CONTROLS 122 NAMING OF MIXER CONTROLS 123 ======================== 123 ======================== 124 124 125 (for more information about the signal flow, p 125 (for more information about the signal flow, please refer to the block diagram on p.24 of the ESI Maya44 manual, or in the ESI windows software). 126 126 127 127 128 PCM 128 PCM 129 (digital) output level for channel 1+2 129 (digital) output level for channel 1+2 130 PCM 1 130 PCM 1 131 same for channel 3+4 131 same for channel 3+4 132 132 133 Mic Phantom+48V 133 Mic Phantom+48V 134 switch for +48V phantom power for electros 134 switch for +48V phantom power for electrostatic microphones on input 1/2. 135 135 136 Make sure this is not turned on while any 136 Make sure this is not turned on while any other source is connected to input 1/2. 137 It might damage the source and/or the maya 137 It might damage the source and/or the maya44 card. 138 138 139 Mic/Line input 139 Mic/Line input 140 if switch is on, input jack 1/2 is microph 140 if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo). 141 141 142 Bypass 142 Bypass 143 analogue bypass from ADC input to output f 143 analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver. 144 Bypass 1 144 Bypass 1 145 same for channel 3+4. 145 same for channel 3+4. 146 146 147 Crossmix 147 Crossmix 148 cross-mixer from channels 1+2 to channels 148 cross-mixer from channels 1+2 to channels 3+4 149 Crossmix 1 149 Crossmix 1 150 cross-mixer from channels 3+4 to channels 150 cross-mixer from channels 3+4 to channels 1+2 151 151 152 IEC958 Output 152 IEC958 Output 153 switch for S/PDIF output. 153 switch for S/PDIF output. 154 154 155 This is not supported by the ESI windows d 155 This is not supported by the ESI windows driver. 156 S/PDIF should output the same signal as ch 156 S/PDIF should output the same signal as channel 3+4. [untested!] 157 157 158 158 159 Digital output selectors 159 Digital output selectors 160 These switches allow a direct digital rout 160 These switches allow a direct digital routing from the ADCs to the DACs. 161 Each switch determines where the digital i 161 Each switch determines where the digital input data to one of the DACs comes from. 162 They are not supported by the ESI windows 162 They are not supported by the ESI windows driver. 163 For normal operation, they should all be s 163 For normal operation, they should all be set to "PCM out". 164 164 165 H/W 165 H/W 166 Output source channel 1 166 Output source channel 1 167 H/W 1 167 H/W 1 168 Output source channel 2 168 Output source channel 2 169 H/W 2 169 H/W 2 170 Output source channel 3 170 Output source channel 3 171 H/W 3 171 H/W 3 172 Output source channel 4 172 Output source channel 4 173 173 174 H/W 4 ... H/W 9 174 H/W 4 ... H/W 9 175 unknown function, left in to enable testin 175 unknown function, left in to enable testing. 176 176 177 Possibly some of these control S/PDIF outp 177 Possibly some of these control S/PDIF output(s). 178 If these turn out to be unused, they will 178 If these turn out to be unused, they will go away in later driver versions. 179 179 180 Selectable values for each of the digital outp 180 Selectable values for each of the digital output selectors are: 181 181 182 PCM out 182 PCM out 183 DAC output of the corresponding channe 183 DAC output of the corresponding channel (default setting) 184 Input 1 ... Input 4 184 Input 1 ... Input 4 185 direct routing from ADC output of the 185 direct routing from ADC output of the selected input channel 186 186
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.