[PATCH 4/7] clk: highbank: Use common of_clk_init() function
Mike Turquette
mturquette at linaro.org
Fri Jan 18 12:55:02 EST 2013
Quoting Prashant Gaikwad (2013-01-03 23:00:55)
> Use common of_clk_init() function for clocks initialization.
>
> Signed-off-by: Prashant Gaikwad <pgaikwad at nvidia.com>
Rob,
Can I get a Tested-by from you before I take this?
Thanks,
Mike
> ---
> arch/arm/mach-highbank/core.h | 1 -
> arch/arm/mach-highbank/highbank.c | 3 ++-
> drivers/clk/clk-highbank.c | 18 ++++--------------
> 3 files changed, 6 insertions(+), 16 deletions(-)
>
> diff --git a/arch/arm/mach-highbank/core.h b/arch/arm/mach-highbank/core.h
> index 80235b4..3f65206 100644
> --- a/arch/arm/mach-highbank/core.h
> +++ b/arch/arm/mach-highbank/core.h
> @@ -2,7 +2,6 @@
> #define __HIGHBANK_CORE_H
>
> extern void highbank_set_cpu_jump(int cpu, void *jump_addr);
> -extern void highbank_clocks_init(void);
> extern void highbank_restart(char, const char *);
> extern void __iomem *scu_base_addr;
>
> diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
> index f6ca285..fb148da 100644
> --- a/arch/arm/mach-highbank/highbank.c
> +++ b/arch/arm/mach-highbank/highbank.c
> @@ -25,6 +25,7 @@
> #include <linux/of_address.h>
> #include <linux/smp.h>
> #include <linux/amba/bus.h>
> +#include <linux/clk-provider.h>
>
> #include <asm/arch_timer.h>
> #include <asm/cacheflush.h>
> @@ -116,7 +117,7 @@ static void __init highbank_timer_init(void)
> WARN_ON(!timer_base);
> irq = irq_of_parse_and_map(np, 0);
>
> - highbank_clocks_init();
> + of_clk_init(NULL);
> lookup.clk = of_clk_get(np, 0);
> clkdev_add(&lookup);
>
> diff --git a/drivers/clk/clk-highbank.c b/drivers/clk/clk-highbank.c
> index 52fecad..5d1de2e 100644
> --- a/drivers/clk/clk-highbank.c
> +++ b/drivers/clk/clk-highbank.c
> @@ -314,33 +314,23 @@ static void __init hb_pll_init(struct device_node *node)
> {
> hb_clk_init(node, &clk_pll_ops);
> }
> +CLK_OF_DECLARE(hb_pll, "calxeda,hb-pll-clock", hb_pll_init);
>
> static void __init hb_a9periph_init(struct device_node *node)
> {
> hb_clk_init(node, &a9periphclk_ops);
> }
> +CLK_OF_DECLARE(hb_a9periph, "calxeda,hb-a9periph-clock", hb_a9periph_init);
>
> static void __init hb_a9bus_init(struct device_node *node)
> {
> struct clk *clk = hb_clk_init(node, &a9bclk_ops);
> clk_prepare_enable(clk);
> }
> +CLK_OF_DECLARE(hb_a9bus, "calxeda,hb-a9bus-clock", hb_a9bus_init);
>
> static void __init hb_emmc_init(struct device_node *node)
> {
> hb_clk_init(node, &periclk_ops);
> }
> -
> -static const __initconst struct of_device_id clk_match[] = {
> - { .compatible = "fixed-clock", .data = of_fixed_clk_setup, },
> - { .compatible = "calxeda,hb-pll-clock", .data = hb_pll_init, },
> - { .compatible = "calxeda,hb-a9periph-clock", .data = hb_a9periph_init, },
> - { .compatible = "calxeda,hb-a9bus-clock", .data = hb_a9bus_init, },
> - { .compatible = "calxeda,hb-emmc-clock", .data = hb_emmc_init, },
> - {}
> -};
> -
> -void __init highbank_clocks_init(void)
> -{
> - of_clk_init(clk_match);
> -}
> +CLK_OF_DECLARE(hb_emmc, "calxeda,hb-emmc-clock", hb_emmc_init);
> --
> 1.7.4.1
More information about the linux-arm-kernel
mailing list