clk: renesas: r8a7779: Obtain mode pin values from R-Car RST driver
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 1 Jun 2016 12:49:41 +0000 (14:49 +0200)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 2 Nov 2016 19:43:45 +0000 (20:43 +0100)
Obtain the values of the mode pins from the R-Car RST driver, which
relies on the presence in DT of a device node for the RESET/WDT module.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Dirk Behme <dirk.behme@de.bosch.com>
drivers/clk/renesas/clk-r8a7779.c

index cf2a37df03b15e60ee70e44ce21fcc8f5341680c..ca7551bcb1153c3d919d7dd0794418c4b6a82938 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/of_address.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
+#include <linux/soc/renesas/rcar-rst.h>
 
 #include <dt-bindings/clock/r8a7779-clock.h>
 
@@ -127,6 +128,10 @@ static void __init r8a7779_cpg_clocks_init(struct device_node *np)
        struct clk **clks;
        unsigned int i, plla_mult;
        int num_clks;
+       u32 mode;
+
+       if (rcar_rst_read_mode_pins(&mode))
+               return;
 
        num_clks = of_property_count_strings(np, "clock-output-names");
        if (num_clks < 0) {
@@ -148,8 +153,8 @@ static void __init r8a7779_cpg_clocks_init(struct device_node *np)
        cpg->data.clks = clks;
        cpg->data.clk_num = num_clks;
 
-       config = &cpg_clk_configs[CPG_CLK_CONFIG_INDEX(cpg_mode)];
-       plla_mult = cpg_plla_mult[CPG_PLLA_MULT_INDEX(cpg_mode)];
+       config = &cpg_clk_configs[CPG_CLK_CONFIG_INDEX(mode)];
+       plla_mult = cpg_plla_mult[CPG_PLLA_MULT_INDEX(mode)];
 
        for (i = 0; i < num_clks; ++i) {
                const char *name;