From patchwork Thu Jun 26 11:12:15 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vikas Sajjan X-Patchwork-Id: 4427061 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id AD397BEEAA for ; Thu, 26 Jun 2014 11:14:46 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D49E9201DD for ; Thu, 26 Jun 2014 11:14:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 76E9C20397 for ; Thu, 26 Jun 2014 11:14:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755947AbaFZLOn (ORCPT ); Thu, 26 Jun 2014 07:14:43 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:12296 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756715AbaFZLOm (ORCPT ); Thu, 26 Jun 2014 07:14:42 -0400 Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N7R00NM5WKH4E80@mailout3.samsung.com> for linux-samsung-soc@vger.kernel.org; Thu, 26 Jun 2014 20:14:41 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.123]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 3E.D8.19452.1A00CA35; Thu, 26 Jun 2014 20:14:41 +0900 (KST) X-AuditID: cbfee68e-b7fb96d000004bfc-37-53ac00a13914 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id A8.89.04943.1A00CA35; Thu, 26 Jun 2014 20:14:41 +0900 (KST) Received: from chromebld-server.sisodomain.com ([107.108.73.106]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N7R00C5OWK4P340@mmp1.samsung.com>; Thu, 26 Jun 2014 20:14:41 +0900 (KST) From: Vikas Sajjan To: linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org Cc: kgene.kim@samsung.com, tomasz.figa@gmail.com, joshi@samsung.com, sajjan.linux@gmail.com, dianders@chromium.org, Vikas Sajjan , Abhilash Kesavan Subject: [PATCH v5 3/3] clk: samsung: exynos5420: Setup clocks before system suspend Date: Thu, 26 Jun 2014 16:42:15 +0530 Message-id: <1403781135-6538-4-git-send-email-vikas.sajjan@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1403781135-6538-1-git-send-email-vikas.sajjan@samsung.com> References: <1403781135-6538-1-git-send-email-vikas.sajjan@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsWyRsSkWnchw5pgg5P9QhaP1yxmsji77CCb xfddX9gtehdcZbPY9Pgaq8WM8/uYLJ4c/shqsWrXH0aLm8+2MzlwesxuuMjisXPWXXaPzUvq Pfq2rGL0+LxJLoA1issmJTUnsyy1SN8ugSvj6IxutoIpUhWz511maWDcKdrFyMEhIWAi0d2v 0sXICWSKSVy4t56ti5GLQ0hgKaPEnEPnmCESJhLTGpewQCQWMUos2bGZGcKZwCTRsmMhE0gV m4CuxIpTz9lApooIeEssv6YIEmYWOM0o0dpjCmILC4RJXJm4jRGkhEVAVWLjJFGQMK+Au8T/ i9uZIe5RkJgzyQYkzCngIdE/czcjiC0EVPKy/yLYCRICq9gljnzbzAaSYBEQkPg2+RALRK+s xKYDUCdLShxccYNlAqPwAkaGVYyiqQXJBcVJ6UVGesWJucWleel6yfm5mxiBIX/637O+HYw3 D1gfYkwGGjeRWUo0OR8YM3kl8YbGZkYWpiamxkbmlmakCSuJ8y56mBQkJJCeWJKanZpakFoU X1Sak1p8iJGJg1OqgdHWy4adxbvtvnlponXyU7mi9clJbZuXzTdI0MhY9kNf+/ROv9CAWd9l FWU2zvsX5VPc7vIue+4ZueKMfVmL3pn99VPZ2HHCdFbvFFbNNb9TbXU8u16XLbyQ3jlPraIu +qvICzuJpypPGlnqLi3r3jjvVAD/LPPFmlw3NtuKB6Xf53uTJVfBoMRSnJFoqMVcVJwIAPCH uJSPAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrDIsWRmVeSWpSXmKPExsVy+t9jAd2FDGuCDRZO4LJ4vGYxk8XZZQfZ LL7v+sJu0bvgKpvFpsfXWC1mnN/HZPHk8EdWi1W7/jBa3Hy2ncmB02N2w0UWj52z7rJ7bF5S 79G3ZRWjx+dNcgGsUQ2MNhmpiSmpRQqpecn5KZl56bZK3sHxzvGmZgaGuoaWFuZKCnmJuam2 Si4+AbpumTlABykplCXmlAKFAhKLi5X07TBNCA1x07WAaYzQ9Q0JgusxMkADCWsYM47O6GYr mCJVMXveZZYGxp2iXYycHBICJhLTGpewQNhiEhfurWfrYuTiEBJYxCixZMdmZghnApNEy46F TCBVbAK6EitOPQeq4uAQEfCWWH5NESTMLHCaUaK1xxTEFhYIk7gycRsjSAmLgKrExklgu3gF 3CX+X9zODBKWEFCQmDPJBiTMKeAh0T9zNyOILQRU8rL/IssERt4FjAyrGEVTC5ILipPScw31 ihNzi0vz0vWS83M3MYJj6pnUDsaVDRaHGAU4GJV4eD88XhUsxJpYVlyZe4hRgoNZSYRX5Pfq YCHelMTKqtSi/Pii0pzU4kOMpkA3TWSWEk3OB8Z7Xkm8obGJuamxqaWJhYmZpZI474FW60Ah gfTEktTs1NSC1CKYPiYOTqkGxqpkRi+L08W8cyfv4o3/2OWVWJ59jXfG4hmV0mZsN/r6c4t2 FCx/VMQb9+HEtWfvp575daj9ofpuCalFrofeJwn/kIjaZyVyy+jvpveCPEqehTbXxbbeu9fx M0YtRUz5y2+viLvvI4VXdZXMU3R+ydpgs1bG2N2SyeGRj9cmMc+syX/nvTd5qMRSnJFoqMVc VJwIAA/AqV6/AgAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Prior to suspending the system, we need to ensure that certain clock source and gate registers are unmasked. while at it, add these clks to save/restore list also. Signed-off-by: Vikas Sajjan Signed-off-by: Abhilash Kesavan --- drivers/clk/samsung/clk-exynos5420.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c index 9d7d7ee..7e87d7c 100644 --- a/drivers/clk/samsung/clk-exynos5420.c +++ b/drivers/clk/samsung/clk-exynos5420.c @@ -28,6 +28,7 @@ #define GATE_BUS_CPU 0x700 #define GATE_SCLK_CPU 0x800 #define CLKOUT_CMU_CPU 0xa00 +#define SRC_MASK_CPERI 0x4300 #define GATE_IP_G2D 0x8800 #define CPLL_LOCK 0x10020 #define DPLL_LOCK 0x10030 @@ -70,6 +71,8 @@ #define SRC_TOP11 0x10284 #define SRC_TOP12 0x10288 #define SRC_TOP13 0x1028c /* 5800 specific */ +#define SRC_MASK_TOP0 0x10300 +#define SRC_MASK_TOP1 0x10304 #define SRC_MASK_TOP2 0x10308 #define SRC_MASK_TOP7 0x1031c #define SRC_MASK_DISP10 0x1032c @@ -77,6 +80,7 @@ #define SRC_MASK_FSYS 0x10340 #define SRC_MASK_PERIC0 0x10350 #define SRC_MASK_PERIC1 0x10354 +#define SRC_MASK_ISP 0x10370 #define DIV_TOP0 0x10500 #define DIV_TOP1 0x10504 #define DIV_TOP2 0x10508 @@ -98,6 +102,7 @@ #define DIV2_RATIO0 0x10590 #define DIV4_RATIO 0x105a0 #define GATE_BUS_TOP 0x10700 +#define GATE_BUS_DISP1 0x10728 #define GATE_BUS_GEN 0x1073c #define GATE_BUS_FSYS0 0x10740 #define GATE_BUS_FSYS2 0x10748 @@ -190,6 +195,10 @@ static unsigned long exynos5x_clk_regs[] __initdata = { SRC_MASK_FSYS, SRC_MASK_PERIC0, SRC_MASK_PERIC1, + SRC_MASK_TOP0, + SRC_MASK_TOP1, + SRC_MASK_MAU, + SRC_MASK_ISP, SRC_ISP, DIV_TOP0, DIV_TOP1, @@ -208,6 +217,7 @@ static unsigned long exynos5x_clk_regs[] __initdata = { SCLK_DIV_ISP1, DIV2_RATIO0, DIV4_RATIO, + GATE_BUS_DISP1, GATE_BUS_TOP, GATE_BUS_GEN, GATE_BUS_FSYS0, @@ -249,6 +259,22 @@ static unsigned long exynos5800_clk_regs[] __initdata = { GATE_IP_CAM, }; +static const struct samsung_clk_reg_dump exynos5420_set_clksrc[] = { + { .offset = SRC_MASK_CPERI, .value = 0xffffffff, }, + { .offset = SRC_MASK_TOP0, .value = 0x11111111, }, + { .offset = SRC_MASK_TOP1, .value = 0x11101111, }, + { .offset = SRC_MASK_TOP2, .value = 0x11111110, }, + { .offset = SRC_MASK_TOP7, .value = 0x00111100, }, + { .offset = SRC_MASK_DISP10, .value = 0x11111110, }, + { .offset = SRC_MASK_MAU, .value = 0x10000000, }, + { .offset = SRC_MASK_FSYS, .value = 0x11111110, }, + { .offset = SRC_MASK_PERIC0, .value = 0x11111110, }, + { .offset = SRC_MASK_PERIC1, .value = 0x11111100, }, + { .offset = SRC_MASK_ISP, .value = 0x11111000, }, + { .offset = GATE_BUS_DISP1, .value = 0xffffffff, }, + { .offset = GATE_IP_PERIC, .value = 0xffffffff, }, +}; + static int exynos5420_clk_suspend(void) { samsung_clk_save(reg_base, exynos5x_save, @@ -258,6 +284,9 @@ static int exynos5420_clk_suspend(void) samsung_clk_save(reg_base, exynos5800_save, ARRAY_SIZE(exynos5800_clk_regs)); + samsung_clk_restore(reg_base, exynos5420_set_clksrc, + ARRAY_SIZE(exynos5420_set_clksrc)); + return 0; }