On Thu, Oct 20, 2016 at 03:40:29PM +0200, H. Nikolaus Schaller wrote:
But now as it is solved, I can't get the ts3a plug detection interrupt working.
From your description it seems your actual problem is lack of update of
GPIO management chip config, at last it is where you are looking for the problem. However from skimming drivers/gpio/gpio-pca953x.c and sound/soc/codecs/ts3a227e.c it caught my attention that ts3a227e seems to need explicit ts3a227e_enable_jack_detect() call in order to bind events to actual struct snd_soc_jack *jack, which is used in snd_soc_jack_report(). snd_soc_jack_report() returns early if jack is NULL, which is the case until ts3a227e_enable_jack_detect() is called.
You can see these calls in place only for two SoCs in linux repo, and none of them seem related to Pyra or Letux project:
$ grep ts3a227e_enable_jack_detect * -RnI sound/soc/rockchip/rockchip_max98090.c:173: ret = ts3a227e_enable_jack_detect(component, &headset_jack); sound/soc/intel/boards/cht_bsw_max98090_ti.c:204: return ts3a227e_enable_jack_detect(component, &ctx->jack);
Maybe the problem is here? Or, at last, this is one of parts which should be changed to fix the problem?
I'm not sure what I'll say next makes sense, but I guess you could somehow manage to configure that GPIO chip pca953x to enable pins of ts3a227e statically. Then, the only remaining thing to do would be ts3a227e_enable_jack_detect(). However, I have no idea what is appropriate place and context to put that call into.