• Manuel Lauss's avatar
    MIPS: Alchemy: new userspace suspend interface for development boards. · 61f9c58d
    Manuel Lauss authored
    Replace the current sysctl-based suspend interface with a new sysfs-
    based one which also uses the Linux-2.6 suspend model.
    
    To configure wakeup sources, a subtree for the demoboards is created
    under /sys/power/db1x:
    
    sys/
    `-- power
        `-- db1x
            |-- gpio0
            |-- gpio1
            |-- gpio2
            |-- gpio3
            |-- gpio4
            |-- gpio5
            |-- gpio6
            |-- gpio7
            |-- timer
            |-- timer_timeout
            |-- wakemsk
            `-- wakesrc
    
    The nodes 'gpio[0-7]' and 'timer' configure the GPIO0..7 and M2
    bits of the SYS_WAKEMSK (wakeup source enable) register.  Writing '1'
    enables a wakesource, 0 disables it.
    
    The 'timer_timeout' node holds the timeout in seconds after which the
    TOYMATCH2 event should wake the system.
    
    The 'wakesrc' node holds the SYS_WAKESRC register after wakeup (in hex),
    the 'wakemsk' node can be used to get/set the wakeup mask directly.
    
    For example, to have the timer wake the system after 10 seconds of sleep,
    the following must be done in userspace:
    
    echo 10 > /sys/power/db1x/timer_timeout
    echo 1 > /sys/power/db1x/timer
    echo mem > /sys/power/sleep
    
    This patch also removes the homebrew CPU frequency switching code.  I don't
    understand how it could have ever worked reliably; it does not communicate
    the clock changes to peripheral devices other than uarts.
    Signed-off-by: default avatarManuel Lauss <mano@roarinelk.homelinux.net>
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    
     create mode 100644 arch/mips/alchemy/devboards/pm.c
    61f9c58d
au1000.h 51.9 KB