]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'shesselba/clk-of-init-v2_for-3.13' into imx/soc
authorShawn Guo <shawn.guo@linaro.org>
Mon, 21 Oct 2013 01:10:56 +0000 (09:10 +0800)
committerShawn Guo <shawn.guo@linaro.org>
Mon, 21 Oct 2013 01:10:56 +0000 (09:10 +0800)
1  2 
arch/arm/mach-imx/clk-imx51-imx53.c
arch/arm/mach-imx/mach-imx6q.c

index 7c0dc4540aa4785270784e3f62ce2b643fd95664,1b796db7652c34dfdc79df6a852441d56bca51b8..ceaac9cd7b4230859143d951af389908744b7cc2
@@@ -11,6 -11,7 +11,7 @@@
  #include <linux/clk.h>
  #include <linux/io.h>
  #include <linux/clkdev.h>
+ #include <linux/clk-provider.h>
  #include <linux/of.h>
  #include <linux/err.h>
  
@@@ -131,8 -132,6 +132,6 @@@ static void __init mx5_clocks_common_in
  {
        int i;
  
-       of_clk_init(NULL);
        clk[dummy] = imx_clk_fixed("dummy", 0);
        clk[ckil] = imx_obtain_fixed_clock("ckil", rate_ckil);
        clk[osc] = imx_obtain_fixed_clock("osc", rate_osc);
        clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1");
        clk_register_clkdev(clk[ssi3_ipg_gate], NULL, "imx-ssi.2");
        clk_register_clkdev(clk[sdma_gate], NULL, "imx35-sdma");
 -      clk_register_clkdev(clk[cpu_podf], NULL, "cpufreq-cpu0.0");
 +      clk_register_clkdev(clk[cpu_podf], NULL, "cpu0");
        clk_register_clkdev(clk[iim_gate], "iim", NULL);
        clk_register_clkdev(clk[dummy], NULL, "imx2-wdt.0");
        clk_register_clkdev(clk[dummy], NULL, "imx2-wdt.1");
@@@ -397,7 -396,7 +396,7 @@@ int __init mx51_clocks_init(unsigned lo
                                mx51_spdif_xtal_sel, ARRAY_SIZE(mx51_spdif_xtal_sel));
        clk[spdif1_sel] = imx_clk_mux("spdif1_sel", MXC_CCM_CSCMR2, 2, 2,
                                spdif_sel, ARRAY_SIZE(spdif_sel));
 -      clk[spdif1_pred] = imx_clk_divider("spdif1_podf", "spdif1_sel", MXC_CCM_CDCDR, 16, 3);
 +      clk[spdif1_pred] = imx_clk_divider("spdif1_pred", "spdif1_sel", MXC_CCM_CDCDR, 16, 3);
        clk[spdif1_podf] = imx_clk_divider("spdif1_podf", "spdif1_pred", MXC_CCM_CDCDR, 9, 6);
        clk[spdif1_com_sel] = imx_clk_mux("spdif1_com_sel", MXC_CCM_CSCMR2, 5, 1,
                                mx51_spdif1_com_sel, ARRAY_SIZE(mx51_spdif1_com_sel));
        return 0;
  }
  
- int __init mx53_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
-                       unsigned long rate_ckih1, unsigned long rate_ckih2)
+ static void __init mx51_clocks_init_dt(struct device_node *np)
+ {
+       mx51_clocks_init(0, 0, 0, 0);
+ }
+ CLK_OF_DECLARE(imx51_ccm, "fsl,imx51-ccm", mx51_clocks_init_dt);
+ static void __init mx53_clocks_init(struct device_node *np)
  {
        int i;
        unsigned long r;
-       struct device_node *np;
  
        clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX53_DPLL1_BASE);
        clk[pll2_sw] = imx_clk_pllv2("pll2_sw", "osc", MX53_DPLL2_BASE);
                        pr_err("i.MX53 clk %d: register failed with %ld\n",
                                i, PTR_ERR(clk[i]));
  
-       np = of_find_compatible_node(NULL, NULL, "fsl,imx53-ccm");
        clk_data.clks = clk;
        clk_data.clk_num = ARRAY_SIZE(clk);
        of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
  
-       mx5_clocks_common_init(rate_ckil, rate_osc, rate_ckih1, rate_ckih2);
+       mx5_clocks_common_init(0, 0, 0, 0);
  
        clk_register_clkdev(clk[vpu_gate], NULL, "imx53-vpu.0");
        clk_register_clkdev(clk[i2c3_gate], NULL, "imx21-i2c.2");
  
        r = clk_round_rate(clk[usboh3_per_gate], 54000000);
        clk_set_rate(clk[usboh3_per_gate], r);
-       return 0;
- }
- int __init mx51_clocks_init_dt(void)
- {
-       return mx51_clocks_init(0, 0, 0, 0);
- }
- int __init mx53_clocks_init_dt(void)
- {
-       return mx53_clocks_init(0, 0, 0, 0);
  }
+ CLK_OF_DECLARE(imx53_ccm, "fsl,imx53-ccm", mx53_clocks_init);
index 90372a21087f9ef38535479ccc35aac9e37977dc,47ebc36636a71976de98b20c25ea75f027c18877..3be0fa0e979602580f5cf7639520a61c187cfceb
@@@ -11,9 -11,7 +11,7 @@@
   */
  
  #include <linux/clk.h>
- #include <linux/clk-provider.h>
  #include <linux/clkdev.h>
- #include <linux/clocksource.h>
  #include <linux/cpu.h>
  #include <linux/delay.h>
  #include <linux/export.h>
@@@ -192,6 -190,9 +190,9 @@@ static void __init imx6q_1588_init(void
  
  static void __init imx6q_init_machine(void)
  {
+       imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
+                             imx6q_revision());
        imx6q_enet_phy_init();
  
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
@@@ -233,15 -234,10 +234,15 @@@ put_node
        of_node_put(np);
  }
  
 -static void __init imx6q_opp_init(struct device *cpu_dev)
 +static void __init imx6q_opp_init(void)
  {
        struct device_node *np;
 +      struct device *cpu_dev = get_cpu_device(0);
  
 +      if (!cpu_dev) {
 +              pr_warn("failed to get cpu0 device\n");
 +              return;
 +      }
        np = of_node_get(cpu_dev->of_node);
        if (!np) {
                pr_warn("failed to find cpu0 node\n");
@@@ -273,7 -269,7 +274,7 @@@ static void __init imx6q_init_late(void
                imx6q_cpuidle_init();
  
        if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) {
 -              imx6q_opp_init(&imx6q_cpufreq_pdev.dev);
 +              imx6q_opp_init();
                platform_device_register(&imx6q_cpufreq_pdev);
        }
  }
@@@ -293,14 -289,6 +294,6 @@@ static void __init imx6q_init_irq(void
        irqchip_init();
  }
  
- static void __init imx6q_timer_init(void)
- {
-       of_clk_init(NULL);
-       clocksource_of_init();
-       imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
-                             imx6q_revision());
- }
  static const char *imx6q_dt_compat[] __initdata = {
        "fsl,imx6dl",
        "fsl,imx6q",
@@@ -311,7 -299,6 +304,6 @@@ DT_MACHINE_START(IMX6Q, "Freescale i.MX
        .smp            = smp_ops(imx_smp_ops),
        .map_io         = imx6q_map_io,
        .init_irq       = imx6q_init_irq,
-       .init_time      = imx6q_timer_init,
        .init_machine   = imx6q_init_machine,
        .init_late      = imx6q_init_late,
        .dt_compat      = imx6q_dt_compat,