]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
arm: zynq: Suspend support
authorMichal Simek <michal.simek@xilinx.com>
Mon, 7 Aug 2017 08:55:09 +0000 (10:55 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 27 Mar 2019 13:46:32 +0000 (14:46 +0100)
commit100151541bb5e9b0b5fe4811de385d942aa5eb59
treeba3ea820a360a9a7ca9fe5d8d09be12900290466
parenta20998aabfe04b8ae76b41e36bd712cc09d719fe
arm: zynq: Suspend support

Adding initial suspend support to the Zynq architecture. The
required suspend functions are implemented and suspend is at least
partially working.
Clock gating and PLL bypassing heavily depend on device drivers.
It's likely that drivers/HW not implementing proper suspend
and resume callbacks break when a suspend is triggered.
During suspend DRAM is put into self-refresh and all DDR related
clocks are stopped and the DDR PLL is bypassed.

Also leave L2 cache enabled during suspend and enable A9 clock gating
feature.

Having self-refresh enabled at all times negatively affects
memory performance. Hence, only enable clock-stop at boot and limit
self-refresh to suspend.

Probably related: http://www.xilinx.com/support/answers/47514.htm

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/mach-zynq/Makefile
arch/arm/mach-zynq/common.h
arch/arm/mach-zynq/pm.c
arch/arm/mach-zynq/slcr.c
arch/arm/mach-zynq/suspend.S [new file with mode: 0644]
drivers/clk/zynq/clkc.c
include/linux/clk/zynq.h