I have an external I2C device that signals when data is ready using a pin.
I want my Linux SBC to trigger I2C transfer routine after GPIO interrupt triggers. How would this be done within kernel space?
More generally we don't want the I2C transfer to block(I'm assuming there is an internal I2C device handling low level transfer) but we do want it started from within gpio ISR.
How would one do this?
selectso to get woken up when the state changes, and then do your I²C transfer – in userspace. You can technically do the same in kernel land, if you want to, but it's less clean and not necessarily lower-overhead. That's why I ask for the reason you want to do that in kernel space – depending on the reason, you'd approach this differently.