This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Power management driver: wake up interaction with UART driver

This is with regard to testing the PSP 3.00.01.06 with PM capabilities on the OMAP3EVM...testing out the sleep/wake-up driver using UART activity.

If I send char's to UART3 I get them fine but when I enter sleep

via ---             # echo 1 > /dbg/pm_debug/sleep_while_idle

The power draw goes way down and then increases when I send char's again to UART3 but I don't actually receive the char's.

Question: Do I need to do something special because UART1/2 and UART3/4 are in different power domains?

The console UART (UART1) seems to work fine in this respect. HOWEVER, it does lose the first character but gets the rest.

  • Dave said:

    If I send char's to UART3 I get them fine but when I enter sleep
    via ---             # echo 1 > /dbg/pm_debug/sleep_while_idle
    The power draw goes way down and then increases when I send char's again to UART3 but I don't actually receive the char's.


    To understand the context better, i have few questions:
    1) How are we sending characters to UART3?
    2) Is there any application consuming characters off UART3? - Another tty?
    3) Did we change the console to UART3 (instead of UART1) and observe the behavior?


    Dave said:

    The console UART (UART1) seems to work fine in this respect. HOWEVER, it does lose the first character but gets the rest.

    This is a known issue in the release OMAP releases. First key press ends up being wake-up event and the original context (as UART event) is lost in the flow.

     

  • Hi Dave,

    I couldn't repeat the behavior at my end. Here is what I tried:

    1) Format MMC card and put MLO, u-boot.bin, uImage and ramdisk-base.gz
       from the 03.00.01.06 release package it (in this sequence).

    2) Connected the UART3 to a different PC with terminal emulator.
       (It was Linux box with minicom configured at 115200,8N1)

    3) Boot the kernel using the ramdisk.

    The login prompt appears on both terminal emulators.

    4) Logged into both the shells (on ttyS0 and ttyS2).

    5) Ran these commands on console (at ttyS0).
    root@arago:~#
    root@arago:~# mkdir /dbg
    root@arago:~# mount -t debugfs debugfs /dbg
    root@arago:~# echo 1 > /dbg/pm_debug/sleep_while_idle
    root@arago:~#

    6) Waited for 10 secs and typed command on the shell running on ttyS2.
       The shell is running fine.

    Can you share your procedure?