Thread (8 messages) 8 messages, 2 authors, 2014-07-15

Re: gpio-omap: wakeup mask

flat view

From: Tony Lindgren <tony@atomide.com>
Date: 2014-07-04 07:27:55
Also in: linux-omap, lkml

* Pascal Huerst [off-list ref] [140702 05:12]:
Hi everyone,

we have a device with an am335x and are using some gpios on bank0 to
wake up the device from suspend to ram.

We have some user buttons which are configured in the devicetree as
gpio-keys and one power-key which should wake up the device:

&buttons {
        power {
                label = "Power";
                gpios = <&gpio0 6 1>;
                linux,code = <116>;
                gpio-key,wakeup;
        };

        one {
                label = "One";
                gpios = <&gpio0 11 1>;
                linux,code = <2>;
        };

        : : :
}

The problem is, that the device wakes up on any trigger on bank 0. No
matter which button was pressed. "gpio-key,wakeup" seems not to have any
influence.

Now, if I comment the following lines out in drivers/gpio/gpio-omap.c :
set_gpio_trigger(...).

321
322 if (likely(!(bank->non_wakeup_gpios & gpio_bit))) {
323    _gpio_rmw(base, bank->regs->wkup_en, gpio_bit, trigger != 0);
324      bank->context.wake_en =
325        readl_relaxed(bank->base + bank->regs->wkup_en);
326 }
327

Everything works as expected. But I don't really understand why? Is this
a bug, or does this break something else I have not discovered yet?
The GPIO wake-up events are working from off-idle for omap3
the last time I checked, so sounds like this is some am335x
related issue.

What does your bank->context.wake_en mask get set to with this code?

Regards,

Tony
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help