android_kernel_xiaomi_sm8350/sound/soc/codecs
Peter Ujfalusi 276c62225a ASoC: TWL4030: DAPM based capture implementation
This patch adds DAPM implementaion for the capture path
on twlx030.

TWL has two physical ADC and two digital microphone (stereo) connections.
The CPU interface has four microphone channels.
For simplicity the microphone channel paths are named as:
TX1 (Left/Right) - when using i2s mode, only the TX1 data is valid
TX2 (Left/Right)

Input routing (simplified version):
There is two levels of mux settings for TWL in input path:
Analog input mux:
 ADCL <- {Off, Main mic, Headset mic, AUXL, Carkit mic}
 ADCR <- {Off, Sub mic, AUXR}

Analog/Digital mux:
TX1 Analog mode:
 TX1L <- ADCL
 TX1R <- ADCR
TX1 Digital mode:
 TX1L <- Digimic0 (Left)
 TX1R <- Digimic0 (Right)

TX2 Analog mode:
 TX2L <- ADCL
 TX2R <- ADCR
TX2 Digital mode:
 TX2L <- Digimic1 (Left)
 TX2R <- Digimic1 (Right)

The patch provides the following user controls for the capture path:
Mux settings:
"TX1 Capture Route": {Analog, Digimic0}
"TX2 Capture Route": {Analog, Digimic1}
"Analog Left Capture Route":  {Off, Main Mic, Headset Mic, AUXL, Carkit Mic}
"Analog Right Capture Route": {Off, Sub Mic, AUXR}

Volume/Gain controls:
"TX1 Digital Capture Volume": Stereo gain control for TX1 path
"TX2 Digital Capture Volume": Stereo gain control for TX2 path
"Analog Capture Volume":      Stereo gain control for the analog path only

Important things for the board files:
Microphone bias:
"Mic Bias 1":       Bias for Main mic or for digimic0 (analog or digital path)
"Mic Bias 2":       Bias for Sub mic or for digimic1 (analog or digital path)
"Headset Mic Bias": Bias for Headset mic

When the routing configured correctly only the needed components will be
powered/enabled.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2008-12-31 13:11:59 +00:00
..
ac97.c ASoC: Rename snd_soc_register_card() to snd_soc_init_card() 2008-12-01 19:58:50 +00:00
ac97.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00
ad1980.c ASoC: Rename snd_soc_register_card() to snd_soc_init_card() 2008-12-01 19:58:50 +00:00
ad1980.h ALSA: ASoC codec: fix compiling error in ad1980 driver after ASoC API changed 2008-09-09 09:10:54 +02:00
ad73311.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
ad73311.h ALSA: ASoC codec: AD73311 audio codec driver 2008-10-13 02:16:12 +02:00
ak4535.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
ak4535.h ALSA: ASoC: Convert ak4535 to a new-style i2c driver 2008-09-04 10:34:21 +02:00
cs4270.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
cs4270.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00
Kconfig ASoC: Add WM8350 AudioPlus codec driver 2008-12-18 17:21:07 +00:00
l3.c ASoC: UDA134x codec driver 2008-11-17 11:45:39 +00:00
Makefile ASoC: Add WM8350 AudioPlus codec driver 2008-12-18 17:21:07 +00:00
pcm3008.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
pcm3008.h ASoC: Add PCM3008 ALSA SoC driver 2008-11-19 13:16:38 +00:00
ssm2602.c ASoC: Fix DSP formats in SSM2602 audio codec 2008-12-22 16:23:22 +00:00
ssm2602.h sound: ASoC codec: SSM2602 audio codec driver 2008-09-09 09:11:15 +02:00
tlv320aic3x.c ALSA: ASoC: tlv320aic3x add dsp_a 2008-12-20 13:05:38 +00:00
tlv320aic3x.h ALSA: ASoC: tlv320aic3x add dsp_a 2008-12-20 13:05:38 +00:00
tlv320aic23.c ASoC: Fix incorrect DSP format in OMAP McBSP DAI and affected drivers 2008-12-22 16:15:20 +00:00
tlv320aic23.h ALSA: ASoC: Add TLV320AIC23 codec driver 2008-10-13 02:16:48 +02:00
tlv320aic26.c ASoC: Register non-AC97 codec DAIs 2008-12-09 10:49:29 +00:00
tlv320aic26.h ALSA: ASoC: Export DAI and codec for TLV320AIC26 2008-07-29 21:32:25 +02:00
twl4030.c ASoC: TWL4030: DAPM based capture implementation 2008-12-31 13:11:59 +00:00
twl4030.h ASoC: TWL4030: DAPM based capture implementation 2008-12-31 13:11:59 +00:00
uda134x.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
uda134x.h ASoC: Move uda134x_codec.h to uda134x.h 2008-11-18 12:32:33 +00:00
uda1380.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
uda1380.h ALSA: ASoC: Convert uda1380 to a new-style i2c driver 2008-09-04 10:34:20 +02:00
wm8350.c ALSA: ASoC - Add missing __devexit annotation to wm8350.c 2008-12-20 16:50:53 +01:00
wm8350.h ASoC: Add WM8350 AudioPlus codec driver 2008-12-18 17:21:07 +00:00
wm8510.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8510.h ALSA: ASoC: Add WM8510 SPI support 2008-10-13 02:17:15 +02:00
wm8580.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8580.h ALSA: ASoC: Convert wm8580 to a new-style i2c driver 2008-10-16 08:50:17 +02:00
wm8728.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8728.h ASoC: Add WM8728 codec driver 2008-11-14 14:44:53 +00:00
wm8731.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8731.h ALSA: ASoC: Add SPI support for WM8731 2008-09-04 10:34:27 +02:00
wm8750.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8750.h sound: ASoC: Add WM8750 SPI support 2008-09-23 08:18:19 +02:00
wm8753.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8753.h ALSA: ASoC: update email address for Liam Girdwood 2008-10-13 02:26:42 +02:00
wm8900.c ASoC: Convert WM8900 to do more work at I2C probe time 2008-12-10 19:47:40 +00:00
wm8900.h ASoC: Convert WM8900 to do more work at I2C probe time 2008-12-10 19:47:40 +00:00
wm8903.c ASoC: Stop WM8903 SYSCLK when suspending 2008-12-10 19:47:45 +00:00
wm8903.h ASoC: Convert WM8903 driver to register at I2C probe time 2008-12-10 19:47:44 +00:00
wm8971.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8971.h sound: ASoC: Add WM8971 CODEC driver 2008-09-23 08:18:05 +02:00
wm8990.c ALSA: ASoC - Fix wrong section types 2008-12-10 07:47:22 +01:00
wm8990.h ASoC: Enable WM8990 ADC clocking workaround 2008-11-17 17:24:54 +00:00
wm9712.c ASoC: Rename snd_soc_register_card() to snd_soc_init_card() 2008-12-01 19:58:50 +00:00
wm9712.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00
wm9713.c ASoC: Don't free static data in WM9713 2008-12-01 19:58:55 +00:00
wm9713.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00