• Milo Kim's avatar
    mfd: tps65217: Make an interrupt handler simpler · fa917052
    Milo Kim authored
    Rework the IRQ handler by using HW IRQ number and status bit.
    
    Each HW IRQ number is matched with TPS65217 register layout[*].
    (USB IRQ number is 0, AC is 1, Push button is 2)
    
    When an interrupt is enabled, mask bit should be cleared (unmasked).
    If an interrupt is disabled, then mask bit should be set (masked).
    This mask value is updated into the TPS65217 register in irq_sync_unlock().
    
    Mask bit and interrupt status bit can be handled with HW IRQ number.
    Eventually, additional IRQ data, 'tps65217_irqs[]' and the function,
    'irq_to_tps65217_irq()' are not necessary.
    
    [*] TPS65217 interrupt register layout
    
     Bit7  6     5     4     3    2     1     0
    ----------------------------------------------
    | x | PBM | ACM | USBM | x | PBI | ACI | USBI
    
    PBM:  Push button status change interrupt mask
    ACM:  AC interrupt mask
    USBM: USB power status change interrupt mask
    PBI:  Push button status change interrupt
    ACI:  AC power status change interrupt
    USBI: USB power status change interrupt
    x:    Not used
    Signed-off-by: default avatarMilo Kim <woogyom.kim@gmail.com>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    fa917052
tps65217.c 10.6 KB