• Geert Uytterhoeven's avatar
    gpio: rcar: Fine-grained Runtime PM support · 65194cb1
    Geert Uytterhoeven authored
    Currently gpio modules are runtime-resumed at probe time. This means the
    gpio module will be active all the time (except during system suspend,
    if not configured as a wake-up source).
    
    While an R-Car Gen2 gpio module retains pins configured for output at
    the requested level while put in standby mode, gpio registercannot be
    accessed while suspended.  Unfortunately pm_runtime_get_sync() cannot be
    called from all contexts where gpio register access is needed. Hence
    move the Runtime PM handling from probe/remove time to gpio request/free
    time, which is probably the best we can do.
    
    On r8a7791/koelsch, gpio modules 0, 1, 3, and 4 are now suspended during
    normal use (gpio2 is used for LEDs and regulators, gpio5 for keys, gpio6
    for SD-Card CD & WP, gpio7 for keys and regulators).
    Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    65194cb1
gpio-rcar.c 13.7 KB