[PATCH v2 1/4] pinctrl: rockchip: Set wake_enabled
Heiko Stübner
heiko at sntech.de
Thu Oct 23 16:55:17 PDT 2014
Am Donnerstag, 23. Oktober 2014, 09:55:27 schrieb Doug Anderson:
> Heiko,
>
> On Thu, Oct 23, 2014 at 9:43 AM, Heiko Stübner <heiko at sntech.de> wrote:
> > Am Dienstag, 21. Oktober 2014, 10:47:32 schrieb Doug Anderson:
> >> The rockchip pinctrl driver uses irq_gc_set_wake() but doesn't setup
> >> the .wake_enabled member. That means that we can never actually use a
> >> pin for wakeup. When "irq_set_irq_wake()" tries to call through it
> >> will always get a failure from set_irq_wake_real() and will then set
> >> wake_depth to 0. Assuming you can resume you'll later get an error
> >> message about "Unbalanced IRQ x wake disable".
> >
> > The change itself looks reasonable. But now being able to read the docs
> > for
> > it, it doesn't look like all gpios are able to wake the system.
> >
> > On the rk3288 it seems to be only the pins from gpio0 that can do this
> > (similar for different banks on the other Rockchip SoCs) - see
> > PMU_WAKEUP_CFG0 and PMU_WAKEUP_CFG1[1].
> >
> > So I guess we'll need something more eloquent to handle this.
>
> I think long term we're going to need something more elegant, yes.
> ...but it turns out that as long as you're not in the low, low power
> state that all pins can wake up the system.
>
> Check out "Table 4-5 Power Domain Status Summary in all Work Mode".
> In Mode 3 (called "sleep") all GPIOs can wake the system up. This is
> the mode that Chris's current suspend/resume patch uses (actually, it
> doesn't quite get all the way to that mode yet, but that's the
> target). It would be ideal if we could get to Mode 4 (called
> "poweroff"), but when I talked to Rockchip they were a little hesitant
> about promising that it would work.
You're right ... didn't read far enough it seems, so this patch also
Reviewed-by: Heiko Stuebner <heiko at sntech.de>
> NOTE: One unresolved thing with the current series (this series +
> Chris's) is that pretty much any interrupt can wake up the system.
> Even typing on the UART seems to do it. Somehow we're not masking
> interrupts in a way that prevents this, but I haven't tracked it down
> yet. I don't think it's related to this patch.
I guess the interrupts that aren't wakeup sources should then get masked when
going to sleep?
Heiko
More information about the linux-arm-kernel
mailing list