···11+NOTE: The following is the original document of Rainer's patch that the22+current maya44 code based on. Some contents might be obsoleted, but I33+keep here as reference -- tiwai44+55+----------------------------------------------------------------66+77+STATE OF DEVELOPMENT:88+99+This driver is being developed on the initiative of Piotr Makowski (oponek@gmail.com) and financed by Lars Bergmann.1010+Development is carried out by Rainer Zimmermann (mail@lightshed.de).1111+1212+ESI provided a sample Maya44 card for the development work.1313+1414+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.1515+1616+This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008).1717+1818+1919+The following functions work, as tested by Rainer Zimmermann and Piotr Makowski:2020+2121+- playback and capture at all sampling rates2222+- input/output level2323+- crossmixing2424+- line/mic switch2525+- phantom power switch2626+- analogue monitor a.k.a bypass2727+2828+2929+The following functions *should* work, but are not fully tested:3030+3131+- Channel 3+4 analogue - S/PDIF input switching3232+- S/PDIF output3333+- all inputs/outputs on the M/IO/DIO extension card3434+- internal/external clock selection3535+3636+3737+*In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.*3838+3939+4040+Things that do not seem to work:4141+4242+- 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).4343+4444+- Ardour 2.1 seems to work only via JACK, not using ALSA directly or via OSS. This still needs to be tracked down.4545+4646+4747+DRIVER DETAILS:4848+4949+the following files were added:5050+5151+pci/ice1724/maya44.c - Maya44 specific code5252+pci/ice1724/maya44.h5353+pci/ice1724/ice1724.patch5454+pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES)5555+i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs 5656+include/wm8776.h5757+5858+5959+Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure.6060+This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately.6161+6262+6363+the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree:6464+6565+wtm.h6666+vt1720_mobo.h6767+revo.h6868+prodigy192.h6969+pontis.h7070+phase.h7171+maya44.h7272+juli.h7373+aureon.h7474+amp.h7575+envy24ht.h7676+se.h7777+prodigy_hifi.h7878+7979+8080+*I hope this is the correct way to do things.*8181+8282+8383+SAMPLING RATES:8484+8585+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.8686+8787+As the ICE1724 chip only allows one global sampling rate, this is handled as follows:8888+8989+* 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.9090+9191+* In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices.9292+9393+*AVOID CAPTURING AT RATES ABOVE 96kHz*, even though it may appear to work. The codec cannot actually capture at such rates, meaning poor quality.9494+9595+9696+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.9797+9898+The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712).9999+100100+101101+SOUND DEVICES:102102+103103+PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0):104104+105105+hw:0,0 input - stereo, analog input 1+2106106+hw:0,0 output - stereo, analog output 1+2107107+hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input108108+hw:0,1 output - stereo, analog output 3+4 (and SPDIF out)109109+110110+111111+NAMING OF MIXER CONTROLS:112112+113113+(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).114114+115115+116116+PCM: (digital) output level for channel 1+2117117+PCM 1: same for channel 3+4118118+119119+Mic Phantom+48V: switch for +48V phantom power for electrostatic microphones on input 1/2.120120+ Make sure this is not turned on while any other source is connected to input 1/2.121121+ It might damage the source and/or the maya44 card.122122+123123+Mic/Line input: if switch is is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo).124124+125125+Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver.126126+Bypass 1: same for channel 3+4.127127+128128+Crossmix: cross-mixer from channels 1+2 to channels 3+4129129+Crossmix 1: cross-mixer from channels 3+4 to channels 1+2130130+131131+IEC958 Output: switch for S/PDIF output.132132+ This is not supported by the ESI windows driver.133133+ S/PDIF should output the same signal as channel 3+4. [untested!]134134+135135+136136+Digitial output selectors:137137+138138+ These switches allow a direct digital routing from the ADCs to the DACs.139139+ Each switch determines where the digital input data to one of the DACs comes from.140140+ They are not supported by the ESI windows driver.141141+ For normal operation, they should all be set to "PCM out".142142+143143+H/W: Output source channel 1144144+H/W 1: Output source channel 2145145+H/W 2: Output source channel 3146146+H/W 3: Output source channel 4147147+148148+H/W 4 ... H/W 9: unknown function, left in to enable testing.149149+ Possibly some of these control S/PDIF output(s).150150+ If these turn out to be unused, they will go away in later driver versions.151151+152152+Selectable values for each of the digital output selectors are:153153+ "PCM out" -> DAC output of the corresponding channel (default setting)154154+ "Input 1"...155155+ "Input 4" -> direct routing from ADC output of the selected input channel156156+157157+158158+--------159159+160160+Feb 14, 2008161161+Rainer Zimmermann162162+mail@lightshed.de163163+