[PATCH v7 2/5] ARM: rockchip: add suspend and resume for RK3288
Doug Anderson
dianders at chromium.org
Mon Nov 10 14:42:06 PST 2014
Chris,
On Fri, Nov 7, 2014 at 5:49 AM, Chris Zhong <zyw at rock-chips.com> wrote:
> It's a basic version of suspend and resume for rockchip,
> it only support RK3288 now.
>
> Signed-off-by: Tony Xie <xxx at rock-chips.com>
> Signed-off-by: Chris Zhong <zyw at rock-chips.com>
> Tested-by: Doug Anderson <dianders at chromium.org>
> Reviewed-by: Doug Anderson <dianders at chromium.org>
>
> ---
>
> Changes in v7:
> - get rid all of unused code
>
> Changes in v6:
> - get rid of the save/restore of SRAM
> - doing the copy of resume code once at init time
> - remove ROCKCHIP_ARM_OFF_LOGIC_DEEP from rk3288_fill_in_bootram
> - add of_platform_populate in rockchip_dt_init
>
> Changes in v5:
> - use rk3288_bootram_sz for memcpy size
> - fixed error of sram save and restore
>
> Changes in v4:
> - remove grf regmap
>
> Changes in v3:
> - move the pinmux of gpio6_c6 save and restore to pinctrl-rockchip
>
> Changes in v2:
> - add the regulator calls in prepare and finish.
> - add the pinmux of gpio6_c6 save and restore
>
> arch/arm/mach-rockchip/Makefile | 1 +
> arch/arm/mach-rockchip/pm.c | 264 ++++++++++++++++++++++++++++++++++++++
> arch/arm/mach-rockchip/pm.h | 99 ++++++++++++++
> arch/arm/mach-rockchip/rockchip.c | 2 +
> arch/arm/mach-rockchip/sleep.S | 73 +++++++++++
> 5 files changed, 439 insertions(+)
I haven't done a full re-review of this version, but...
> +static int rk3288_suspend_iomap(void)
> +{
> + struct device_node *node;
> + struct resource res;
> +
> + node = of_find_compatible_node(NULL, NULL, "rockchip,rk3288-pmu-sram");
> + if (!node) {
> + pr_err("%s: could not find bootram dt node\n", __func__);
> + return -1;
> + }
> +
> + rk3288_bootram_base = of_iomap(node, 0);
> + if (!rk3288_bootram_base) {
> + pr_err("%s: could not map bootram base\n", __func__);
> + return -1;
> + }
> +
> + if (of_address_to_resource(node, 0, &res)) {
> + pr_err("%s: could not get bootram phy addr\n", __func__);
> + return -1;
> + }
> +
> + rk3288_bootram_phy = res.start;
> +
> + /* copy resume code and data to bootsram */
> + memcpy(rk3288_bootram_base, rockchip_slp_cpu_resume,
> + rk3288_bootram_sz);
> +
> + rk3288_config_bootdata();
Note that much of the above is no longer really part of the "iomap".
It should probably be moved out into "rk3288_suspend_init".
More information about the Linux-rockchip
mailing list