I have a board design with a TLV320AIC3x codec + TS3A227E headset detect chip and am using the tlv320aic3x and ts3a227e drivers in mainline Linux. The TS3A227E serves a couple of purposes including support for multiple headset pinout standards and sensing buttons on the mic (ie see Android wired headset spec: https://source.android.com/devices/accessories/headset/specification.html).
In order for the button detect to work mic bias from the codec needs to be enabled (at init time and regardless of playing or recording audio). What is the correct way to do this in either device-tree if using something like simple-audio-card or in a machine driver?
I have not had success by setting the codec drivers 'idle_bias_off = false' - while this does keep mic bias on at init and after audio playback it kills it after record due to the 'Mic Bias' dapm widget in the case of the tlv320aic3x.c driver. I'm thinking I need to instead remove the routing or disable the 'Mic Bias' but I'm not clear how to do this?
Regards,
Tim