• Krzysztof Kozlowski's avatar
    mfd: sec: Add PM ops and make it a wake up source · f6d6daaf
    Krzysztof Kozlowski authored
    Add PM suspend/resume ops to the sec MFD core driver and make it a wake
    up source. This allows proper waking from suspend to RAM and also fixes
    broken interrupts after resuming:
    [   42.705703] sec_pmic 7-0066: Failed to read IRQ status: -5
    
    Interrupts stop working after first resume initiated by them (e.g. by
    RTC Alarm interrupt) because interrupt registers were not cleared properly.
    
    When device is woken up from suspend by RTC Alarm, an interrupt occurs
    before resuming I2C bus controller. The interrupt is handled by
    regmap_irq_thread which tries to read RTC registers. This read fails
    (I2C is still suspended) and RTC Alarm interrupt is disabled.
    
    Disable the S5M8767 interrupts during suspend (disable_irq()) and enable
    them during resume so the device will be still woken up but the interrupt
    won't happen before resuming I2C bus.
    Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    f6d6daaf
sec-core.c 9.6 KB