This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I try to configure digital microphone connected to TPS65950. I made some operations with alsa_amixer to configure proper path for dig mic but without success. I'm trying to understand signal path to the microphone and I verified it with 14.4.2.3 SWCU050G – April 2008 – Revised December 2010 with codec reg dump and it seems to be ok but dig microphone is turned off (VMIC is low and there is no CLK). [( VMIC1.OUT, DIG.MIC.0, DIG.MIC.CLK0). I use Linux kernel 2.6.37. ]
twl4030-codec registers 0: 0 1: a3 2: c3 3: 0 4: 60 5: 5 6: 4 7: 6 8: f 9: 0 a: 1f b: 1f c: 1f d: 1f e: 1 f: 0 10: 3f 11: 3f 12: 3f 13: 3f 14: 25 15: 0 16: 0 17: 8 18: 0 19: 30 1a: 30 1b: 31 1c: 30 1d: 0 1e: 0 1f: 55 20: 0 21: 20 22: 0 23: 5 24: 4 25: 0 26: 0 27: 0 28: 0 29: 3e 2a: 0 2b: 5 2c: 0 2d: 0 2e: 0 2f: 0 30: 13 31: 0 32: 0 33: 0 34: 0 35: 79 36: 11 37: 0 38: 0 39: 0 3a: 16 3b: 0 3c: 44 3d: 69 3e: 3 3f: 0 40: 0 41: 0 42: 0 43: 0 44: 30 45: 0 46: 0 47: 0 48: 2d 49: 0 4a: 1
here is codec/TPS reg dump taken during recording attempt:
/ # alsa_arecord -v -r 48000 -f dat | alsa_aplay -v
Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Plug PCM: Hardware PCM card 0 'omap3evm' device 0 subdevice 0
Its setup is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 24000
period_size : 6000
period_time : 125000
tstamp_mode : NONE
period_step : 1
avail_min : 6000
period_event : 0
start_threshold : 1
stop_threshold : 24000
silence_threshold: 0
silence_size : 0
boundary : 1572864000
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Plug PCM: Hardware PCM card 0 'omap3evm' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 24000
period_size : 6000
period_time : 125000
tstamp_mode : NONE
period_step : 1
avail_min : 6000
period_event : 0
start_threshold : 24000
stop_threshold : 24000
silence_threshold: 0
silence_size : 0
boundary : 1572864000
and alsa widget states:
Headset Mic Bias: Off Mic Bias 2: Off Mic Bias 1: Off micbias2 select: On micbias1 select: On Digimic1 Enable: On Digimic0 Enable: On ADC Physical Right: Off ADC Physical Left: Off Analog Right: Off Analog Left: Off ADC Virtual Right2: On ADC Virtual Left2: On ADC Virtual Right1: On ADC Virtual Left1: On HandsfreeR PGA: Off HandsfreeL PGA: On CarkitR PGA: Off CarkitR Mixer: Off CarkitL PGA: Off CarkitL Mixer: Off HeadsetR PGA: Off HeadsetR Mixer: Off HeadsetL PGA: Off HeadsetL Mixer: Off PredriveR PGA: Off PredriveR Mixer: Off PredriveL PGA: Off PredriveL Mixer: Off Earpiece PGA: Off Earpiece Mixer: Off AIF Enable: On APLL Enable: Off Analog Voice Playback Mixer: Off Analog L2 Playback Mixer: On Analog R2 Playback Mixer: Off Analog L1 Playback Mixer: Off Analog R1 Playback Mixer: Off Digital Voice Playback Mixer: Off Digital L2 Playback Mixer: On Digital R2 Playback Mixer: Off Digital L1 Playback Mixer: Off Digital R1 Playback Mixer: Off FM Loop Enable: Off DAC Voice: Off DAC Left2: On DAC Right2: On DAC Left1: On DAC Right1: On PM State: On
and alsa_amixer contents:
numid=20,iface=MIXER,name='AVADC Clock Priority' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Voice high priority' ; Item #1 'HiFi high priority' : values=1 numid=19,iface=MIXER,name='Analog Capture Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=5,step=0 : values=5,5 | dBscale-min=0.00dB,step=6.00dB,mute=0 numid=29,iface=MIXER,name='Analog Left AUXL Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=30,iface=MIXER,name='Analog Left Carkit Mic Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=28,iface=MIXER,name='Analog Left Headset Mic Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=27,iface=MIXER,name='Analog Left Main Mic Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=26,iface=MIXER,name='Analog Right AUXR Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=25,iface=MIXER,name='Analog Right Sub Mic Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=15,iface=MIXER,name='Carkit Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=0,0 | dBscale-min=-12.00dB,step=6.00dB,mute=1 numid=43,iface=MIXER,name='CarkitL Mixer AudioL1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=44,iface=MIXER,name='CarkitL Mixer AudioL2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=42,iface=MIXER,name='CarkitL Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=40,iface=MIXER,name='CarkitR Mixer AudioR1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=41,iface=MIXER,name='CarkitR Mixer AudioR2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=39,iface=MIXER,name='CarkitR Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=1,iface=MIXER,name='Codec Operation Mode' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Option 2 (voice/audio)' ; Item #1 'Option 1 (audio)' : values=1 numid=12,iface=MIXER,name='DAC Voice Analog Downlink Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=11,iface=MIXER,name='DAC Voice Analog Downlink Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=18,step=0 : values=12 | dBscale-min=-24.00dB,step=2.00dB,mute=0 numid=10,iface=MIXER,name='DAC Voice Digital Downlink Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=49,step=0 : values=37 | dBscale-min=-37.00dB,step=1.00dB,mute=1 numid=8,iface=MIXER,name='DAC1 Analog Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=off,off numid=6,iface=MIXER,name='DAC1 Analog Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=18,step=0 : values=12,12 | dBscale-min=-24.00dB,step=2.00dB,mute=0 numid=4,iface=MIXER,name='DAC1 Digital Coarse Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=2,step=0 : values=0,0 | dBscale-min=0.00dB,step=6.00dB,mute=0 numid=2,iface=MIXER,name='DAC1 Digital Fine Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0 : values=63,63 | dBscale-min=-63.00dB,step=1.00dB,mute=1 numid=9,iface=MIXER,name='DAC2 Analog Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=off,off numid=7,iface=MIXER,name='DAC2 Analog Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=18,step=0 : values=12,12 | dBscale-min=-24.00dB,step=2.00dB,mute=0 numid=5,iface=MIXER,name='DAC2 Digital Coarse Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=2,step=0 : values=0,0 | dBscale-min=0.00dB,step=6.00dB,mute=0 numid=3,iface=MIXER,name='DAC2 Digital Fine Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0 : values=63,63 | dBscale-min=-63.00dB,step=1.00dB,mute=1 numid=24,iface=MIXER,name='Digimic LR Swap' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Not swapped' ; Item #1 'Swapped' : values=1 numid=60,iface=MIXER,name='Earpiece Mixer AudioL1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=61,iface=MIXER,name='Earpiece Mixer AudioL2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=62,iface=MIXER,name='Earpiece Mixer AudioR1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=59,iface=MIXER,name='Earpiece Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=16,iface=MIXER,name='Earpiece Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=3,step=0 : values=2 | dBscale-min=-6.00dB,step=6.00dB,mute=1 numid=21,iface=MIXER,name='HS ramp delay' ; type=ENUMERATED,access=rw------,values=1,items=8 ; Item #0 '27/20/14 ms' ; Item #1 '55/40/27 ms' ; Item #2 '109/81/55 ms' ; Item #3 '218/161/109 ms' ; Item #4 '437/323/218 ms' ; Item #5 '874/645/437 ms' ; Item #6 '1748/1291/874 ms' ; Item #7 '3495/2581/1748 ms' : values=1 numid=38,iface=MIXER,name='HandsfreeL Mux' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 'Voice' ; Item #1 'AudioL1' ; Item #2 'AudioL2' ; Item #3 'AudioR2' : values=2 numid=37,iface=MIXER,name='HandsfreeL Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=36,iface=MIXER,name='HandsfreeR Mux' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 'Voice' ; Item #1 'AudioR1' ; Item #2 'AudioR2' ; Item #3 'AudioL2' : values=0 numid=35,iface=MIXER,name='HandsfreeR Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=14,iface=MIXER,name='Headset Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=3,3 | dBscale-min=-12.00dB,step=6.00dB,mute=1 numid=49,iface=MIXER,name='HeadsetL Mixer AudioL1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=50,iface=MIXER,name='HeadsetL Mixer AudioL2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=48,iface=MIXER,name='HeadsetL Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=46,iface=MIXER,name='HeadsetR Mixer AudioR1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=47,iface=MIXER,name='HeadsetR Mixer AudioR2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=45,iface=MIXER,name='HeadsetR Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=65,iface=MIXER,name='Left Digital Loopback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0 : values=0 | dBrange- 0x00000000,0x00000001,0x00000001,0x00000008,0xfffff448,0x00010258,0x00000002,0x00000003,0x00000001,0x00000008,0xfffff6a0,0x00000000,0x00000004,0x00000007,0x00000001,0x00000008,0xfffff8f8,0x00000258, numid=69,iface=MIXER,name='Left1 Analog Loopback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=67,iface=MIXER,name='Left2 Analog Loopback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=13,iface=MIXER,name='PreDriv Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=0,0 | dBscale-min=-12.00dB,step=6.00dB,mute=1 numid=56,iface=MIXER,name='PredriveL Mixer AudioL1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=57,iface=MIXER,name='PredriveL Mixer AudioL2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=58,iface=MIXER,name='PredriveL Mixer AudioR2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=55,iface=MIXER,name='PredriveL Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=54,iface=MIXER,name='PredriveR Mixer AudioL2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=52,iface=MIXER,name='PredriveR Mixer AudioR1' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=53,iface=MIXER,name='PredriveR Mixer AudioR2' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=51,iface=MIXER,name='PredriveR Mixer Voice' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=64,iface=MIXER,name='Right Digital Loopback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0 : values=0 | dBrange- 0x00000000,0x00000001,0x00000001,0x00000008,0xfffff448,0x00010258,0x00000002,0x00000003,0x00000001,0x00000008,0xfffff6a0,0x00000000,0x00000004,0x00000007,0x00000001,0x00000008,0xfffff8f8,0x00000258, numid=70,iface=MIXER,name='Right1 Analog Loopback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=68,iface=MIXER,name='Right2 Analog Loopback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=32,iface=MIXER,name='TX1 Capture Route' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Analog' ; Item #1 'Digimic0' : values=1 numid=17,iface=MIXER,name='TX1 Digital Capture Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0 : values=31,31 | dBscale-min=0.00dB,step=1.00dB,mute=0 numid=31,iface=MIXER,name='TX2 Capture Route' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Analog' ; Item #1 'Digimic1' : values=1 numid=18,iface=MIXER,name='TX2 Digital Capture Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0 : values=31,31 | dBscale-min=0.00dB,step=1.00dB,mute=0 numid=23,iface=MIXER,name='Vibra H-bridge direction' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Positive polarity' ; Item #1 'Negative polarity' : values=0 numid=22,iface=MIXER,name='Vibra H-bridge mode' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Vibra H-bridge direction' ; Item #1 'Audio data MSB' : values=0 numid=34,iface=MIXER,name='Vibra Mux' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 'AudioL1' ; Item #1 'AudioR1' ; Item #2 'AudioL2' ; Item #3 'AudioR2' : values=0 numid=33,iface=MIXER,name='Vibra Route' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Local vibrator' ; Item #1 'Audio' : values=0 numid=66,iface=MIXER,name='Voice Analog Loopback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=63,iface=MIXER,name='Voice Digital Loopback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=41,step=0 : values=0 | dBscale-min=-51.00dB,step=1.00dB,mute=1
Regards,
Karol