Hi,
we are using TLV320 AIC3254. Below is the registers configuration for HPL and HPR.The Problem is that when we apply external analog input to IN1_L and IN1_R, IN1_L/IN1_R are getting routed to HPL and HPR even though we are not routing. We are routing only DAC to HPL/R. If the applied external analog input signal volume level is >50% on the volume bar, huge noise and applied analog audio song is seen on HPL&HPR. could please suggest the missing configuration to avoid internal analog loopback & noise.
Below is the register configuration:
Page 1 / Register 12: HPL Routing Selection Register - 0x01 / 0x0C (P1_R12)=0x08
Page 1 / Register 13: HPR Routing Selection Register - 0x01 / 0x0D (P1_R13)=0x08
Registers and config values written in sequence:
aic32x4_write_hacked(codec, 0x00 , 0x00 );
aic32x4_write_hacked(codec, 0x01 , 0x01 );
aic32x4_write_hacked(codec, 0x0c , 0x81 );
aic32x4_write_hacked(codec, 0x0d , 0x00 );
// 32-bit(2-channel)
aic32x4_write_hacked(codec, 0x0e , 0x20 );
// bit clock divider
aic32x4_write_hacked(codec, 0x1e , 0x81 );
// bit clock divider
//aic32x4_write_hacked(codec, 0x1e , 0x00 );
//bclk-wclk = output to codec
//aic32x4_write_hacked(codec, 0x1b , 0x0c );
//bclk-wclk = input to codec
//aic32x4_write_hacked(codec, 0x1b , 0x00 );
//32 bit
//aic32x4_write_hacked(codec, 0x1b , 0x30 );
//24 bit
aic32x4_write_hacked(codec, 0x1b , 0x20 );
aic32x4_write_hacked(codec, 0x04 , 0x10 );
aic32x4_write_hacked(codec, 0x3c , 0x08 );
aic32x4_write_hacked(codec, 0x00 , 0x01 );
aic32x4_write_hacked(codec, 0x01 , 0x08 );
aic32x4_write_hacked(codec, 0x02 , 0x01 );
aic32x4_write_hacked(codec, 0x7b , 0x01 );
aic32x4_write_hacked(codec, 0x14 , 0x25 );
aic32x4_write_hacked(codec, 0x0a , 0x00 );
aic32x4_write_hacked(codec, 0x0c , 0x08 ); ==> page 1 / Register 12: HPL Routing Selection Register - 0x01 / 0x0C (P1_R12)=0x08
aic32x4_write_hacked(codec, 0x0d , 0x08 ); ==> Page 1 / Register 13: HPR Routing Selection Register - 0x01 / 0x0D (P1_R13)=0x08
aic32x4_write_hacked(codec, 0x03 , 0x00 );
aic32x4_write_hacked(codec, 0x04 , 0x00 );
aic32x4_write_hacked(codec, 0x10 , 0x00 );
aic32x4_write_hacked(codec, 0x11 , 0x00 );
aic32x4_write_hacked(codec, 0x09 , 0x30 );
//mdelay(1000 * 3);
aic32x4_write_hacked(codec, 0x00 , 0x00 );
aic32x4_write_hacked(codec, 0x3f , 0xd6 );
aic32x4_write_hacked(codec, 0x40 , 0x00 );
Thanks and Regards
srinivasa