• Dmitry Torokhov's avatar
    i2c: allow specifying separate wakeup interrupt in device tree · 3fffd128
    Dmitry Torokhov authored
    Instead of having each i2c driver individually parse device tree data in
    case it or platform supports separate wakeup interrupt, and handle
    enabling and disabling wakeup interrupts in their power management
    routines, let's have i2c core do that for us.
    
    Platforms wishing to specify separate wakeup interrupt for the device
    should use named interrupt syntax in their DTSes:
    
    	interrupt-parent = <&intc1>;
    	interrupts = <5 0>, <6 0>;
    	interrupt-names = "irq", "wakeup";
    
    This patch is inspired by work done by Vignesh R <vigneshr@ti.com> for
    pixcir_i2c_ts driver.
    
    Note that the original code tried to preserve any existing wakeup
    settings from userspace but was not quite right in that regard:
    it would preserve wakeup flag set by userspace upon driver rebinding;
    but it would re-arm the wakeup flag if it was disabled by userspace.
    
    We think that resetting the flag upon re-binding the driver is proper
    behavior as the driver is responsible for setting up and handling
    wakeups.
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    Tested-by: default avatarVignesh R <vigneshr@ti.com>
    [wsa: updated the commit message]
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    3fffd128
i2c-core.c 84 KB