From patchwork Tue Jan 9 07:59:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chanwoo Choi X-Patchwork-Id: 10151109 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CA18C601A1 for ; Tue, 9 Jan 2018 08:00:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C034C287B4 for ; Tue, 9 Jan 2018 08:00:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B552B287E7; Tue, 9 Jan 2018 08:00:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5A477287B4 for ; Tue, 9 Jan 2018 08:00:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755901AbeAIH7r (ORCPT ); Tue, 9 Jan 2018 02:59:47 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:53679 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754273AbeAIH7J (ORCPT ); Tue, 9 Jan 2018 02:59:09 -0500 Received: from epcas1p4.samsung.com (unknown [182.195.41.48]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20180109075906epoutp01df6eba533309461e1bbd5ca41ec908b9~IFVkADrPZ0117501175epoutp01L; Tue, 9 Jan 2018 07:59:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20180109075906epoutp01df6eba533309461e1bbd5ca41ec908b9~IFVkADrPZ0117501175epoutp01L DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1515484746; bh=15SRBy7Cvd7idzNkODjWAN5t2UcozYK9xMzsEY7C2Z8=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=vBii9J+vJbTSm9/cLUMj3eotQXxQMud0234ArnlSvLCfoV4EGzHwKDCFLlSy2LMsW vTRqSqCV5yg4Jgf9S+jC0yWqvAtkIKt0ydfZldhEXNUUf75J1y0CweYtRGbouxgCOl 7C7q/4gedhR6t7m5vjqYVV2g4BaCdOXqEHXmlb3Q= Received: from epsmges2p4.samsung.com (unknown [182.195.40.66]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20180109075906epcas1p2838215b2576afc3d40c25f13c11bf422~IFVjlAVxj0840608406epcas1p2_; Tue, 9 Jan 2018 07:59:06 +0000 (GMT) Received: from epcas2p2.samsung.com ( [182.195.41.54]) by epsmges2p4.samsung.com (Symantec Messaging Gateway) with SMTP id EC.AB.04319.A46745A5; Tue, 9 Jan 2018 16:59:06 +0900 (KST) Received: from epsmgms2p2new.samsung.com (unknown [182.195.42.143]) by epcas2p1.samsung.com (KnoxPortal) with ESMTP id 20180109075905epcas2p1fe6b554b646dbc80e04273ad6dd8489c~IFVjLUuEH0243002430epcas2p1l; Tue, 9 Jan 2018 07:59:05 +0000 (GMT) X-AuditID: b6c32a48-947ff700000010df-dd-5a54764a845b Received: from epmmp2 ( [203.254.227.17]) by epsmgms2p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 38.3E.03909.946745A5; Tue, 9 Jan 2018 16:59:05 +0900 (KST) Received: from localhost.localdomain ([10.113.77.231]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0P2A00EW93IGT980@mmp2.samsung.com>; Tue, 09 Jan 2018 16:59:05 +0900 (KST) From: Chanwoo Choi To: krzk@kernel.org, m.szyprowski@samsung.com, s.nawrocki@samsung.com, kgene@kernel.org Cc: tomasz.figa@gmail.com, cw00.choi@samsung.com, chanwoo@kernel.org, jh80.chung@samsung.com, inki.dae@samsung.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Jonghwa Lee Subject: [RFC PATCH 5/9] soc: samsung: pm: Add support for suspend-to-ram of Exynos5433 Date: Tue, 09 Jan 2018 16:59:02 +0900 Message-id: <1515484746-10656-6-git-send-email-cw00.choi@samsung.com> X-Mailer: git-send-email 1.8.0 In-reply-to: <1515484746-10656-1-git-send-email-cw00.choi@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFKsWRmVeSWpSXmKPExsWy7bCmma5XWUiUwdwFLBYTb1xhsbj+5Tmr xfwj51gtJt2fwGJx41cbq0Xn2SfMFv2PXzNbnD+/gd1i0+NrrBaXd81hs5hxfh+Txdojd9kt Dr9pZ7VYtesPowOfx85Zd9k9Nq3qZPPYvKTeo2/LKkaPz5vkAlijUm0yUhNTUosUUvOS81My 89JtlbyD453jTc0MDHUNLS3MlRTyEnNTbZVcfAJ03TJzgA5VUihLzCkFCgUkFhcr6dvZFOWX lqQqZOQXl9gqRRsaGukZGpjrGRkZ6ZkYx1oZmQKVJKRmvP2mWTBZqGLTuQtMDYyz+bsYOTkk BEwkXl/4wQpiCwnsYJR4tSO1i5ELyP7OKDH17hpWmKL7Kw4wQyQ2MEr8/XKDDaLjB6NE32xR EJtNQEti/wuIuIhApMTPvccYQRqYBZYySfxY844JJCEMlGhb+BRsKouAqsSB7f0sIDavgKvE 2t5WRohtchIf9jxiB7E5Bdwkdv9bwwYySEJgB5vEwqeX2SCKXCSmvlrODmELS7w6vgXKlpZ4 tmojI0RDO6NE+955zBDOFEaJc9fvMUFUGUs8W9gFZjML8El0HP4L1M0BFOeV6GgTgijxkHg4 8w9U2FHi8YxEiPdnMkr0bNjOPIFRagEjwypGsdSC4tz01GKjAhO94sTc4tK8dL3k/NxNjOB0 pOWxg/HAOZ9DjAIcjEo8vBKtwVFCrIllxZW5hxglOJiVRHh95wOFeFMSK6tSi/Lji0pzUosP MZoCA2cis5Rocj4wVeaVxBuaWBqYmJkZmZtZAFODOG9bgEuUkEB6YklqdmpqQWoRTB8TB6dU A6PqxKflnA/elCW98+4Ts+LfN0nRaGmHE0+/zE7zClcBtqKFy9nsX87xM3zW7VHqJWV21Pr4 1tss8hviL21r//4n5WJL7aY5e3mvbK6Y/+jTp86uP3cYmeVWMlXF/u9mSFu+s2d7Jf/m8wFf +r7+N2u+Oou/awrXvq5Zk76tXfNkWVlG6oWe4weVWIozEg21mIuKEwHTTdNNXQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrDLMWRmVeSWpSXmKPExsVy+t9jQV3PspAog6k96hYTb1xhsbj+5Tmr xfwj51gtJt2fwGJx41cbq0Xn2SfMFv2PXzNbnD+/gd1i0+NrrBaXd81hs5hxfh+Txdojd9kt Dr9pZ7VYtesPowOfx85Zd9k9Nq3qZPPYvKTeo2/LKkaPz5vkAlijuGxSUnMyy1KL9O0SuDLe ftMsmCxUsencBaYGxtn8XYycHBICJhL3VxxgBrGFBNYxSvQ9c+hi5AKyfzBK9N/cwAiSYBPQ ktj/4gYbiC0iECnxZOpTMJtZYCmTxIOHYDXCQPG2hU9ZQWwWAVWJA9v7WUBsXgFXibW9rYwQ y+QkPux5xA5icwq4Sez+t4YNYrGrxMMHpxknMPIsYGRYxSiZWlCcm55bbFRglJdarlecmFtc mpeul5yfu4kRGIbbDmv172B8vCT+EKMAB6MSD69Ea3CUEGtiWXFl7iFGCQ5mJRFe3/lAId6U xMqq1KL8+KLSnNTiQ4zSHCxK4rz8+ccihQTSE0tSs1NTC1KLYLJMHJxSDYz15ilxlo01k7+X RK7cHvEnPHDiTNPcDc2Sn05/q5Y5qv/42GM+54uW65Ptpl8qmpvnJRos8e9Ixtmg9m/33exn T5jufvyZ/BM9XvYFqh1Tnj/90nRs24PjpabJP39MXOiUdpdxXXEYdwlnwB/nQ5u/LIq+4Nwu 23mjZlfANJejr8xsWcr5Fh9XYinOSDTUYi4qTgQAxApvBz8CAAA= X-CMS-MailID: 20180109075905epcas2p1fe6b554b646dbc80e04273ad6dd8489c X-Msg-Generator: CA CMS-TYPE: 102P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180109075905epcas2p1fe6b554b646dbc80e04273ad6dd8489c X-RootMTR: 20180109075905epcas2p1fe6b554b646dbc80e04273ad6dd8489c References: <1515484746-10656-1-git-send-email-cw00.choi@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds the specific exynos_pm_data instance for Exynos5433 in order to support the suspend-to-ram. Exynos5433 SoC need to write the 'cpu_resume' poiter address and the specific magic number for suspend mode. Signed-off-by: Jonghwa Lee Signed-off-by: Chanwoo Choi --- drivers/soc/samsung/exynos-pm.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/soc/samsung/exynos-pm.c b/drivers/soc/samsung/exynos-pm.c index 45d84bbe5e61..70d949ba5cab 100644 --- a/drivers/soc/samsung/exynos-pm.c +++ b/drivers/soc/samsung/exynos-pm.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -123,7 +124,44 @@ static void exynos_pm_finish(void) #define exynos_pm_data_arm_ptr(data) NULL #endif +static int exynos5433_pm_suspend(unsigned long unused) +{ + /* + * Exynos5433 uses PSCI v0.1 which provides the only one + * entry point (psci_ops.cpu_suspend) for both cpuidle and + * suspend-to-RAM. Also, PSCI v0.1 needs the specific 'power_state' + * parameter for the suspend mode. In order to enter suspend mode, + * Exynos5433 calls the 'psci_ops.cpu_suspend' with '0x3010000' + * power_state parameter. + * + * '0x3010000' means that both cluster and system are going to enter + * the power-down state as following: + * - [25:24] 0x3 : Indicate the cluster and system. + * - [16] 0x1 : Indicate power-down state. + */ + return psci_ops.cpu_suspend(0x3010000, __pa_symbol(cpu_resume)); +} + +static int exynos5433_pm_suspend_enter(suspend_state_t state) +{ + if (!sysram_ns_base_addr) + return -EINVAL; + + __raw_writel(virt_to_phys(cpu_resume), sysram_ns_base_addr + 0x8); + __raw_writel(EXYNOS_SLEEP_MAGIC, sysram_ns_base_addr + 0xc); + + return cpu_suspend(0, exynos5433_pm_suspend); +} + +const struct exynos_pm_data exynos5433_pm_data = { + .enter = exynos5433_pm_suspend_enter, +}; + static const struct of_device_id exynos_pm_of_device_ids[] = { + { + .compatible = "samsung,exynos5433-pmu", + .data = exynos_pm_data_arm_ptr(exynos5433_pm_data), + }, { /*sentinel*/ }, };