Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1368962 > unrolled thread
| Started by | Shawn Guo <shawnguo@kernel.org> |
|---|---|
| First post | 2016-04-01 04:30 +0200 |
| Last post | 2016-04-01 08:50 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH 15/18] ARM: vf610: PM: initial suspend/resume support Shawn Guo <shawnguo@kernel.org> - 2016-04-01 04:30 +0200
Re: [PATCH 15/18] ARM: vf610: PM: initial suspend/resume support Stefan Agner <stefan@agner.ch> - 2016-04-01 08:50 +0200
| From | Shawn Guo <shawnguo@kernel.org> |
|---|---|
| Date | 2016-04-01 04:30 +0200 |
| Subject | Re: [PATCH 15/18] ARM: vf610: PM: initial suspend/resume support |
| Message-ID | <riX0t-65Z-1@gated-at.bofh.it> |
On Wed, Mar 09, 2016 at 06:16:56PM -0800, Stefan Agner wrote: > Add system suspend and resume support for Vybrid SoC. The standby > sleep state puts the SoC in STOP mode. The SoC can be woken through > an interrupt from GPC (Global Power Controller). The GPC can use any > interrupt as wake-up source. To save power the main PLL1 is bypassed > and uses the 24MHz on-chip oscillator. However, memory clock need to > be at full speed, hence the PLL2 needs to be on to keep the memory > clocked. The mode is completely implemented in C since we can access > the full memory at all times. The mode provides most power saving > while being able to be woken by any IRQ as wake-up source. > > The mem sleep state (Suspend-to-RAM) uses Vybrid's LPSTOP2 mode. This > mode powergates most parts of the SoC expect some peripherials such as > Wake-Up controller (WKPU) or LP RTC. Parts of the internal SRAM is > retained too. The suspend code written in assembly runs from this SRAM. > The code puts the main memory (DDR3) into self-refresh mode and takes > it out of self-refresh mode on resume. Verified with Colibri VF50/VF61 > V1.2A. > > Signed-off-by: Stefan Agner <stefan@agner.ch> > --- > arch/arm/mach-imx/Makefile | 3 + > arch/arm/mach-imx/common.h | 10 + > arch/arm/mach-imx/mach-vf610.c | 8 + > arch/arm/mach-imx/pm-vf610.c | 634 ++++++++++++++++++++++++++++++++++++++ > arch/arm/mach-imx/suspend-vf610.S | 437 ++++++++++++++++++++++++++ > drivers/clk/imx/clk-vf610.c | 17 + > 6 files changed, 1109 insertions(+) > create mode 100644 arch/arm/mach-imx/pm-vf610.c > create mode 100644 arch/arm/mach-imx/suspend-vf610.S I know this is how we implemented suspend for i.MX6. But this is not the direction moving forward. When people was pushing a pile of code adding suspend for i.MX7D, I refused to take it and asked them to push those hardware details into firmware and use PSCI to implement suspend. I would like to suggest the same for Vybrid. Shawn
[toc] | [next] | [standalone]
| From | Stefan Agner <stefan@agner.ch> |
|---|---|
| Date | 2016-04-01 08:50 +0200 |
| Message-ID | <rj145-vD-9@gated-at.bofh.it> |
| In reply to | #1368962 |
On 2016-03-31 19:25, Shawn Guo wrote: > On Wed, Mar 09, 2016 at 06:16:56PM -0800, Stefan Agner wrote: >> Add system suspend and resume support for Vybrid SoC. The standby >> sleep state puts the SoC in STOP mode. The SoC can be woken through >> an interrupt from GPC (Global Power Controller). The GPC can use any >> interrupt as wake-up source. To save power the main PLL1 is bypassed >> and uses the 24MHz on-chip oscillator. However, memory clock need to >> be at full speed, hence the PLL2 needs to be on to keep the memory >> clocked. The mode is completely implemented in C since we can access >> the full memory at all times. The mode provides most power saving >> while being able to be woken by any IRQ as wake-up source. >> >> The mem sleep state (Suspend-to-RAM) uses Vybrid's LPSTOP2 mode. This >> mode powergates most parts of the SoC expect some peripherials such as >> Wake-Up controller (WKPU) or LP RTC. Parts of the internal SRAM is >> retained too. The suspend code written in assembly runs from this SRAM. >> The code puts the main memory (DDR3) into self-refresh mode and takes >> it out of self-refresh mode on resume. Verified with Colibri VF50/VF61 >> V1.2A. >> >> Signed-off-by: Stefan Agner <stefan@agner.ch> >> --- >> arch/arm/mach-imx/Makefile | 3 + >> arch/arm/mach-imx/common.h | 10 + >> arch/arm/mach-imx/mach-vf610.c | 8 + >> arch/arm/mach-imx/pm-vf610.c | 634 ++++++++++++++++++++++++++++++++++++++ >> arch/arm/mach-imx/suspend-vf610.S | 437 ++++++++++++++++++++++++++ >> drivers/clk/imx/clk-vf610.c | 17 + >> 6 files changed, 1109 insertions(+) >> create mode 100644 arch/arm/mach-imx/pm-vf610.c >> create mode 100644 arch/arm/mach-imx/suspend-vf610.S > > I know this is how we implemented suspend for i.MX6. But this is not > the direction moving forward. When people was pushing a pile of code > adding suspend for i.MX7D, I refused to take it and asked them to push > those hardware details into firmware and use PSCI to implement suspend. > I would like to suggest the same for Vybrid. Yeah I saw your comment on the i.MX7D patchset, and kind of hoped it does not apply for Vybrid :-) I see, need to look into PSCI closer, and see how much work it would be to set that up and transfer the code into it... -- Stefan
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web