123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- 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
- ----------------------------------------------------------------
-
- STATE OF DEVELOPMENT:
- 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:
- - playback and capture at all sampling rates
- - input/output level
- - crossmixing
- - line/mic switch
- - phantom power switch
- - analogue monitor a.k.a bypass
- The following functions *should* work, but are not fully tested:
- - Channel 3+4 analogue - S/PDIF input switching
- - S/PDIF output
- - all inputs/outputs on the M/IO/DIO extension card
- - internal/external clock selection
- *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 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).
- - Ardour 2.1 seems to work only via JACK, not using ALSA directly or via OSS. This still needs to be tracked down.
- DRIVER DETAILS:
- the following files were added:
- pci/ice1724/maya44.c - Maya44 specific code
- pci/ice1724/maya44.h
- pci/ice1724/ice1724.patch
- pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES)
- i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs
- include/wm8776.h
- 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:
- wtm.h
- vt1720_mobo.h
- revo.h
- prodigy192.h
- pontis.h
- phase.h
- maya44.h
- juli.h
- aureon.h
- amp.h
- envy24ht.h
- se.h
- prodigy_hifi.h
- *I hope this is the correct way to do things.*
- SAMPLING RATES:
- 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:
- * 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.
- * In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices.
- *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).
- SOUND DEVICES:
- PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0):
- hw:0,0 input - stereo, analog input 1+2
- hw:0,0 output - stereo, analog output 1+2
- hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input
- hw:0,1 output - stereo, analog output 3+4 (and SPDIF out)
- NAMING OF MIXER CONTROLS:
- (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).
- PCM: (digital) output level for channel 1+2
- PCM 1: same for channel 3+4
- Mic Phantom+48V: 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.
- Mic/Line input: if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo).
- Bypass: analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver.
- Bypass 1: same for channel 3+4.
- Crossmix: cross-mixer from channels 1+2 to channels 3+4
- Crossmix 1: cross-mixer from channels 3+4 to channels 1+2
- IEC958 Output: 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!]
- Digitial output selectors:
- These switches allow a direct digital routing from the ADCs to the DACs.
- Each switch determines where the digital input data to one of the DACs comes from.
- They are not supported by the ESI windows driver.
- For normal operation, they should all be set to "PCM out".
- H/W: Output source channel 1
- H/W 1: Output source channel 2
- H/W 2: Output source channel 3
- H/W 3: Output source channel 4
- H/W 4 ... H/W 9: 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:
- "PCM out" -> DAC output of the corresponding channel (default setting)
- "Input 1"...
- "Input 4" -> direct routing from ADC output of the selected input channel
- --------
- Feb 14, 2008
- Rainer Zimmermann
- mail@lightshed.de
|