• Martin Kelly's avatar
    iio:imu: inv_mpu6050: support more interrupt types · 5ec6486d
    Martin Kelly authored
    Currently, we support only rising edge interrupts, and in fact we assume
    that the interrupt we're given is rising edge (and things won't work if
    it's not). However, the device supports rising edge, falling edge, level
    low, and level high interrupts.
    
    Empirically, on my system, switching to level interrupts has fixed a
    problem I had with significant (~40%) interrupt loss with edge
    interrupts. This issue is likely related to the SoC I'm using (Allwinner
    H3), but being able to switch the interrupt type is still a very useful
    workaround.
    
    I tested this with each interrupt type and verified correct behavior in
    a logic analyzer.
    
    Add support for these interrupt types while also eliminating the error
    case of the device tree and driver using different interrupt types.
    Signed-off-by: default avatarMartin Kelly <mkelly@xevo.com>
    Acked-by: default avatarJean-Baptiste Maneyrol <jmaneyrol@invensense.com>
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    5ec6486d
inv_mpu_i2c.c 5.42 KB