1. 18 7月, 2014 1 次提交
  2. 05 3月, 2014 8 次提交
  3. 11 2月, 2014 1 次提交
  4. 31 12月, 2013 1 次提交
    • A
      ARM: imx: improve the comment of CCM lpm SW workaround · 48c95841
      Anson Huang 提交于
      Improve the comment of SW workaround for CCM lpm issue using
      hardware errata description to avoid confusion.
      
      ERR007265: CCM: When improper low-power sequence is used, the SoC
      enters low power mode before the ARM core executes WFI.
      
      Software workaround:
      1) Software should trigger IRQ #32 (IOMUX) to be always pending
         by setting IOMUX_GPR1_GINT.
      2) Software should then unmask IRQ #32 in GPC before setting CCM
         Low-Power mode.
      3) Software should mask IRQ #32 right after CCM Low-Power mode is
         set (set bits 0-1 of CCM_CLPCR).
      Signed-off-by: NAnson Huang <b20788@freescale.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      48c95841
  5. 21 10月, 2013 4 次提交
    • S
      ARM: imx: enable suspend for imx6sl · 9ba64fe3
      Shawn Guo 提交于
      The imx6sl low power mode implementation inherits imx6q/dl one,
      and pm-imx6q.c can just work for imx6sl with some minor updates.
      Let's enable imx6sl suspend support by reusing pm-imx6q.c and use
      cpu_is_imxXX() to handle the those minor differences between imx6sl
      and imx6q/dl.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      9ba64fe3
    • S
      ARM: imx: ensure dsm_request signal is not asserted when setting LPM · d48866fe
      Shawn Guo 提交于
      There is a defect in imx6 LPM design.  When SW tries to enter low power
      mode with following sequence, the chip will enter low power mode before
      A9 CPU execute WFI instruction:
      
      1. Set CCM_CLPCR[1:0] to 2'b00;
      2. ARM CPU enters WFI;
      3. ARM CPU wakeup from an interrupt event, which is masked by GPC or not
         visible to GPC, such as interrupt from local timer;
      4. Set CCM_CLPCR[1:0] to 2'b01 or 2'b10;
      5. ARM CPU execute WFI.
      
      Before the last step, the chip will enter WAIT mode if CCM_CLPCR[1:0] is
      set to 2'b01, or enter STOP mode if CCM_CLPCR[1:0] is set to 2'b10.
      
      The patch implements a recommended workaround for this issue.
      
      1. SW triggers irq #32(IOMUX) to be always pending manually by setting
         IOMUX_GPR1_GINT bit;
      2. SW should then unmask it in GPC before setting CCM LPM;
      3. SW should mask it right after CCM LPM is set (bit0-1 of CCM_CLPCR).
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      d48866fe
    • S
      ARM: imx6q: call WB and RBC configuration from imx6q_pm_enter() · 1d674a73
      Shawn Guo 提交于
      The WB and RBC configuration calls are currently made from
      imx6q_set_lpm() for WAIT_CLOCKED and WAIT_UNCLOCKED mode with a simple
      state tracking.  This becomes unnecessary since we can make the calls
      from imx6q_pm_enter() directly now for suspend.
      
      More importantly, the current call of imx6q_enable_wb() from
      imx6q_set_lpm() is buggy.  The CLPCR register bits configured by
      imx6q_enable_wb() will get lost, because imx6q_set_lpm() caches the same
      register and write it back at the end of the function.  That's why the
      imx6dl suspend/resume does not work currently - the wakeup from suspend
      triggers a reset on imx6dl.
      
      Moves the WB and RBC calls into imx6q_pm_enter() to save the state
      tracking and fixes above bug, so that suspend/resume can start working
      on imx6dl.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      1d674a73
    • S
      ARM: imx6q: move low-power code out of clock driver · 9e8147bb
      Shawn Guo 提交于
      The LPM (Low Power Mode) code that currently sits in imx6q clock driver
      will be reused by imx6sl.  Let's move it into pm-imx6q.c, so that we
      can keep clock driver SoC specific and reuse pm-imx6q.c on imx6sl.
      
      In order to avoid adding another ioremap for CCM block,
      imx6q_pm_set_ccm_base() is created to let clock driver set up ccm_base
      for pm code.
      
      During the move, the unused CCGR macros get removed.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      9e8147bb
  6. 12 4月, 2013 1 次提交
  7. 04 3月, 2013 1 次提交
    • N
      ARM: mach-imx: move early resume code out of the .data section · b4e61537
      Nicolas Pitre 提交于
      Building the kernel with allyesconfig fails because the i.mx early
      resume code located in the .data section is unable to fixup the bl
      relocation as the branch target gets too far away.
      
      The idea of having code in the .data section allows for easy access to
      nearby data using relative addressing while the MMU is off. However it
      is probably best to move the code back to the .text section where it
      belongs and fixup the data access instead.  This solves the bl reloc
      issue (at least until this becomes a general problem) and simplifies
      the code as well.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      b4e61537
  8. 14 1月, 2013 1 次提交
    • S
      ARM: imx: correct low-power mode setting · 83ae2098
      Shawn Guo 提交于
      The hardware reset value of bit CCM_CLPCR_LPM enables WAIT mode
      (WAIT_UNCLOCKED) by default.  However this is undesirable because
      WAIT mode should only be enabled when there is a driver managing
      ARM clock gating.  Correct the initial power mode to WAIT_CLOCKED
      (disable WAIT mode).  While at it, the power mode after resuming
      is also set back to WAIT_CLOCKED from STOP_POWER_OFF.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      83ae2098
  9. 15 10月, 2012 2 次提交
  10. 26 12月, 2011 1 次提交
  11. 31 10月, 2011 1 次提交