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.

AM625: The MIC IN of TLV320AIC3106 is unable to record

Part Number: AM625
Other Parts Discussed in Thread: TLV320AIC3106

Tool/software:

Problem description:

    I used the TLV320AIC3106 and found that when the MIC IN was recording the sound, it failed to do so. However, the line in and SPK functions of this chip are normal.

My dts configuration:

/{
......
    tlv320_mclk: clk-0 {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <12288000>;
	};

	codec_audio: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "scb7138-audio";
		simple-audio-card,widgets =
			"Headphone",	"Headphone Jack",
			"Line",		"Line In",
			"Microphone",	"Microphone Jack";
		simple-audio-card,routing =
			"Headphone Jack",	"HPLOUT",
			"Headphone Jack",	"HPROUT",
			"LINE1L",		"Line In",
			"LINE1R",		"Line In",
			"LINE2L",		"Microphone Jack",
			"Microphone Jack",	"Mic Bias";
		simple-audio-card,format = "dsp_b";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;
		simple-audio-card,bitclock-inversion;

		simple-audio-card,cpu {
			sound-dai = <&mcasp1>;
		};

		sound_master: simple-audio-card,codec {
			sound-dai = <&tlv320aic3106>;
			clocks = <&tlv320_mclk>;
		};
	};
};

&main_pmx0 {

	main_i2c1_pins_default: main-i2c1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17/A17) I2C1_SCL */
			AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17/A16) I2C1_SDA */
		>;
	};


	main_mcasp1_pins_default: main-mcasp1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x090, PIN_INPUT, 2) /* (M24) GPMC0_BE0N_CLE.MCASP1_ACLKX */
			AM62X_IOPAD(0x098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
			AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEN.MCASP1_AXR0 */
			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23) GPMC0_ADVN_ALE.MCASP1_AXR2 */
		>;
	};
};

&mcasp1 {
	status = "okay";
	#sound-dai-cells = <0>;

	pinctrl-names = "default";
	pinctrl-0 = <&main_mcasp1_pins_default>;

	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;

	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
	       1 0 2 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
	tx-num-evt = <0>;
	rx-num-evt = <0>;
};

&main_i2c1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c1_pins_default>;
	clock-frequency = <100000>;

	tlv320aic3106: audio-codec@1b {
		#sound-dai-cells = <0>;
		compatible = "ti,tlv320aic3106";
		reg = <0x1b>;
		ai3x-micbias-vg = <0x2>;	/*  2.5V */

		/* Regulators */
		AVDD-supply = <&vcc_3v3_sys>;
		IOVDD-supply = <&vcc_3v3_sys>;
		DRVDD-supply = <&vcc_3v3_sys>;
		DVDD-supply = <&vcc_1v8>;
	};
};

  • Hello Chauncy,

    Apologies for the delayed response here.

    What version of Linux SDK are you using? Are you using a custom board or a TI EVM?

    How are you running your tests?

    • Please provide the terminal output so that we can see exactly what steps you are taking, and any output you are seeing.
    • Please provide your terminal output so we can see how the peripheral is getting initialized during boot

    Regards,

    Nick

  • Hello

      * Now my DTS has been modified to

    /{
    ......
        tlv320_mclk: clk-0 {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <12288000>;
    	};
    
    	codec_audio: sound {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "scb7138-audio";
    		simple-audio-card,widgets =
    			"Headphone",	"Headphone Jack",
    			"Line",		"Line In",
    			"Microphone",	"Microphone Jack";
    		simple-audio-card,routing =
    			"Headphone Jack",	"HPLOUT",
    			"Headphone Jack",	"HPROUT",
    			"LINE1L",		"Line In",
    			"LINE1R",		"Line In",
    			"LINE2L",		"Microphone Jack",
    			"LINE2R",		"Microphone Jack", //add
    			"Microphone Jack",	"Mic Bias";
    		simple-audio-card,format = "dsp_b";
    		simple-audio-card,bitclock-master = <&sound_master>;
    		simple-audio-card,frame-master = <&sound_master>;
    		simple-audio-card,bitclock-inversion;
    
    		simple-audio-card,cpu {
    			sound-dai = <&mcasp1>;
    		};
    
    		sound_master: simple-audio-card,codec {
    			sound-dai = <&tlv320aic3106>;
    			clocks = <&tlv320_mclk>;
    		};
    	};
    };
    

      * I use custom-made boards;

      * The SDK I use is: ti-processor-sdk-linux-am62xx-evm-09.02.01.10-Linux-x86-Install.bin;

      * I tested directly using the sound recorder application;

      * The following are some logs about the sound card:

     root@sbc7138:~# dmesg | grep audio
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep bias
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep Bias
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep Mic
    root@sbc7138:~#                 
    root@sbc7138:~# dmesg | grep mic
    [    0.222752] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [    0.230087] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.238123] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.870927] optee: dynamic shared memory is enabled
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep MIC
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep tlv
    root@sbc7138:~# 
    root@sbc7138:~# lsmod | grep tlv
    snd_soc_tlv320aic3x_i2c    16384  1
    snd_soc_tlv320aic3x    77824  1 snd_soc_tlv320aic3x_i2c
    root@sbc7138:~# 
    root@sbc7138:~# aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: sbc7138audio [sbc7138-audio], device 0: davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 [davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    root@sbc7138:~# 
    root@sbc7138:~# arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 0: sbc7138audio [sbc7138-audio], device 0: davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 [davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    root@sbc7138:~# 
    root@sbc7138:~# amixer -c 0 contents
    numid=15,iface=MIXER,name='PCM Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
      : values=87,87
      | dBscale-min=-63.50dB,step=0.50dB,mute=0
    numid=29,iface=MIXER,name='Line DAC Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=7,iface=MIXER,name='Line Line2 Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=28,iface=MIXER,name='Line PGA Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=35,iface=MIXER,name='Line Playback Switch'
      ; type=BOOLEAN,access=rw------,values=2
      : values=on,on
    numid=34,iface=MIXER,name='Line Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0
      : values=0,0
      | dBscale-min=0.00dB,step=1.00dB,mute=0
    numid=12,iface=MIXER,name='Mono DAC Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=10,iface=MIXER,name='Mono Line2 Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=111,iface=MIXER,name='Mono Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=114,iface=MIXER,name='Mono Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=109,iface=MIXER,name='Mono Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=112,iface=MIXER,name='Mono Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=110,iface=MIXER,name='Mono Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=113,iface=MIXER,name='Mono Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=11,iface=MIXER,name='Mono PGA Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=13,iface=MIXER,name='Mono Playback Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=14,iface=MIXER,name='Mono Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=9,step=0
      : values=0
      | dBscale-min=0.00dB,step=1.00dB,mute=0
    numid=50,iface=MIXER,name='ADC HPF Cut-off'
      ; type=ENUMERATED,access=rw------,values=2,items=4
      ; Item #0 'Disabled'
      ; Item #1 '0.0045xFs'
      ; Item #2 '0.0125xFs'
      ; Item #3 '0.025xFs'
      : values=0,0
    numid=40,iface=MIXER,name='AGC Switch'
      ; type=BOOLEAN,access=rw------,values=2
      : values=off,off
    numid=47,iface=MIXER,name='De-emphasis Switch'
      ; type=BOOLEAN,access=rw------,values=2
      : values=off,off
    numid=31,iface=MIXER,name='HP DAC Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=8,iface=MIXER,name='HP Line2 Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=30,iface=MIXER,name='HP PGA Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=37,iface=MIXER,name='HP Playback Switch'
      ; type=BOOLEAN,access=rw------,values=2
      : values=on,on
    numid=36,iface=MIXER,name='HP Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0
      : values=0,0
      | dBscale-min=0.00dB,step=1.00dB,mute=0
    numid=33,iface=MIXER,name='HPCOM DAC Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=9,iface=MIXER,name='HPCOM Line2 Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=32,iface=MIXER,name='HPCOM PGA Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
      : values=71,71
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=39,iface=MIXER,name='HPCOM Playback Switch'
      ; type=BOOLEAN,access=rw------,values=2
      : values=on,on
    numid=38,iface=MIXER,name='HPCOM Playback Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0
      : values=0,0
      | dBscale-min=0.00dB,step=1.00dB,mute=0
    numid=43,iface=MIXER,name='Left AGC Attack time'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 '8ms'
      ; Item #1 '11ms'
      ; Item #2 '16ms'
      ; Item #3 '20ms'
      : values=0
    numid=45,iface=MIXER,name='Left AGC Decay time'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 '100ms'
      ; Item #1 '200ms'
      ; Item #2 '400ms'
      ; Item #3 '500ms'
      : values=0
    numid=41,iface=MIXER,name='Left AGC Target level'
      ; type=ENUMERATED,access=rw------,values=1,items=8
      ; Item #0 '-5.5dB'
      ; Item #1 '-8dB'
      ; Item #2 '-10dB'
      ; Item #3 '-12dB'
      ; Item #4 '-14dB'
      ; Item #5 '-17dB'
      ; Item #6 '-20dB'
      ; Item #7 '-24dB'
      : values=0
    numid=53,iface=MIXER,name='Left DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_L1'
      ; Item #1 'DAC_L3'
      ; Item #2 'DAC_L2'
      : values=0
    numid=86,iface=MIXER,name='Left HP Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=21,iface=MIXER,name='Left HP Mixer DACR1 Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=88,iface=MIXER,name='Left HP Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=89,iface=MIXER,name='Left HP Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=90,iface=MIXER,name='Left HP Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=3,iface=MIXER,name='Left HP Mixer Line2R Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=85,iface=MIXER,name='Left HP Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=87,iface=MIXER,name='Left HP Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=20,iface=MIXER,name='Left HP Mixer PGAR Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=98,iface=MIXER,name='Left HPCOM Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=25,iface=MIXER,name='Left HPCOM Mixer DACR1 Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=100,iface=MIXER,name='Left HPCOM Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=101,iface=MIXER,name='Left HPCOM Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=102,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=5,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=97,iface=MIXER,name='Left HPCOM Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=99,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=24,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=54,iface=MIXER,name='Left HPCOM Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'differential of HPLOUT'
      ; Item #1 'constant VCM'
      ; Item #2 'single-ended'
      : values=0
    numid=74,iface=MIXER,name='Left Line Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=17,iface=MIXER,name='Left Line Mixer DACR1 Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=76,iface=MIXER,name='Left Line Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=77,iface=MIXER,name='Left Line Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=78,iface=MIXER,name='Left Line Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=1,iface=MIXER,name='Left Line Mixer Line2R Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=73,iface=MIXER,name='Left Line Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=75,iface=MIXER,name='Left Line Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=16,iface=MIXER,name='Left Line Mixer PGAR Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=57,iface=MIXER,name='Left Line1L Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=2
      ; Item #0 'single-ended'
      ; Item #1 'differential'
      : values=0
    numid=58,iface=MIXER,name='Left Line1R Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=2
      ; Item #0 'single-ended'
      ; Item #1 'differential'
      : values=0
    numid=66,iface=MIXER,name='Left Line2L Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=2
      ; Item #0 'single-ended'
      ; Item #1 'differential'
      : values=0
    numid=61,iface=MIXER,name='Left PGA Mixer Line1L Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=62,iface=MIXER,name='Left PGA Mixer Line1R Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=63,iface=MIXER,name='Left PGA Mixer Line2L Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=64,iface=MIXER,name='Left PGA Mixer Mic3L Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=65,iface=MIXER,name='Left PGA Mixer Mic3R Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=51,iface=MIXER,name='Output Driver Power-On time'
      ; type=ENUMERATED,access=rw------,values=1,items=12
      ; Item #0 '0us'
      ; Item #1 '10us'
      ; Item #2 '100us'
      ; Item #3 '1ms'
      ; Item #4 '10ms'
      ; Item #5 '50ms'
      ; Item #6 '100ms'
      ; Item #7 '200ms'
      ; Item #8 '400ms'
      ; Item #9 '800ms'
      ; Item #10 '2s'
      ; Item #11 '4s'
      : values=0
    numid=52,iface=MIXER,name='Output Driver Ramp-up step'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 '0ms'
      ; Item #1 '1ms'
      ; Item #2 '2ms'
      ; Item #3 '4ms'
      : values=0
    numid=49,iface=MIXER,name='PGA Capture Switch'
      ; type=BOOLEAN,access=rw------,values=2
      : values=on,on
    numid=48,iface=MIXER,name='PGA Capture Volume'
      ; type=INTEGER,access=rw---R--,values=2,min=0,max=119,step=0
      : values=32,32
      | dBscale-min=0.00dB,step=0.50dB,mute=0
    numid=44,iface=MIXER,name='Right AGC Attack time'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 '8ms'
      ; Item #1 '11ms'
      ; Item #2 '16ms'
      ; Item #3 '20ms'
      : values=0
    numid=46,iface=MIXER,name='Right AGC Decay time'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 '100ms'
      ; Item #1 '200ms'
      ; Item #2 '400ms'
      ; Item #3 '500ms'
      : values=0
    numid=42,iface=MIXER,name='Right AGC Target level'
      ; type=ENUMERATED,access=rw------,values=1,items=8
      ; Item #0 '-5.5dB'
      ; Item #1 '-8dB'
      ; Item #2 '-10dB'
      ; Item #3 '-12dB'
      ; Item #4 '-14dB'
      ; Item #5 '-17dB'
      ; Item #6 '-20dB'
      ; Item #7 '-24dB'
      : values=0
    numid=55,iface=MIXER,name='Right DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_R1'
      ; Item #1 'DAC_R3'
      ; Item #2 'DAC_R2'
      : values=0
    numid=23,iface=MIXER,name='Right HP Mixer DACL1 Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=92,iface=MIXER,name='Right HP Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=94,iface=MIXER,name='Right HP Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=95,iface=MIXER,name='Right HP Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=4,iface=MIXER,name='Right HP Mixer Line2L Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=96,iface=MIXER,name='Right HP Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=91,iface=MIXER,name='Right HP Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=22,iface=MIXER,name='Right HP Mixer PGAL Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=93,iface=MIXER,name='Right HP Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=27,iface=MIXER,name='Right HPCOM Mixer DACL1 Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=104,iface=MIXER,name='Right HPCOM Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=106,iface=MIXER,name='Right HPCOM Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=107,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=6,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=108,iface=MIXER,name='Right HPCOM Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=103,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=26,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=105,iface=MIXER,name='Right HPCOM Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=56,iface=MIXER,name='Right HPCOM Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=5
      ; Item #0 'differential of HPROUT'
      ; Item #1 'constant VCM'
      ; Item #2 'single-ended'
      ; Item #3 'differential of HPLCOM'
      ; Item #4 'external feedback'
      : values=0
    numid=19,iface=MIXER,name='Right Line Mixer DACL1 Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=80,iface=MIXER,name='Right Line Mixer DACL1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=82,iface=MIXER,name='Right Line Mixer DACR1 Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=83,iface=MIXER,name='Right Line Mixer Line2L Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=2,iface=MIXER,name='Right Line Mixer Line2L Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=84,iface=MIXER,name='Right Line Mixer Line2R Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=79,iface=MIXER,name='Right Line Mixer PGAL Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=18,iface=MIXER,name='Right Line Mixer PGAL Bypass Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
      : values=118
      | dBscale-min=-59.00dB,step=0.50dB,mute=1
    numid=81,iface=MIXER,name='Right Line Mixer PGAR Bypass Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=59,iface=MIXER,name='Right Line1L Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=2
      ; Item #0 'single-ended'
      ; Item #1 'differential'
      : values=0
    numid=60,iface=MIXER,name='Right Line1R Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=2
      ; Item #0 'single-ended'
      ; Item #1 'differential'
      : values=0
    numid=72,iface=MIXER,name='Right Line2R Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=2
      ; Item #0 'single-ended'
      ; Item #1 'differential'
      : values=0
    numid=68,iface=MIXER,name='Right PGA Mixer Line1L Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=67,iface=MIXER,name='Right PGA Mixer Line1R Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=69,iface=MIXER,name='Right PGA Mixer Line2R Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=70,iface=MIXER,name='Right PGA Mixer Mic3L Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    numid=71,iface=MIXER,name='Right PGA Mixer Mic3R Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=off
    root@sbc7138:~# 

      

  • Hi Chauncy,

    I understand from your DTS that Codec is the Clock initiator and MCASP is receiving the clock. This is the same on our EVM.

    Does playback work fine? What's different from our EVM  vs. Custom board with regards to codec and MCASP interfacing?

    Can you also share us if you are able to see the BCLK and WCLK/Frame sync correctly on the logic analyzer/oscilloscope? Whats the expected BCLK and WCLK?

    Are you seeing the data on AXR pin of MCASP1? 

    Best regards,

    Suren

  • Hi

      The following is the waveform I measured when using MIC IN:

      The following is the picture of my test site:

     

     The following are the register values read out by using the i2c tool:

    root@sbc7138:~# i2cdump -f -y 1 0x1b
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 10 04 00 00 00 00 00 00 01 00 00 00 80    ...??......?...?
    10: 80 ff ff 78 78 78 78 78 78 06 00 fe 00 00 fe 00    ?..xxxxxx?.?..?.
    20: 00 00 00 00 00 00 00 00 00 00 00 80 80 00 00 00    ...........??...
    30: 00 00 00 04 00 00 00 00 00 00 04 00 00 00 00 00    ...?......?.....
    40: 00 04 00 00 00 00 00 00 04 00 00 00 00 00 00 00    .?......?.......
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    60: 00 00 00 00 00 c0 02 00 00 00 00 00 00 00 00 00    .....??.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 00 00 00 10 04 00 00 00 00 00 00 01 00 00 00 80    ...??......?...?
    90: 80 ff ff 78 78 78 78 78 78 06 00 fe 00 00 fe 00    ?..xxxxxx?.?..?.
    a0: 00 00 00 00 00 00 00 00 00 00 00 80 80 00 00 00    ...........??...
    b0: 00 00 00 04 00 00 00 00 00 00 04 00 00 00 00 00    ...?......?.....
    c0: 00 04 00 00 00 00 00 00 04 00 00 00 00 00 00 00    .?......?.......
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 c0 02 00 00 00 00 00 00 00 00 00    .....??.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@sbc7138:~# 
    root@sbc7138:~# i2cset -y -f 1 0x1b 0x00 0x01
    root@sbc7138:~# 
    root@sbc7138:~# i2cdump -f -y 1 0x1b
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 6b e3 96 66 67 5d 6b e3 96 66 67 5d 7d 83 84    ?k??fg]k??fg]}??
    10: ee 7d 83 84 ee 39 55 f3 2d 53 7e 6b e3 96 66 67    ?}???9U?-S~k??fg
    20: 5d 6b e3 96 66 67 5d 7d 83 84 ee 7d 83 84 ee 39    ]k??fg]}???}???9
    30: 55 f3 2d 53 7e 7f ff 00 00 00 00 00 00 00 00 00    U?-S~?..........
    40: 00 7f ea 80 16 7f d5 7f ea 80 16 7f d5 00 00 00    .????????????...
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 01 6b e3 96 66 67 5d 6b e3 96 66 67 5d 7d 83 84    ?k??fg]k??fg]}??
    90: ee 7d 83 84 ee 39 55 f3 2d 53 7e 6b e3 96 66 67    ?}???9U?-S~k??fg
    a0: 5d 6b e3 96 66 67 5d 7d 83 84 ee 7d 83 84 ee 39    ]k??fg]}???}???9
    b0: 55 f3 2d 53 7e 7f ff 00 00 00 00 00 00 00 00 00    U?-S~?..........
    c0: 00 7f ea 80 16 7f d5 7f ea 80 16 7f d5 00 00 00    .????????????...
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@sbc7138:~# 

  • Hi Chauncy,

    Whats the BCLK, WCLK that you are expecting?

    Also, can you check the padconfig register if RXACTIVE is enabled in order to record to function properly?

    Best Regards,

    Suren

  • Hi

      I'm not quite clear about how BCLK and WCLK are normal for MIC IN.

      Also, may I ask in which file can the detailed information of this register be viewed? I couldn't find a description about it in the materials here.

    Thank you for your help

  • Hi Chauncy,

    What is the value of BCLK and WCLK you are expecting? Did you check the MCASP1 registers or MCASP1 Pins to see those desired clock frequencies?

    The padconfig register for L23 is F4084h. Use devmem2 and this address to dump the value.

    Best Regards,

    Suren