]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
clk: sunxi-ng: h6-r: Fix AR100/R_APB2 parent order
authorSamuel Holland <samuel@sholland.org>
Sun, 29 Dec 2019 02:59:22 +0000 (20:59 -0600)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 2 Jan 2020 09:28:47 +0000 (10:28 +0100)
According to the BSP source code, both the AR100 and R_APB2 clocks have
PLL_PERIPH0 as mux index 3, not 2 as it was on previous chips. The pre-
divider used for PLL_PERIPH0 should be changed to index 3 to match.

This was verified by running a rough benchmark on the AR100 with various
clock settings:

        | mux | pre-divider | iterations/second | clock source |
        |=====|=============|===================|==============|
        |   0 |           0 |  19033   (stable) |       osc24M |
        |   2 |           5 |  11466 (unstable) |  iosc/osc16M |
        |   2 |          17 |  11422 (unstable) |  iosc/osc16M |
        |   3 |           5 |  85338   (stable) |  pll-periph0 |
        |   3 |          17 |  27167   (stable) |  pll-periph0 |

The relative performance numbers all match up (with pll-periph0 running
at its default 600MHz).

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c

index df9c01831699b2772dc227a7c44ff4f19a591422..50f8d1bc7046552804a1bad0576be558e9b89cb6 100644 (file)
@@ -23,9 +23,9 @@
  */
 
 static const char * const ar100_r_apb2_parents[] = { "osc24M", "osc32k",
-                                            "pll-periph0", "iosc" };
+                                                    "iosc", "pll-periph0" };
 static const struct ccu_mux_var_prediv ar100_r_apb2_predivs[] = {
-       { .index = 2, .shift = 0, .width = 5 },
+       { .index = 3, .shift = 0, .width = 5 },
 };
 
 static struct ccu_div ar100_clk = {