H. Nikolaus Schaller
hns at goldelico.com
Mon Oct 24 11:11:00 CEST 2016
I have merged rc2 and some improvements, mainly for the Pyra.
The most notable thing is that I have added a hack suggested
by Andrey to enable the interrupt gpio input of the tca6424
that comes from the ts3a227 headset switch.
Details: the tca6424 is a 24 bit gpio expander connected
through I2C and it can detect changes on each of the gpios
and trigger an interrupt gpio (gpio3_76 on EVM and gpio6_161
on Pyra) of the OMAP5.
Device tree sets up the tca6424 to pass this omap5 gpio interrupt
to the tca6424 driver (pca953x.c) and this driver detects which
input has changed and should then forward the interrupt to the
driver associated with that gpio. In our case the ts3a227 asks
through the device tree to receive these interrupt notifications.
Unfortunately this does not work.
The probe function of the ts3a227 correctly identifies the interrupt
in DT, but the bit mask in the tca6424 driver is not set to make
the tca6424 interrupt handler recognize the change as an
I have added a really dirty hack  to enable this mask
in the tca6424 probe function and then, the interrupt is
partially recognised. But it is not forwarded to the interrupt
handler of the ts3a227.
So I suspect that the setup of the tca6424 as an interrupt
controller is missing something.
Anyways, with this workaround I was able to debug the ts3a227
hardware so that inserting or unplugging a headset makes
the tca6424 driver (but not yet the ts3a227 driver) do some
printk I have added .
This means that the hardware will be ok and we only have to
fix the tca6424 driver to do what it promises as interrupt
The latest kernel is available for testing/comments through:
More information about the Letux-kernel