We faced one compatibility issue for TPA6166 headphone AMP.
- A keyboard with audio cable caused windows device manager failed. The Headphone didn’t disappear when we unplug the phone jack from keyboard 3.5 jack, and the headphone auto detect function was failed.
- After check with TPA6166 datasheet we found the return information was not in list of table 6 register 0x19, bit 6-0.
- The I2c feedback to EC was list below
1. Fail symptom, Keyboard’s phone jack inserts into TPA6166 jack, ( no headphone on keyboard )
The MCU read register 0x19 and compare the result to table 6 in datasheet, there is an abnormal value appear (0x21) as below
B6-B0 is not on list of table 6 ( incorrect )
HEX BIN
0x21 0010 0001
2. Normal Symptom, Keyboard’s phone jack on TPA6166, then insert headphone into kayboard’s jack.
B6-B0 is 02, ( correct )
HEX BIN
0x02 0000 0010
Any idea of this fail value?
What is correct register reading process for headphone jack detecting?
Is there any other register value need to be read before 0x19?
Because the IRQZ kept at LOW/HIGH when fail happened,
Is it possible to reset IRQZ by I2C register?
We can't find detail headphone detect algorithm in datasheet,
Could you have a brief description how this hardware detecting algorithm of TPA6166?