Note
The following is the original document of Rainer’s patch that the current maya44 code based on. Some contents might be obsoleted, but I keep here as reference – tiwai
Feb 14, 2008
Rainer Zimmermann <mail@lightshed.de>
This driver is being developed on the initiative of Piotr Makowski (oponek@gmail.com) and financed by Lars Bergmann. Development is carried out by Rainer Zimmermann (mail@lightshed.de).
ESI provided a sample Maya44 card for the development work.
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.
This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008).
The following functions work, as tested by Rainer Zimmermann and Piotr Makowski:
The following functions should work, but are not fully tested:
In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.
Things that do not seem to work:
the following files were added:
Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure. This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately.
the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree:
I hope this is the correct way to do things.
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.
As the ICE1724 chip only allows one global sampling rate, this is handled as follows:
AVOID CAPTURING AT RATES ABOVE 96kHz, even though it may appear to work. The codec cannot actually capture at such rates, meaning poor quality.
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.
The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712).
PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0):
(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).
switch for +48V phantom power for electrostatic microphones on input 1/2.
Make sure this is not turned on while any other source is connected to input 1/2. It might damage the source and/or the maya44 card.
switch for S/PDIF output.
This is not supported by the ESI windows driver. S/PDIF should output the same signal as channel 3+4. [untested!]
unknown function, left in to enable testing.
Possibly some of these control S/PDIF output(s). If these turn out to be unused, they will go away in later driver versions.
Selectable values for each of the digital output selectors are: