From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753472AbbKBKSQ (ORCPT ); Mon, 2 Nov 2015 05:18:16 -0500 Received: from mail-by2on0107.outbound.protection.outlook.com ([207.46.100.107]:2976 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752679AbbKBKRj (ORCPT ); Mon, 2 Nov 2015 05:17:39 -0500 X-Greylist: delayed 908 seconds by postgrey-1.27 at vger.kernel.org; Mon, 02 Nov 2015 05:17:39 EST Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=freescale.com; From: Bai Ping To: , CC: , Subject: [PATCH] clk: imx: add 'is_prepared' clk_ops callback for pllv3 clk Date: Tue, 3 Nov 2015 02:06:09 +0800 Message-ID: <1446487569-20757-1-git-send-email-b51503@freescale.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD048;1:Fm+ng1p+rQwIeRHQKNO9S0yjpfjQ95mh75u/hn+gYW8jFBvxEmMOTxkpVNk5bnUB0ny8G6CFUR07cektGT9/kJv/Mrf5JtlUvvwEttHyIEOLW6O3Gj080awDVZbpizwNIvh0aPKHv2MgvsLSTf9tlgZXazeelJt2IdfWi6zY5YOMfuzORGaK3dRJ4kY3v5cMcfA1EfeZ5dWoeKs7nBHuXzSIOBDKSBHTp4YZROXJqIwHxgL8METGSgN3fQD+FNGWLgglFgMOKiBeA9L6+PkQnRSrsJhC3aOPVh/9W4353exBRlFUeXZQf16TH4MO5cWvQzXTmoZYvcUNR9WANbgNFgauyoQPHX758ns9OBHJSDqVyxUIXDGrhTPqbBWAfCiB X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(92566002)(50226001)(50986999)(106466001)(5003940100001)(97736004)(36756003)(5007970100001)(5001960100002)(19580405001)(105606002)(77096005)(85426001)(229853001)(19580395003)(5008740100001)(87936001)(6806005)(81156007)(5001770100001)(104016004)(50466002)(189998001)(47776003)(48376002)(33646002);DIR:OUT;SFP:1102;SCL:1;SRVR:BN1PR03MB085;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB085;2:FN+RYJB2wNLwOznQhhk7nLfflcGdQtSugRx3c1gRy3pzn/WCPPSkPTvIQUxaHkPtHuaSpsbdEcRX5KSeXvx0kFqAOQjc5p6ck0Va8E5Ow7zys4hfcnwOnJXhjM+a0LZV+oSMNjTq4nstZTk/tkUmSZRiCld8WZej8x1j1asq/7w=;3:jBrGyyOzXZwUUwu2QN8z100lX5+z11o7TNcxWNxPLLJddRHOm+VtbKhDVQrc1lQSxKZrLEAXkzfAPBz16EgGQUE4ACU2goZB5VkWjIx8Wtxwugp3yJu1NTCbhTo3o0z3ZuUHPMOZs0lHYxZmZ0mi6cb2uCNLgMyAqmKt0Cw/sagx+kHhxShP+8PCLu0lYl6ecxUL0SSOzr5G2V0FyDCirOMQDor17iSHgi8XuAk/YU0=;25:Pmc3RND3//86bEYyQuORX92l8dN2vOOGmkR2uW7XyysSS4gIRXzbGhh7RRs9fA7xmONMSUYqAsGAiUPWdtNgjOY9CSp2b+OTyFwJCxWxjv55o5w0P5l7i0HUujoRUhD83vCWybve/mljkcZmpCK66GASrr+vcivAkiz0eoIVgJ3kVNjZ1AwgMCcfCOPrzyY4MMJvB5pG7MazucglgDFQCuTquxSqGTcors+mC8rTLPlKHRayg/uNaPmQWB5lbFRvjWJJWYG++IBAoCK+pFH09g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR03MB085; X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB085;20:4Xt452DdiKy0OY0ZjfgJXOV2AEztPi48Pm42KT+qnqCgUDlU1h48zqbmKEhHQFV/7nO0cLe1hieX0jtQ1roSbEKO6az3oB5DGPATfstGCT+fhP5aTLzm9RpCbVCzSjgGDqOs5JKXO1RkYa3Zu4UmJMhl40f9ILeZZb4Ju6KrLcxV8Ejzp6GNFw/i5HwUq0b66LC7+oOiUOLKGXT/URDX1w/XuPxCBb7WBUcLYX/Kn/ONi2gVjo3F+OctYyyjs4lIE3Q3IXJEjmjPOAlTqywGp65ikTyzK72eHa1H340UqYC76fIQHUtr6F+ClEJvITj1J20zI+kr5wGZEBOTs0lJZZQ+/bPpphzodzKhFWrlifY=;4:1Rm20j6bKZzBLaF3jFiVXLEdgGPwWHQK0AojiR0+Fqc8RzCokXOFmdiTzPDE7uK7gN5CJKY/6TIH3GpBak7TM2MhKlOK8Szs+0bbRUVXyNMA7MMgalFx5yUvgR0w4mdEnCAikva28R8X4vslK0viQw9sz3P2BSn0Siy0Che2UOI3x/4C1ZqGwpK53Q+MTbh3NYB8c+JTp7pCnDU+FcHbynghdqXVXZpG4HZA3K2wjoUgZTtqLbShq1cQtnHxjtSZGe/1ZbdOz5X/sis7f/TMJd6Rmjkv6bylJDpoeIs/mlmHRbuGZXyjI5z5ksnhxuZrSAyKVDRxh7ci1PvDdal2fxzUs63tKOuLwDhSOjUUDxhVzhP51gLCPRarL00qZ5sV X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001);SRVR:BN1PR03MB085;BCL:0;PCL:0;RULEID:;SRVR:BN1PR03MB085; X-Forefront-PRVS: 0748FF9A04 X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB085;23:5vlFGBVkAcaDAT+DGUs/rc7B2Rg4IQn8bXhOnJ89Y16/qTf3F+YDpOF6gF4a3vvqX1PqPGoIF2x1kcN7sQQ8W56wrW6lqDdsDuMGnrAh8xX7/63BXeCsJL9HjrrKiXYDzknSKp9N/f7eRu2SNoKEOTMQ2AP2P7kqzv4Wnk7YLcTGfSm8zbVZkBzz5VBPl+aELWt36XUWtNFs+j1WsqdaOXGh2N6F5kfYySYGNXCjFb6PSkhR5f84kU8tX4H+WrQAzD4TiAljsIw6ZCWdwbqMKpY2p19dVoIJPSoYLk6l/PWTOEKavx/ewmdmsMzlkz3HVPv5tDmGffvcbnUxKdOb4usALfX0MhC5fc8oI2qiu/PQQ7UIpGo40Iw+TWYBHoOf/ZrwXOYlUhfhBaLv+3M9c2b+iR/5WxjADSm7JcH54M3e7FgngfqMu4SSsboQ6LsuTfYm2Ap5Rh4Yet8F5dL0K9uWAjQGPoyZBVVKcBi3w5OVfMn1w2horAFwx9R6a00l7jriomRLolqjlij44N1WD812F1q2EQub9a4K9/RrDC9uZJ1ZXd4JfJobywvrYfWoIW/RBB13YicjzRotmJBPPHq5oRPtkudw2iP+Kt/4TUdivXbikETwdgh+Y2OIjiy0I4hBy/M9ReURvH+BWBfJ01Al4W6TMKt+BYe30qF2kKDarB4EKCWgnw35mgiDkIgrDKVO7O7KdsjFCefO0E9Ik2IBc7Fz8G1ctcSiiR6VlGqibn8yqq3eIu262brfokc67uZfPFEMj7H9tenhXbbxy5nD01mPxTI9PjRhDAsZW0FJPytY1O3rUeI1oJHnpe//jtBYVurrU4lGO3O6spfz6dz9xtH8TspmYBIkKe9SqgkQ8KmNVCU4pnmgz0N0Ye85nM9+sUMZBmyqIZ2mntFpIbOgdgNmUKJvGD27bK3jKXI= X-Microsoft-Exchange-Diagnostics: 1;BN1PR03MB085;5:9B/WZKZotcX5gBMdvd852CBCzkRK50Udcr7mkTerw30hPHwzO9zlYMFZ5ztyP8geLA8jJbZ6sqj6HmnYSuySdDYdoW4r6drDNE3kfQoSxTmrALgNLfBvFjOQYS0LgbmrnrOZX9gY8PHqz9L7KNMskg==;24:ffjYmCu2RIWQQgYgCbe6uU7sTEtQDn/KeuV9poR4DzsV3iIAkz9k58l1T7LBOWkPnL1kkJj9V+uJwhvnN6yStZskjoHmqy2zsbEC+jwktb0=;20:TbTG+FGwLWS1f7I5gI9xDzlBJmvpANfIoC/JPS527p1FbLPlIudsWNxFfLnEbffM5qSd5u1H3+V4dx3W5lgnGQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2015 10:02:29.5706 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR03MB085 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add 'is_prepared' callback function for pllv3 type clk to make sure when the system is bootup, the unused clk is in a known state to match the prepare count info. Signed-off-by: Bai Ping --- drivers/clk/imx/clk-pllv3.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c index 6addf8f..c05c43d 100644 --- a/drivers/clk/imx/clk-pllv3.c +++ b/drivers/clk/imx/clk-pllv3.c @@ -97,6 +97,16 @@ static void clk_pllv3_unprepare(struct clk_hw *hw) writel_relaxed(val, pll->base); } +static int clk_pllv3_is_prepared(struct clk_hw *hw) +{ + struct clk_pllv3 *pll = to_clk_pllv3(hw); + + if (readl_relaxed(pll->base) & BM_PLL_LOCK) + return 1; + + return 0; +} + static unsigned long clk_pllv3_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) { @@ -139,6 +149,7 @@ static int clk_pllv3_set_rate(struct clk_hw *hw, unsigned long rate, static const struct clk_ops clk_pllv3_ops = { .prepare = clk_pllv3_prepare, .unprepare = clk_pllv3_unprepare, + .is_prepared = clk_pllv3_is_prepared, .recalc_rate = clk_pllv3_recalc_rate, .round_rate = clk_pllv3_round_rate, .set_rate = clk_pllv3_set_rate, @@ -193,6 +204,7 @@ static int clk_pllv3_sys_set_rate(struct clk_hw *hw, unsigned long rate, static const struct clk_ops clk_pllv3_sys_ops = { .prepare = clk_pllv3_prepare, .unprepare = clk_pllv3_unprepare, + .is_prepared = clk_pllv3_is_prepared, .recalc_rate = clk_pllv3_sys_recalc_rate, .round_rate = clk_pllv3_sys_round_rate, .set_rate = clk_pllv3_sys_set_rate, @@ -265,6 +277,7 @@ static int clk_pllv3_av_set_rate(struct clk_hw *hw, unsigned long rate, static const struct clk_ops clk_pllv3_av_ops = { .prepare = clk_pllv3_prepare, .unprepare = clk_pllv3_unprepare, + .is_prepared = clk_pllv3_is_prepared, .recalc_rate = clk_pllv3_av_recalc_rate, .round_rate = clk_pllv3_av_round_rate, .set_rate = clk_pllv3_av_set_rate, @@ -279,6 +292,7 @@ static unsigned long clk_pllv3_enet_recalc_rate(struct clk_hw *hw, static const struct clk_ops clk_pllv3_enet_ops = { .prepare = clk_pllv3_prepare, .unprepare = clk_pllv3_unprepare, + .is_prepared = clk_pllv3_is_prepared, .recalc_rate = clk_pllv3_enet_recalc_rate, }; -- 1.9.1