Commit 9cf705de authored by Tony Lindgren's avatar Tony Lindgren

ARM: OMAP2+: Add support for initializing dm814x clocks

Let's add a minimal clocks for dm814x to get it booted. This is
mostly a placeholder and relies on the PLLs being on from the
bootloader.

Note that the divider clocks work the same way as on dm816x and
am335x.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Tero Kristo <t-kristo@ti.com>
Acked-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 7c80a3f8
...@@ -558,7 +558,7 @@ void __init ti814x_init_early(void) ...@@ -558,7 +558,7 @@ void __init ti814x_init_early(void)
ti81xx_hwmod_init(); ti81xx_hwmod_init();
omap_hwmod_init_postsetup(); omap_hwmod_init_postsetup();
if (of_have_populated_dt()) if (of_have_populated_dt())
omap_clk_soc_init = ti81xx_dt_clk_init; omap_clk_soc_init = dm814x_dt_clk_init;
} }
void __init ti816x_init_early(void) void __init ti816x_init_early(void)
...@@ -575,7 +575,7 @@ void __init ti816x_init_early(void) ...@@ -575,7 +575,7 @@ void __init ti816x_init_early(void)
ti81xx_hwmod_init(); ti81xx_hwmod_init();
omap_hwmod_init_postsetup(); omap_hwmod_init_postsetup();
if (of_have_populated_dt()) if (of_have_populated_dt())
omap_clk_soc_init = ti81xx_dt_clk_init; omap_clk_soc_init = dm816x_dt_clk_init;
} }
#endif #endif
......
...@@ -2,7 +2,7 @@ obj-y += clk.o autoidle.o clockdomain.o ...@@ -2,7 +2,7 @@ obj-y += clk.o autoidle.o clockdomain.o
clk-common = dpll.o composite.o divider.o gate.o \ clk-common = dpll.o composite.o divider.o gate.o \
fixed-factor.o mux.o apll.o fixed-factor.o mux.o apll.o
obj-$(CONFIG_SOC_AM33XX) += $(clk-common) clk-33xx.o obj-$(CONFIG_SOC_AM33XX) += $(clk-common) clk-33xx.o
obj-$(CONFIG_SOC_TI81XX) += $(clk-common) fapll.o clk-816x.o obj-$(CONFIG_SOC_TI81XX) += $(clk-common) fapll.o clk-814x.o clk-816x.o
obj-$(CONFIG_ARCH_OMAP2) += $(clk-common) interface.o clk-2xxx.o obj-$(CONFIG_ARCH_OMAP2) += $(clk-common) interface.o clk-2xxx.o
obj-$(CONFIG_ARCH_OMAP3) += $(clk-common) interface.o \ obj-$(CONFIG_ARCH_OMAP3) += $(clk-common) interface.o \
clk-3xxx.o clk-3xxx.o
......
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*/
#include <linux/kernel.h>
#include <linux/clk-provider.h>
#include <linux/clk/ti.h>
static struct ti_dt_clk dm814_clks[] = {
DT_CLK(NULL, "devosc_ck", "devosc_ck"),
DT_CLK(NULL, "mpu_ck", "mpu_ck"),
DT_CLK(NULL, "sysclk4_ck", "sysclk4_ck"),
DT_CLK(NULL, "sysclk6_ck", "sysclk6_ck"),
DT_CLK(NULL, "sysclk10_ck", "sysclk10_ck"),
DT_CLK(NULL, "sysclk18_ck", "sysclk18_ck"),
DT_CLK(NULL, "timer_sys_ck", "devosc_ck"),
DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"),
DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"),
{ .node_name = NULL },
};
int __init dm814x_dt_clk_init(void)
{
ti_dt_clocks_register(dm814_clks);
omap2_clk_disable_autoidle_all();
omap2_clk_enable_init_clocks(NULL, 0);
return 0;
}
...@@ -42,7 +42,7 @@ static const char *enable_init_clks[] = { ...@@ -42,7 +42,7 @@ static const char *enable_init_clks[] = {
"ddr_pll_clk3", "ddr_pll_clk3",
}; };
int __init ti81xx_dt_clk_init(void) int __init dm816x_dt_clk_init(void)
{ {
ti_dt_clocks_register(dm816x_clks); ti_dt_clocks_register(dm816x_clks);
omap2_clk_disable_autoidle_all(); omap2_clk_disable_autoidle_all();
......
...@@ -329,7 +329,8 @@ int ti_clk_add_component(struct device_node *node, struct clk_hw *hw, int type); ...@@ -329,7 +329,8 @@ int ti_clk_add_component(struct device_node *node, struct clk_hw *hw, int type);
int omap3430_dt_clk_init(void); int omap3430_dt_clk_init(void);
int omap3630_dt_clk_init(void); int omap3630_dt_clk_init(void);
int am35xx_dt_clk_init(void); int am35xx_dt_clk_init(void);
int ti81xx_dt_clk_init(void); int dm814x_dt_clk_init(void);
int dm816x_dt_clk_init(void);
int omap4xxx_dt_clk_init(void); int omap4xxx_dt_clk_init(void);
int omap5xxx_dt_clk_init(void); int omap5xxx_dt_clk_init(void);
int dra7xx_dt_clk_init(void); int dra7xx_dt_clk_init(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment