summaryrefslogtreecommitdiffstats
path: root/configs/tinyucm.conf
blob: a74ae02f8b52a578d20499267ecc769f1d857e3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
// Controls that can be set once at system startup.  As the WM8994/WM1811
// outputs don't conflict with each other we set up most of our routing
// statically at system startup.

//NOTICE
//default gain & tinyucm file are in libaudio folder.
//If you want to have vendor specific configuration files, put the files in device/*product*/
//Use tinyucm.conf and default_gain.conf in target device

// We need to do symmetric rates so fix the hardware at 44.1kHz and
// resample.
InputRate 44100
OutputRate 44100
PlaybackLink 0
CaptureLink 0
BasebandLink 1
BluetoothLink 2

//Modifier File
ModifierFile "default_gain.conf"

INOUT_MAP {
	{ "Speaker", "Builtin Mic" },
	{ "Headset Out", "Headset In" },
	{ "Headphone", "Builtin Mic" },
	{ "SCO Headset Out", "SCO Headset In" },
	{ "SCO", "SCO Headset In" },
}

INPUT_CHANNEL_MAP {
	{ "Builtin Mic", "Right" },
	{ "Headset In", "Right" },
	{ "SCO Headset In", "Left" },
}

Core {
//general
	{ "IN1L ZC Switch", 0 },
	{ "IN1R ZC Switch", 0 },
	{ "IN2L ZC Switch", 0 },
	{ "IN2R ZC Switch", 0 },
	{ "Output ZC Switch", 0 },
	{ "Speaker ZC Switch", 0 },
	{ "Headphone ZC Switch", 0 },

// AIF1->DAC1
	{ "DAC1L Mixer AIF1.1 Switch", 1 },
	{ "DAC1R Mixer AIF1.1 Switch", 1 },
	{ "DAC1 Switch", 1 },

// AIF2->DAC1
//	{ "DAC1L Mixer AIF2 Switch", 1 },
//	{ "DAC1R Mixer AIF2 Switch", 1 },

// ADC->AIF2
	{ "AIF2DAC2L Mixer Left Sidetone Switch", 1 },
	{ "AIF2DAC2L Mixer Right Sidetone Switch", 0 },
	{ "AIF2DAC2R Mixer Left Sidetone Switch", 0 },
	{ "AIF2DAC2R Mixer Right Sidetone Switch", 1 },
	{ "DAC2 Left Sidetone Volume", 12 },
	{ "DAC2 Right Sidetone Volume", 12 },
	{ "DAC2 Switch", 1 },

// DAC1->HP
	{ "Left Headphone Mux", "DAC" },
	{ "Right Headphone Mux", "DAC" },

// DAC1->SPKL/R->SPKL/R Boost->SPK
	{ "SPKL DAC1 Switch", 1 },
	{ "SPKR DAC1 Switch", 1 },
	{ "SPKL Boost SPKL Switch", 1 },
	{ "SPKL Boost SPKR Switch", 0 },
	{ "SPKR Boost SPKL Switch", 0 },
	{ "SPKR Boost SPKR Switch", 1 },
	{ "Speaker Mixer Volume", 3 },

// DAC->Output mixer->Earpiece
	{ "Left Output Mixer DAC Switch", 1 },
	{ "Right Output Mixer DAC Switch", 1 },
	{ "Earpiece Mixer Left Output Switch", 1 },
	{ "Earpiece Mixer Right Output Switch", 1 },
	{ "Earpiece Switch", 1 },
	{ "LINEOUT1N Mixer Right Output Switch", 1 },
	{ "LINEOUT1P Mixer Left Output Switch", 1 },

// Main Mic->IN1LP/N->Input Mixer with +30dB at mixer
	{ "IN1L PGA IN1LP Switch", 1 },
	{ "IN1L PGA IN1LN Switch", 1 },
	{ "MIXINL IN1L Volume", 1 },
	{ "IN1L Switch", 1 },

// Sub Mic->IN2RP/N->Input Mixer with +30dB at mixer
	{ "IN2R PGA IN2RP Switch", 1 },
	{ "IN2R PGA IN2RN Switch", 1 },
	{ "MIXINR IN2R Volume", 1 },
	{ "IN2R Switch", 1 },

// Ear Mic->IN1RP/N->Input Mixer with +30dB at mixer
	{ "IN1R PGA IN1RP Switch", 1 },
	{ "IN1R PGA IN1RN Switch", 1 },
	{ "MIXINR IN1R Volume", 1 },
	{ "IN1R Switch", 1 },

// Input mixer->ADC->AIF1
	{ "AIF1ADC1L Mixer ADC/DMIC Switch", 1 },
	{ "AIF1ADC1R Mixer ADC/DMIC Switch", 1 },
	{ "ADCL Mux", "ADC" },

// HPF on to take out some bounce
//	{ "AIF1ADC1 HPF Switch", 1 },
//	{ "Sidetone HPF Switch", 1 },

// Work around core issue
	{ "ADCL Mux", "DMIC" },
	{ "ADCL Mux", "ADC" },
	{ "ADCR Mux", "DMIC" },
	{ "ADCR Mux", "ADC" },

// Default all outputs off
	{ "HP Switch", 0 },
	{ "SPK Switch", 0 },
	{ "RCV Switch", 0 },
	{ "LINEOUT Switch", 0 },

// Default all inputs off
	{ "Main Mic Switch", 0 },
	{ "Sub Mic Switch", 0 },
	{ "Headset Mic Switch", 0 },
}

// Default configuration for a specific output
// Should really add aliasing; headset and headphone are the same thing
// and we should refcount appropriately (ditto for speaker/earpiece on
// some low end devices)

Device "Speaker" {
	Enable {
		{ "SPK Switch", 1 },
	}
	Disable {
		{ "SPK Switch", 0 },
	}
}

Device "Headset Out" {
	Enable {
		{ "HP Switch", 1 },
	}
	Disable {
		{ "HP Switch", 0 },
	}
	SharedDevice "Headphone"
}

Device "Headphone" {
	Enable {
		{ "HP Switch", 1 },
	}
	Disable {
		{ "HP Switch", 0 },
	}
	SharedDevice "Headset Out"
}

Device "SCO Headset Out" {
	Enable {
		{ "AIF3ADC Mux", 1 },
		{ "AIF2DAC2L Mixer AIF1.1 Switch", 1 },
		{ "AIF2DAC2R Mixer AIF1.1 Switch", 1 },
		{ "AIF2ADCL Source", "Left" },
		{ "AIF2ADCR Source", "Left" },
	}
	Disable {
		{ "AIF3ADC Mux", 0 },
		{ "AIF2DAC2L Mixer AIF1.1 Switch", 0 },
		{ "AIF2DAC2R Mixer AIF1.1 Switch", 0 },
	}
}

Device "SCO" {
	Enable {
		{ "AIF3ADC Mux", 1 },
		{ "AIF2DAC2L Mixer AIF1.1 Switch", 1 },
		{ "AIF2DAC2R Mixer AIF1.1 Switch", 1 },
		{ "AIF2ADCL Source", "Left" },
		{ "AIF2ADCR Source", "Left" },
	}
	Disable {
		{ "AIF3ADC Mux", 0 },
		{ "AIF2DAC2L Mixer AIF1.1 Switch", 0 },
		{ "AIF2DAC2R Mixer AIF1.1 Switch", 0 },
	}
}

Device "SCO Carkit" {
	Enable {
		{ "AIF3ADC Mux", 1 },
		{ "AIF2DAC2L Mixer AIF1.1 Switch", 1 },
		{ "AIF2DAC2R Mixer AIF1.1 Switch", 1 },
		{ "AIF2ADCL Source", "Left" },
		{ "AIF2ADCR Source", "Left" },
	}
	Disable {
		{ "AIF3ADC Mux", 0 },
		{ "AIF2DAC2L Mixer AIF1.1 Switch", 0 },
		{ "AIF2DAC2R Mixer AIF1.1 Switch", 0 },
	}
}

Device "Analogue Dock Out" {
	Enable {
		{ "LINEOUT1N Switch", 1 },
		{ "LINEOUT1P Switch", 1 },
		{ "LINEOUT Switch", 1 },
	}
	Disable {
		{ "LINEOUT1N Switch", 0 },
		{ "LINEOUT1P Switch", 0 },
		{ "LINEOUT Switch", 0 },
	}
}

Device "Builtin Mic" {
	Enable {
		{ "Sub Mic Switch", 1 },
		{ "AIF1ADCL Source", "Right" },
		{ "AIF1ADCR Source", "Right" },
		{ "AIF2ADCL Source", "Right" },
		{ "AIF2ADCR Source", "Right" },
		{ "MIXINR IN2R Switch", 1 },
	}
	Disable {
		{ "Sub Mic Switch", 0 },
		{ "MIXINR IN2R Switch", 0 },
	}
}

Device "Headset In" {
	Enable {
		{ "Headset Mic Switch", 1 },
		{ "AIF1ADCL Source", "Right" },
		{ "AIF1ADCR Source", "Right" },
		{ "AIF2ADCL Source", "Right" },
		{ "AIF2ADCR Source", "Right" },
		{ "MIXINR IN1R Switch", 1 },
	}
	Disable {
		{ "Headset Mic Switch", 0 },
		{ "MIXINR IN1R Switch", 0 },
	}
}

Device "SCO Headset In" {
	Enable {
		{ "AIF2ADC Mux", 1 },
		{ "AIF1ADCL Source", "Left" },
		{ "AIF1ADCR Source", "Left" },
		{ "AIF2ADCL Source", "Left" },
		{ "AIF2ADCR Source", "Left" },
		{ "AIF1ADC1R Mixer AIF2 Switch", 1 },
		{ "AIF1ADC1L Mixer AIF2 Switch", 1 },
	}
	Disable {
		{ "AIF2ADC Mux", 0 },
		{ "AIF1ADC1R Mixer AIF2 Switch", 0 },
		{ "AIF1ADC1L Mixer AIF2 Switch", 0 },
	}
}

#Verb Stage
#Currently just using normal and voicecall
#Normal, Voicecall
Verb "Normal" {
	Enable {
		{ "HP Output Mode", 0 },
		{ "AIF2 Mode", 1 },
		{ "DAC1L Mixer AIF1.1 Switch", 1 },
		{ "DAC1R Mixer AIF1.1 Switch", 1 },
		{ "AIF2DAC Mux", "AIF3DACDAT" },
		{ "AIF2DAC2L Mixer AIF2 Switch", 0 },
		{ "AIF2DAC2R Mixer AIF2 Switch", 0 },
	}
	Disable {
		{ "HP Output Mode", 0 },
//		{ "DAC1L Mixer AIF1.1 Switch", 0 },
//		{ "DAC1R Mixer AIF1.1 Switch", 0 },
	}
}

Verb "Ringtone" {
	Enable {
		{ "HP Output Mode", 0 },
		{ "DAC1L Mixer AIF1.1 Switch", 1 },
		{ "DAC1R Mixer AIF1.1 Switch", 1 },
	}
	Disable {
		{ "HP Output Mode", 0 },
//		{ "DAC1L Mixer AIF1.1 Switch", 0 },
//		{ "DAC1R Mixer AIF1.1 Switch", 0 },
	}
}

Verb "Communication" {
	Enable {
		{ "HP Output Mode", 0 },
		{ "DAC1L Mixer AIF1.1 Switch", 1 },
		{ "DAC1R Mixer AIF1.1 Switch", 1 },
	}
	Disable {
		{ "HP Output Mode", 0 },
		{ "DAC1L Mixer AIF1.1 Switch", 0 },
		{ "DAC1R Mixer AIF1.1 Switch", 0 },
	}
}

Verb "Voicecall" {
	Enable {
		{ "HP Output Mode", 0 },
		{ "AIF2 Mode", 0 },
		{ "DAC1L Mixer AIF1.1 Switch", 1 },
		{ "DAC1R Mixer AIF1.1 Switch", 1 },
		{ "DAC1L Mixer AIF2 Switch", 1 },
		{ "DAC1R Mixer AIF2 Switch", 1 },
//left:0, right:1
		{ "AIF2DACL Source", 0 },
		{ "AIF2DACR Source", 0 },
		{ "AIF2DAC Mux", "AIF2DACDAT" },
	}
	Disable {
		{ "HP Output Mode", 0 },
		{ "AIF2 Mode", 0 },
//		{ "DAC1L Mixer AIF1.1 Switch", 0 },
//		{ "DAC1R Mixer AIF1.1 Switch", 0 },
		{ "DAC1L Mixer AIF2 Switch", 0 },
		{ "DAC1R Mixer AIF2 Switch", 0 },
		{ "AIF2DACL Source", 0 },
		{ "AIF2DACR Source", 1 },
		{ "AIF2DAC Mux", "AIF3DACDAT" },
	}
}

Verb "Loopback" {
	Enable {
		{ "HP Output Mode", 0 },
		{ "DAC1L Mixer AIF1.1 Switch", 1 },
		{ "DAC1R Mixer AIF1.1 Switch", 1 },
		{ "DAC1L Mixer Right Sidetone Switch", 1 },
		{ "DAC1R Mixer Right Sidetone Switch", 1 },
		{ "AIF2DAC2L Mixer AIF2 Switch", 0 },
		{ "AIF2DAC2R Mixer AIF2 Switch", 0 },
	}
	Disable {
		{ "HP Output Mode", 0 },
//		{ "DAC1L Mixer AIF1.1 Switch", 0 },
//		{ "DAC1R Mixer AIF1.1 Switch", 0 },
		{ "DAC1L Mixer Right Sidetone Switch", 0 },
		{ "DAC1R Mixer Right Sidetone Switch", 0 },
	}
}

ChannelSource "Left" {
	Enable {
		{ "AIF1ADCL Source", "Left" },
		{ "AIF1ADCR Source", "Left" },
	}
	Disable {
		{ "AIF1ADCL Source", "Left" },
		{ "AIF1ADCR Source", "Right" },
	}
}

ChannelSource "Right" {
	Enable {
		{ "AIF1ADCL Source", "Right" },
		{ "AIF1ADCR Source", "Right" },
	}
	Disable {
		{ "AIF1ADCL Source", "Left" },
		{ "AIF1ADCR Source", "Right" },
	}
}

ChannelSource "Stereo" {
	Enable {
		{ "AIF1ADCL Source", "Left" },
		{ "AIF1ADCR Source", "Right" },
	}
	Disable {
		{ "AIF1ADCL Source", "Left" },
		{ "AIF1ADCR Source", "Right" },
	}
}