RK3288 can shut down the cpu, gpu and other device controllers in suspend, and it will pull the GLOBAL_PWROFF pin to high in the final stage of the process of suspend, pull the pin to low again when resume. Changes in v5: - reset-author - use "__maybe_unused" annotation - add pinctrl_force_default() in the error case - modify comments - use rk3288_bootram_sz for memcpy size - fixed error of sram save and restore - change the size of sram in example - change size to 4k Changes in v4: - use SIMPLE_DEV_PM_OPS for suspend/resume struct - remove grf regmap Changes in v3: - move the pinmux of gpio6_c6 save and restore to pinctrl-rockchip Changes in v2: - __raw_readl/__raw_writel replaced by readl_relaxed/writel_relaxed - add the regulator calls in prepare and finish. - add the pinmux of gpio6_c6 save and restore - put "rockchip,rk3288-pmu-sram" to first Chris Zhong (6): pinctrl: rockchip: add suspend/resume functions pinctrl: rockchip: save and restore gpio6_c6 pinmux in suspend/resume clk: rockchip: RK3288: add suspend and resume ARM: rockchip: add suspend and resume for RK3288 ARM: rockchip: Add pmu-sram binding ARM: dts: add RK3288 suspend support .../devicetree/bindings/arm/rockchip/pmu-sram.txt | 16 + arch/arm/boot/dts/rk3288.dtsi | 11 + arch/arm/mach-rockchip/Makefile | 1 + arch/arm/mach-rockchip/pm.c | 305 ++++++++++++++++++++ arch/arm/mach-rockchip/pm.h | 103 +++++++ arch/arm/mach-rockchip/rockchip.c | 7 + arch/arm/mach-rockchip/sleep.S | 90 ++++++ drivers/clk/rockchip/clk-rk3288.c | 60 ++++ drivers/pinctrl/pinctrl-rockchip.c | 46 +++ 9 files changed, 639 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/rockchip/pmu-sram.txt create mode 100644 arch/arm/mach-rockchip/pm.c create mode 100644 arch/arm/mach-rockchip/pm.h create mode 100644 arch/arm/mach-rockchip/sleep.S -- 1.7.9.5