About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / sound / alsa / README.maya44


Based on kernel version 4.9. Page generated on 2016-12-21 14:37 EST.

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


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog