From patchwork Wed Dec 6 05:16:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 845033 X-Patchwork-Delegate: yamada.m@jp.panasonic.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=nifty.com header.i=@nifty.com header.b="hcaJoHhE"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3ys6Mx4hnFz9sP9 for ; Wed, 6 Dec 2017 16:18:37 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 455D3C21EC8; Wed, 6 Dec 2017 05:17:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 727A6C21EB9; Wed, 6 Dec 2017 05:16:59 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D9505C21DCE; Wed, 6 Dec 2017 05:16:56 +0000 (UTC) Received: from conuserg-11.nifty.com (conuserg-11.nifty.com [210.131.2.78]) by lists.denx.de (Postfix) with ESMTPS id 7E4BBC21DE7 for ; Wed, 6 Dec 2017 05:16:55 +0000 (UTC) Received: from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-11.nifty.com with ESMTP id vB65GdxR011389; Wed, 6 Dec 2017 14:16:40 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-11.nifty.com vB65GdxR011389 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1512537400; bh=+JVK14ownL0GBNqFx2Q2dFAyKeAoQwGL6mU2I31MFhM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hcaJoHhEybZSPVbydWB3Lc4LwIfwI+uonTdWa4xEF67y6/XdnxZX1zkLfRfHIhhhE 02dgwdkmbeqv/rDnqfkeysuMLtm5JkLsHlZMEeeieRbnygBEmSBAkuEJHZx68eFmjE 95T2pohywkbhek+dkb4dqytj6uVROsT9Rhcs8PP8tecRAxTGBIavPyjOoWBIdlQ2C3 N+4DqBpdBZVYqkzVk72Y6RV46PENKuPWgNXx149fSQFh6cGJyPnygqiJ6tmVC6PFwG ZmKkkoLqXX4OdJ+LiErcu8quDwi+WXm8Aa/WTstRo8RUZVNmC3PcpzZYB84JsjFla+ UBbAhyQDBeetw== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: u-boot@lists.denx.de Date: Wed, 6 Dec 2017 14:16:33 +0900 Message-Id: <1512537394-9608-2-git-send-email-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1512537394-9608-1-git-send-email-yamada.masahiro@socionext.com> References: <1512537394-9608-1-git-send-email-yamada.masahiro@socionext.com> Subject: [U-Boot] [PATCH 2/3] ARM: uniphier: compute SSCPLL values more precisely X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Use DIV_ROUND_CLOSEST(). To make the JK value even more precise, I used a bigger coefficient, then divide it by 512. Signed-off-by: Masahiro Yamada --- arch/arm/mach-uniphier/clk/pll-base-ld20.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-uniphier/clk/pll-base-ld20.c b/arch/arm/mach-uniphier/clk/pll-base-ld20.c index 45fdf0a..c9b78b9 100644 --- a/arch/arm/mach-uniphier/clk/pll-base-ld20.c +++ b/arch/arm/mach-uniphier/clk/pll-base-ld20.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -41,13 +42,14 @@ int uniphier_ld20_sscpll_init(unsigned long reg_base, unsigned int freq, if (freq != UNIPHIER_PLL_FREQ_DEFAULT) { tmp = readl(base); /* SSCPLLCTRL */ tmp &= ~SC_PLLCTRL_SSC_DK_MASK; - tmp |= (487 * freq * ssc_rate / divn / 512) & + tmp |= DIV_ROUND_CLOSEST(487UL * freq * ssc_rate, divn * 512) & SC_PLLCTRL_SSC_DK_MASK; writel(tmp, base); tmp = readl(base + 4); tmp &= ~SC_PLLCTRL2_SSC_JK_MASK; - tmp |= (41859 * freq / divn) & SC_PLLCTRL2_SSC_JK_MASK; + tmp |= DIV_ROUND_CLOSEST(21431887UL * freq, divn * 512) & + SC_PLLCTRL2_SSC_JK_MASK; writel(tmp, base + 4); udelay(50);