ARM: dts: omap3-overo: Fix UART wake-up events
authorTony Lindgren <tony@atomide.com>
Thu, 18 Sep 2014 16:03:36 +0000 (09:03 -0700)
committerTony Lindgren <tony@atomide.com>
Thu, 18 Sep 2014 16:03:36 +0000 (09:03 -0700)
commit28ce556b2eb5a38aecd8292ef7e1da4599766bd6
tree89cae6dc1f1629e9fb9f943671400a04675bbc81
parentd27704d1ec2f9ba06247b402c58a6f2febecef78
ARM: dts: omap3-overo: Fix UART wake-up events

Compared to legacy booting, we don't have wake-up events enabled
for device tree based booting. This means that if deeper idle
states are enabled, the device won't wake up to UART events and
seems like it has hung.

Let's fix that by adding the wake-up interrupt. Note that we
don't need to set the PIN_OFF_WAKEUPENABLE any longer, that's
handled by the wake-up interrupt when the serial driver does
request_irq on it.

Tested with the following on omap3-overo-summit that has the
ES2.1 omap:

#!/bin/bash

uarts=$(find /sys/class/tty/ttyO*/device/power/ -type d)
for uart in $uarts; do
        echo 3000 > $uart/autosuspend_delay_ms
done

uarts=$(find /sys/class/tty/ttyO*/power/ -type d)
for uart in $uarts; do
        echo enabled > $uart/wakeup
        echo auto > $uart/control
done

echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode

# grep -i uart /proc/interrupts
 90:       1085      INTC  74  OMAP UART2
338:          5   pinctrl 366  OMAP UART2

# grep ^core_pwrdm /sys/kernel/debug/pm_debug/count
core_pwrdm (ON),OFF:1654,RET:131,INA:39,ON:1825...

Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/omap3-overo-common-peripherals.dtsi