From: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
To: Greg Kroah-Hartman
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
Samuel Ortiz <sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Maxime Ripard
<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Mike Turquette
<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Emilio Lopez <emilio-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org>,
Linus Walleij
<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Boris BREZILLON
<boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Luc Verhaegen <libv-AgBVmzD5pcezQB+pC5nmwQ@public.gmane.org>
Subject: [PATCH v2 07/20] clk: sunxi: Fix PLL6 calculation on sun6i
Date: Tue, 17 Jun 2014 22:52:44 +0800 [thread overview]
Message-ID: <1403016777-15121-8-git-send-email-wens@csie.org> (raw)
In-Reply-To: <1403016777-15121-1-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
The N factor for PLL6 counts from 1 to 32, as specified in the A23
manual, and shown in Allwinner's original code.
Also the PLL6 factors calculate the clock rate for PLL6x2, not the
normal halved output for PLL6. This is what the factors clk
.recalc_rate callback expects.
This patch fixes the N factor in the clock driver, calculates the
rate for PLL6x2, and fixes the comment describing it.
A further patch (to the DT) should add a fixed-factor /2 clock as
the normally used PLL6 output.
Signed-off-by: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
Acked-by: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
---
drivers/clk/sunxi/clk-sunxi.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
index dc2176f..eca3c6e 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -196,9 +196,9 @@ static void sun4i_get_pll5_factors(u32 *freq, u32 parent_rate,
}
/**
- * sun6i_a31_get_pll6_factors() - calculates n, k factors for A31 PLL6
- * PLL6 rate is calculated as follows
- * rate = parent_rate * n * (k + 1) / 2
+ * sun6i_a31_get_pll6_factors() - calculates n, k factors for A31 PLL6 (x2)
+ * PLL6 (x2) rate is calculated as follows
+ * rate = parent_rate * (n + 1) * (k + 1)
* parent_rate is always 24Mhz
*/
@@ -207,13 +207,7 @@ static void sun6i_a31_get_pll6_factors(u32 *freq, u32 parent_rate,
{
u8 div;
- /*
- * We always have 24MHz / 2, so we can just say that our
- * parent clock is 12MHz.
- */
- parent_rate = parent_rate / 2;
-
- /* Normalize value to a parent_rate multiple (24M / 2) */
+ /* Normalize value to a parent_rate multiple (24M) */
div = *freq / parent_rate;
*freq = parent_rate * div;
@@ -225,7 +219,7 @@ static void sun6i_a31_get_pll6_factors(u32 *freq, u32 parent_rate,
if (*k > 3)
*k = 3;
- *n = DIV_ROUND_UP(div, (*k+1));
+ *n = DIV_ROUND_UP(div, (*k+1)) - 1;
}
/**
@@ -435,6 +429,7 @@ static struct clk_factors_config sun6i_a31_pll6_config = {
.nwidth = 5,
.kshift = 4,
.kwidth = 2,
+ .n_from_one = 1,
};
static struct clk_factors_config sun4i_apb1_config = {
--
2.0.0
next prev parent reply other threads:[~2014-06-17 14:52 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-17 14:52 [PATCH v2 00/20] ARM: sunxi: Introduce Allwinner A23 (sun8i) support Chen-Yu Tsai
[not found] ` <1403016777-15121-1-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-17 14:52 ` [PATCH v2 01/20] serial: 8250_dw: Add optional reset control support Chen-Yu Tsai
[not found] ` <1403016777-15121-2-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 9:08 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 02/20] clk: sunxi: register clock gates with clkdev Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 03/20] clk: sunxi: move "ahb_sdram" to protected clock list Chen-Yu Tsai
[not found] ` <1403016777-15121-4-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 9:10 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 04/20] clk: sunxi: Fix gate indexing for sun6i-a31-apb0-gates Chen-Yu Tsai
[not found] ` <1403016777-15121-5-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 9:38 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 05/20] clk: sunxi: Support factor clocks with N multiplier factor starting from 1 Chen-Yu Tsai
[not found] ` <1403016777-15121-6-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-17 21:23 ` Rob Herring
2014-06-18 9:42 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 06/20] clk: sunxi: Fix rate_recalc for sun6i PLL1 Chen-Yu Tsai
2014-06-17 14:52 ` Chen-Yu Tsai [this message]
2014-06-17 14:52 ` [PATCH v2 08/20] ARM: sun6i: DT: Rename PLL6 to PLL6x2 and add fixed-factor-clock for PLL6 Chen-Yu Tsai
[not found] ` <1403016777-15121-9-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 9:57 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 09/20] clk: sunxi: Add sun6i MBUS clock support Chen-Yu Tsai
[not found] ` <1403016777-15121-10-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 10:04 ` Maxime Ripard
2014-06-23 4:44 ` Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 10/20] clk: sunxi: Add support for table-based divider clocks Chen-Yu Tsai
[not found] ` <1403016777-15121-11-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 10:06 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 11/20] clk: sunxi: Add A23 clocks support Chen-Yu Tsai
[not found] ` <1403016777-15121-12-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 10:16 ` Maxime Ripard
2014-06-19 4:07 ` Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 12/20] clk: sunxi: Add A23 APB0 support to sun6i-a31-apb0-clk Chen-Yu Tsai
[not found] ` <1403016777-15121-13-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 10:26 ` Maxime Ripard
2014-06-19 4:33 ` Chen-Yu Tsai
[not found] ` <CAGb2v64D6qBtXGXzn25443s_oj_=Z-u_P6+-MX52Lz54+9bQyQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-19 9:28 ` Maxime Ripard
2014-06-20 6:13 ` Chen-Yu Tsai
[not found] ` <CAGb2v64hFc7oVdydoNzKVqjnyNUxuqMXX2AiV3aJLFizKvkOPA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-25 16:41 ` maxime.ripard
2014-06-17 14:52 ` [PATCH v2 14/20] pinctrl: sunxi: Add A23 PIO controller support Chen-Yu Tsai
[not found] ` <1403016777-15121-15-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-07-07 13:00 ` Linus Walleij
2014-06-17 14:52 ` [PATCH v2 15/20] pinctrl: sunxi: Add A23 R_PIO " Chen-Yu Tsai
[not found] ` <1403016777-15121-16-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-07-07 13:17 ` Linus Walleij
2014-06-17 14:52 ` [PATCH v2 16/20] mfd: sun6i-prcm: Add support for Allwinner A23 PRCM Chen-Yu Tsai
[not found] ` <1403016777-15121-17-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 8:29 ` Lee Jones
2014-06-18 12:24 ` Maxime Ripard
2014-06-20 7:38 ` Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 17/20] ARM: sunxi: Introduce Allwinner A23 support Chen-Yu Tsai
[not found] ` <1403016777-15121-18-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 12:26 ` Maxime Ripard
2014-06-20 5:56 ` Chen-Yu Tsai
[not found] ` <CAGb2v67zkwvspdDr-rKv=5uT5mvP4e1ZyzHSSOXmvaiOxA+7OA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-20 5:59 ` Fwd: " Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 18/20] ARM: sunxi: Add earlyprintk support using R_UART (sun6i/sun8i) Chen-Yu Tsai
[not found] ` <1403016777-15121-19-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 12:29 ` Maxime Ripard
2014-06-17 14:52 ` [PATCH v2 19/20] ARM: sunxi: Add Allwinner A23 dtsi Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 20/20] ARM: sun8i: dt: Add Ippo-q8h v5 support Chen-Yu Tsai
2014-06-17 14:52 ` [PATCH v2 13/20] clk: sunxi: Add A23 specific compatible to sun6i-a31-apb0-gates-clk Chen-Yu Tsai
[not found] ` <1403016777-15121-14-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>
2014-06-18 10:17 ` Maxime Ripard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1403016777-15121-8-git-send-email-wens@csie.org \
--to=wens-jday2fn1rrm@public.gmane.org \
--cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=emilio-0Z03zUJReD5OxF6Tv1QG9Q@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=libv-AgBVmzD5pcezQB+pC5nmwQ@public.gmane.org \
--cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).