Skip to content

Conversation

@allemanm
Copy link
Contributor

@allemanm allemanm commented Dec 1, 2025

The gpio_pca_series driver may stop responding if the gpio_int is asserted between reading the interrupt status and clearing it. If the interrupt gpio_int is not deasserted by the time the handler finishes, the interrupt work should be rescheduled.

The gpio_pca_series driver may stop responding if the gpio_int is
asserted between reading the interrupt status and clearing it.
If the interrupt gpio_int is not deasserted by the time the handler
finishes, the interrupt work should be rescheduled.

Signed-off-by: Matthias Alleman <matthias.alleman@basalte.be>
@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 1, 2025

@pdgendt
Copy link
Contributor

pdgendt commented Dec 2, 2025

CC @CkovMk

@CkovMk
Copy link
Contributor

CkovMk commented Dec 5, 2025

This is indeed an issue that I did not think for.

For extended devices, this driver only clears the bits that is asserted in the read. Should another bit is set during this period, it won't get cleared, causing int_gpio to remain asserted. As int_gpio is configured as edge trigger, it won't trigger interrupt ever again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants