Skip to content
  • Nick Hu's avatar
    nds32: Power management for nds32 · 7938e631
    Nick Hu authored
    
    
    There are three sleep states in nds32:
    	suspend to idle,
    	suspend to standby,
    	suspend to ram
    
    In suspend to ram, we use the 'standby' instruction to emulate
    power management device to hang the system util wakeup source
    send wakeup events to break the loop.
    
    First, we push the general purpose registers and system registers
    to stack. Second, we translate stack pointer to physical address
    and store to memory to save the stack pointer. Third, after write
    back and invalid the cache we hang in 'standby' intruction.
    When wakeup source trigger wake up events, the loop will be break
    and resume the system.
    
    Signed-off-by: default avatarNick Hu <nickhu@andestech.com>
    Acked-by: default avatarPavel Machek <pavel@ucw.cz>
    Acked-by: default avatarGreentime Hu <greentime@andestech.com>
    Signed-off-by: default avatarGreentime Hu <greentime@andestech.com>
    7938e631