From patchwork Wed Mar 22 11:35:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 95712 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp188344qgd; Wed, 22 Mar 2017 04:39:36 -0700 (PDT) X-Received: by 10.99.231.83 with SMTP id j19mr42918993pgk.50.1490182776845; Wed, 22 Mar 2017 04:39:36 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 189si1511825pgh.105.2017.03.22.04.39.36; Wed, 22 Mar 2017 04:39:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758843AbdCVLjg (ORCPT + 13 others); Wed, 22 Mar 2017 07:39:36 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:62921 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758924AbdCVLjd (ORCPT ); Wed, 22 Mar 2017 07:39:33 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0ON70027FS7WWI20@mailout3.w1.samsung.com>; Wed, 22 Mar 2017 11:35:56 +0000 (GMT) Received: from eusmges2.samsung.com (unknown [203.254.199.241]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170322113555eucas1p1a5715ef3f7ffa49846352aa0ec7a4939~uMSOjgNJl0585105851eucas1p1M; Wed, 22 Mar 2017 11:35:55 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2.samsung.com (EUCPMTA) with SMTP id 92.C1.30614.B9162D85; Wed, 22 Mar 2017 11:35:55 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170322113555eucas1p261e9641f1ea64d2b95501dde51792b58~uMSN5P3jT2619926199eucas1p2s; Wed, 22 Mar 2017 11:35:55 +0000 (GMT) X-AuditID: cbfec7f1-f793f6d000007796-84-58d2619ba0a3 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id B1.A2.06687.60262D85; Wed, 22 Mar 2017 11:37:42 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0ON7005SKS7QHC90@eusync1.samsung.com>; Wed, 22 Mar 2017 11:35:55 +0000 (GMT) From: Marek Szyprowski To: linux-clk@vger.kernel.org, linux-pm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Marek Szyprowski , Stephen Boyd , Michael Turquette , Ulf Hansson , Sylwester Nawrocki , Chanwoo Choi , Inki Dae , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz Subject: [PATCH v6 2/4] clk: samsung: Add support for runtime PM Date: Wed, 22 Mar 2017 12:35:41 +0100 Message-id: <1490182543-28550-3-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1490182543-28550-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRmVeSWpSXmKPExsWy7djP87qzEy9FGHSfVbLYOGM9q8X1L89Z LSbdn8Bicf78BnaLTY+vsVp87LnHavG59wijxYzz+5gs1h65y25x8ZSrxeE37awWP850s1gc XxvuwOvx/kYru8flvl4mj02rOtk87lzbw+axeUm9R9+WVYwenzfJBbBHcdmkpOZklqUW6dsl cGVcPLWbsWCJfMXt/XMYGxi7pLoYOTkkBEwkrqzawQphi0lcuLeerYuRi0NIYCmjxKQt3xgh nM+MEisfnGCD6TjQsAEqsYxR4uuNS0wQTgOTRNeUQ4wgVWwChhJdb7vAZokINDFKTNywnhXE YRZoYpaYtm8iE0iVsICDxPTXO5i7GDk4WARUJb5syAUJ8wp4SOyZd58JYp2cxMljk8EO5BTw lJj7eSoLyBwJgXXsEru2fmIC6ZUQkJXYdIAZot5F4uSsmewQtrDEq+NboGwZic6Og1Az+xkl mlq1IewZjBLn3vJC2NYSh49fBNvFLMAnMWnbdGaI8bwSHW1CECUeEi9aX0GtcpTY2/sZ6vk5 jBJTV7xnmcAos4CRYRWjSGppcW56arGRXnFibnFpXrpecn7uJkZgMjj97/jHHYzvT1gdYhTg YFTi4T0hczFCiDWxrLgy9xCjBAezkgjvsohLEUK8KYmVValF+fFFpTmpxYcYpTlYlMR59yy4 Ei4kkJ5YkpqdmlqQWgSTZeLglGpgjM1LenqiYL5hvrHi1hw24exXB1fqh/4z+ZG/cH5zyIr3 tUU7t/588S92g5R51f8PT97M+n8xe+20o7v5mSbnLp/zI+fIqjdiZ0+cnvPgQ99U/rRJT/bp d+hefPO5kS/6roK7ok3FhX+2+YGbF+d9cjvvFmI8aYP7VfVE9lyedPbnP6X3sAn58SmxFGck GmoxFxUnAgD7Xgr7AgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeLIzCtJLcpLzFFi42I5/e/4ZV22pEsRBgv/KllsnLGe1eL6l+es FpPuT2CxOH9+A7vFpsfXWC0+9txjtfjce4TRYsb5fUwWa4/cZbe4eMrV4vCbdlaLH2e6WSyO rw134PV4f6OV3eNyXy+Tx6ZVnWwed67tYfPYvKTeo2/LKkaPz5vkAtij3GwyUhNTUosUUvOS 81My89JtlUJD3HQtlBTyEnNTbZUidH1DgpQUyhJzSoE8IwM04OAc4B6spG+X4JZx8dRuxoIl 8hW3989hbGDskupi5OSQEDCRONCwgRHCFpO4cG89WxcjF4eQwBJGiX3b5zFBOE1MEh93tbCD VLEJGEp0ve0CqxIRaGKUeNI3jR3EYRZoY5b43/EVbJawgIPE9Nc7mLsYOThYBFQlvmzIBQnz CnhI7Jl3nwlinZzEyWOTWUFsTgFPibmfp7KA2EJANY/nzGaawMi7gJFhFaNIamlxbnpusaFe cWJucWleul5yfu4mRmBkbDv2c/MOxksbgw8xCnAwKvHwKshfjBBiTSwrrsw9xCjBwawkwrss 4lKEEG9KYmVValF+fFFpTmrxIUZToJsmMkuJJucDozavJN7QxNDc0tDI2MLC3MhISZy35MOV cCGB9MSS1OzU1ILUIpg+Jg5OqQZGr75pudcV2PL4H1/od1nw8o2P658P0barj27/+UD7RMhC 42s6/6b/7Pt6kvPYzszGvgqu2GyJ7u5tk+rbfdda/5fUPftcb/4WS0mOE/2L6plymCtM9Dgm Xi/6YiP6/6OM8rkora0HUptY/vAV/n++q+tUTdn8Ds3a7Oz0Ca+tF+a/Y3B1lnmqxFKckWio xVxUnAgAaR1vQ6ICAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170322113555eucas1p261e9641f1ea64d2b95501dde51792b58 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1B?= =?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1BSam?= =?utf-8?q?sung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170322113555eucas1p261e9641f1ea64d2b95501dde51792b58 X-RootMTR: 20170322113555eucas1p261e9641f1ea64d2b95501dde51792b58 References: <1490182543-28550-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org This patch adds struct device pointer to samsung_clk_provider and forwarding it to clk_register_* functions, so drivers can register clocks, which use runtime pm feature. Signed-off-by: Marek Szyprowski Reviewed-by: Ulf Hansson --- drivers/clk/samsung/clk-pll.c | 2 +- drivers/clk/samsung/clk.c | 12 ++++++------ drivers/clk/samsung/clk.h | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) -- 1.9.1 diff --git a/drivers/clk/samsung/clk-pll.c b/drivers/clk/samsung/clk-pll.c index 52290894857a..74c9ce89538a 100644 --- a/drivers/clk/samsung/clk-pll.c +++ b/drivers/clk/samsung/clk-pll.c @@ -1376,7 +1376,7 @@ static void __init _samsung_clk_register_pll(struct samsung_clk_provider *ctx, pll->lock_reg = base + pll_clk->lock_offset; pll->con_reg = base + pll_clk->con_offset; - clk = clk_register(NULL, &pll->hw); + clk = clk_register(ctx->dev, &pll->hw); if (IS_ERR(clk)) { pr_err("%s: failed to register pll clock %s : %ld\n", __func__, pll_clk->name, PTR_ERR(clk)); diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c index b7d87d6db9dc..e6923714f024 100644 --- a/drivers/clk/samsung/clk.c +++ b/drivers/clk/samsung/clk.c @@ -143,7 +143,7 @@ void __init samsung_clk_register_fixed_rate(struct samsung_clk_provider *ctx, unsigned int idx, ret; for (idx = 0; idx < nr_clk; idx++, list++) { - clk = clk_register_fixed_rate(NULL, list->name, + clk = clk_register_fixed_rate(ctx->dev, list->name, list->parent_name, list->flags, list->fixed_rate); if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, @@ -172,7 +172,7 @@ void __init samsung_clk_register_fixed_factor(struct samsung_clk_provider *ctx, unsigned int idx; for (idx = 0; idx < nr_clk; idx++, list++) { - clk = clk_register_fixed_factor(NULL, list->name, + clk = clk_register_fixed_factor(ctx->dev, list->name, list->parent_name, list->flags, list->mult, list->div); if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, @@ -193,7 +193,7 @@ void __init samsung_clk_register_mux(struct samsung_clk_provider *ctx, unsigned int idx, ret; for (idx = 0; idx < nr_clk; idx++, list++) { - clk = clk_register_mux(NULL, list->name, list->parent_names, + clk = clk_register_mux(ctx->dev, list->name, list->parent_names, list->num_parents, list->flags, ctx->reg_base + list->offset, list->shift, list->width, list->mux_flags, &ctx->lock); @@ -226,13 +226,13 @@ void __init samsung_clk_register_div(struct samsung_clk_provider *ctx, for (idx = 0; idx < nr_clk; idx++, list++) { if (list->table) - clk = clk_register_divider_table(NULL, list->name, + clk = clk_register_divider_table(ctx->dev, list->name, list->parent_name, list->flags, ctx->reg_base + list->offset, list->shift, list->width, list->div_flags, list->table, &ctx->lock); else - clk = clk_register_divider(NULL, list->name, + clk = clk_register_divider(ctx->dev, list->name, list->parent_name, list->flags, ctx->reg_base + list->offset, list->shift, list->width, list->div_flags, &ctx->lock); @@ -264,7 +264,7 @@ void __init samsung_clk_register_gate(struct samsung_clk_provider *ctx, unsigned int idx, ret; for (idx = 0; idx < nr_clk; idx++, list++) { - clk = clk_register_gate(NULL, list->name, list->parent_name, + clk = clk_register_gate(ctx->dev, list->name, list->parent_name, list->flags, ctx->reg_base + list->offset, list->bit_idx, list->gate_flags, &ctx->lock); if (IS_ERR(clk)) { diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h index da3bdebabf1e..9263d8a27c6b 100644 --- a/drivers/clk/samsung/clk.h +++ b/drivers/clk/samsung/clk.h @@ -26,6 +26,7 @@ */ struct samsung_clk_provider { void __iomem *reg_base; + struct device *dev; struct clk_onecell_data clk_data; spinlock_t lock; };