Skip to content
  • Tobias Kahlki's avatar
    [DRIVER][PCA953X] Workaround for int status race condition · 31c0eae0
    Tobias Kahlki authored and Tobias Kahlki's avatar Tobias Kahlki committed
    Reading the input status register resets the interrupt status register.
    If an interrupt from the GPIO-Expander to the SoC is issued and an additional
    GPIO read occurs at the same time, the GPIO read might reset the interrupt
    status register (by reading the input status register). The IRQ routine of
    the GPIO-Expander is then unable to determine on which input an interrupt
    occurred. To prevent this from happening, the interrupt status register is
    read before each read of the input status register and the result is saved
    for later processing. In the IRQ routine, the current interrupt status
    register value is then combined with the stored value.
    31c0eae0
Loading