Re: UART RX wakeup from sleep not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Rick,

On Wed, 1 Dec 2010, Rick Bronson wrote:

>   I'm having trouble getting the UART wakeup from sleep via activity
> on the RX pin working.
> 
> --------------------------------------------------------
> Assumptions (using UART3)
> 
> 1. Using Arago Linux 2.6.32
> 2. OMAP3730 is in sleep mode via
>    echo 1 > /mnt/dbg/pm_debug/sleep_while_idle
> 3. The UARTi.SCR_REG[4] RX_CTS_WU_EN bit is set to 1.
> 4. The UARTi.IER_REG[4] SLEEP_MODE bit to 1
> 5. The UARTi.SYSC_REG[2] ENAWAKEUP bit is set to 1
> 6. The UARTi.WER_REG EVENT_4_RX_ACTIVITY bit is set to 1
> 7. The UARTi.SSR_REG RX_CTS_DSR_WAKE_UP_STS bit is set to 1
> 
> Expectations
> 
>   When a character arrives on the RX pin of UART3 when in sleep mode,
> the OMAP3730 exits sleep mode immediately via a RX_CTS_DSR_WAKE_UP
> interrupt.
>
> Problem
> 
>   The interrupt does happen but only after the UART clocks have been
> enabled.  The OMAP3730 seems to exit sleep mode only when the UART
> clocks are re-enabled via omap_uart_enable_clocks() in
> arch/arm/mach-omap2/serial.c

If the OMAP is in full-chip retention, the UART's asynchronous wakeup 
mechanism won't work, which appears to be what you're trying to use.  
That will only work when PER is fully powered, as far as I know.  You'll 
need to use the IO chain wakeup feature instead.  My guess is that you 
need to make sure that your UART input pads have the WAKEUPENABLE bits set 
in the CONTROL_PADCONF registers.  I think that should do it.


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux