blob: bf09a584b4431be5ac77a24982f57e77853c64cb [file] [log] [blame]
Takashi Iwaia02f5892016-11-10 17:07:49 +01001=================================
2Notes on Maya44 USB Audio Support
3=================================
Takashi Iwai72cbfd42009-05-06 17:33:19 +02004
Takashi Iwaia02f5892016-11-10 17:07:49 +01005.. note::
6 The following is the original document of Rainer's patch that the
7 current maya44 code based on. Some contents might be obsoleted, but I
8 keep here as reference -- tiwai
9
10Feb 14, 2008
11
12Rainer Zimmermann <mail@lightshed.de>
Takashi Iwai72cbfd42009-05-06 17:33:19 +020013
Takashi Iwaia02f5892016-11-10 17:07:49 +010014STATE OF DEVELOPMENT
15====================
Takashi Iwai72cbfd42009-05-06 17:33:19 +020016
17This driver is being developed on the initiative of Piotr Makowski (oponek@gmail.com) and financed by Lars Bergmann.
18Development is carried out by Rainer Zimmermann (mail@lightshed.de).
19
20ESI provided a sample Maya44 card for the development work.
21
22However, 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
24This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008).
25
26
27The following functions work, as tested by Rainer Zimmermann and Piotr Makowski:
28
29- playback and capture at all sampling rates
30- input/output level
31- crossmixing
32- line/mic switch
33- phantom power switch
34- analogue monitor a.k.a bypass
35
36
37The following functions *should* work, but are not fully tested:
38
39- Channel 3+4 analogue - S/PDIF input switching
40- S/PDIF output
41- all inputs/outputs on the M/IO/DIO extension card
42- internal/external clock selection
43
44
45*In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.*
46
47
48Things that do not seem to work:
49
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
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
54
Takashi Iwaia02f5892016-11-10 17:07:49 +010055DRIVER DETAILS
56==============
Takashi Iwai72cbfd42009-05-06 17:33:19 +020057
58the following files were added:
59
Takashi Iwaia02f5892016-11-10 17:07:49 +010060* pci/ice1724/maya44.c - Maya44 specific code
61* pci/ice1724/maya44.h
62* pci/ice1724/ice1724.patch
63* pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES)
64* i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs
65* include/wm8776.h
Takashi Iwai72cbfd42009-05-06 17:33:19 +020066
67
68Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure.
69This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately.
70
71
72the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree:
73
Takashi Iwaia02f5892016-11-10 17:07:49 +010074* wtm.h
75* vt1720_mobo.h
76* revo.h
77* prodigy192.h
78* pontis.h
79* phase.h
80* maya44.h
81* juli.h
82* aureon.h
83* amp.h
84* envy24ht.h
85* se.h
86* prodigy_hifi.h
Takashi Iwai72cbfd42009-05-06 17:33:19 +020087
88
89*I hope this is the correct way to do things.*
90
91
Takashi Iwaia02f5892016-11-10 17:07:49 +010092SAMPLING RATES
93==============
Takashi Iwai72cbfd42009-05-06 17:33:19 +020094
95The 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
97As the ICE1724 chip only allows one global sampling rate, this is handled as follows:
98
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
101* In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices.
102
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
105
106I 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
108The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712).
109
110
Takashi Iwaia02f5892016-11-10 17:07:49 +0100111SOUND DEVICES
112=============
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200113
114PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0):
115
Takashi Iwaia02f5892016-11-10 17:07:49 +0100116* hw:0,0 input - stereo, analog input 1+2
117* hw:0,0 output - stereo, analog output 1+2
118* hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input
119* hw:0,1 output - stereo, analog output 3+4 (and SPDIF out)
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200120
121
Takashi Iwaia02f5892016-11-10 17:07:49 +0100122NAMING OF MIXER CONTROLS
123========================
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200124
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
127
Takashi Iwaia02f5892016-11-10 17:07:49 +0100128PCM
129 (digital) output level for channel 1+2
130PCM 1
131 same for channel 3+4
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200132
Takashi Iwaia02f5892016-11-10 17:07:49 +0100133Mic Phantom+48V
134 switch for +48V phantom power for electrostatic microphones on input 1/2.
135
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200136 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 maya44 card.
138
Takashi Iwaia02f5892016-11-10 17:07:49 +0100139Mic/Line input
140 if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo).
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200141
Takashi Iwaia02f5892016-11-10 17:07:49 +0100142Bypass
143 analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver.
144Bypass 1
145 same for channel 3+4.
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200146
Takashi Iwaia02f5892016-11-10 17:07:49 +0100147Crossmix
148 cross-mixer from channels 1+2 to channels 3+4
149Crossmix 1
150 cross-mixer from channels 3+4 to channels 1+2
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200151
Takashi Iwaia02f5892016-11-10 17:07:49 +0100152IEC958 Output
153 switch for S/PDIF output.
154
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200155 This is not supported by the ESI windows driver.
156 S/PDIF should output the same signal as channel 3+4. [untested!]
157
158
Takashi Iwaia02f5892016-11-10 17:07:49 +0100159Digitial output selectors
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200160 These switches allow a direct digital routing from the ADCs to the DACs.
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 driver.
163 For normal operation, they should all be set to "PCM out".
164
Takashi Iwaia02f5892016-11-10 17:07:49 +0100165H/W
166 Output source channel 1
167H/W 1
168 Output source channel 2
169H/W 2
170 Output source channel 3
171H/W 3
172 Output source channel 4
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200173
Takashi Iwaia02f5892016-11-10 17:07:49 +0100174H/W 4 ... H/W 9
175 unknown function, left in to enable testing.
176
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200177 Possibly some of these control S/PDIF output(s).
178 If these turn out to be unused, they will go away in later driver versions.
179
180Selectable values for each of the digital output selectors are:
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200181
Takashi Iwaia02f5892016-11-10 17:07:49 +0100182PCM out
183 DAC output of the corresponding channel (default setting)
184Input 1 ... Input 4
185 direct routing from ADC output of the selected input channel
Takashi Iwai72cbfd42009-05-06 17:33:19 +0200186