• Joseph Lo's avatar
    ARM: tegra: add LP1 suspend support for Tegra30 · e7a932b1
    Joseph Lo authored
    The LP1 suspend mode will power off the CPU, clock gated the PLLs and put
    SDRAM to self-refresh mode. Any interrupt can wake up device from LP1. The
    sequence when LP1 suspending:
    
    * tunning off L1 data cache and the MMU
    * storing some EMC registers, DPD (deep power down) status, clk source of
      mselect and SCLK burst policy
    * putting SDRAM into self-refresh
    * switching CPU to CLK_M (12MHz OSC)
    * tunning off PLLM, PLLP, PLLA, PLLC and PLLX
    * switching SCLK to CLK_S (32KHz OSC)
    * shutting off the CPU rail
    
    The sequence of LP1 resuming:
    
    * re-enabling PLLM, PLLP, PLLA, PLLC and PLLX
    * restoring the clk source of mselect and SCLK burst policy
    * setting up CCLK burst policy to PLLX
    * restoring DPD status and some EMC registers
    * resuming SDRAM to normal mode
    * jumping to the "tegra_resume" from PMC_SCRATCH41
    
    Due to the SDRAM will be put into self-refresh mode, the low level
    procedures of LP1 suspending and resuming should be copied to
    TEGRA_IRAM_CODE_AREA (TEGRA...
    e7a932b1
sleep.S 3.83 KB