Commit 92744274 authored by Thomas Abraham's avatar Thomas Abraham Committed by Kukjin Kim

ARM: EXYNOS: allow legacy board support to specify xxti and xusbxti clock speed

The clock speed of xxti and xusbxti clocks depends on the oscillator
used on the board to generate these clocks. For non-dt platforms,
allow the board support for those platforms to set the clock frequency
of xxti and xusbxti clocks.
Signed-off-by: default avatarThomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 6923ae4b
...@@ -69,6 +69,8 @@ static void exynos5440_map_io(void); ...@@ -69,6 +69,8 @@ static void exynos5440_map_io(void);
static void exynos4_init_uarts(struct s3c2410_uartcfg *cfg, int no); static void exynos4_init_uarts(struct s3c2410_uartcfg *cfg, int no);
static int exynos_init(void); static int exynos_init(void);
unsigned long xxti_f = 0, xusbxti_f = 0;
static struct cpu_table cpu_ids[] __initdata = { static struct cpu_table cpu_ids[] __initdata = {
{ {
.idcode = EXYNOS4210_CPU_ID, .idcode = EXYNOS4210_CPU_ID,
...@@ -407,6 +409,7 @@ void __init exynos_init_time(void) ...@@ -407,6 +409,7 @@ void __init exynos_init_time(void)
} else { } else {
/* todo: remove after migrating legacy E4 platforms to dt */ /* todo: remove after migrating legacy E4 platforms to dt */
exynos4_clk_init(NULL); exynos4_clk_init(NULL);
exynos4_clk_register_fixed_ext(xxti_f, xusbxti_f);
mct_init(); mct_init();
} }
} }
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
extern void mct_init(void); extern void mct_init(void);
void exynos_init_time(void); void exynos_init_time(void);
extern unsigned long xxti_f, xusbxti_f;
struct map_desc; struct map_desc;
void exynos_init_io(struct map_desc *mach_desc, int size); void exynos_init_io(struct map_desc *mach_desc, int size);
......
...@@ -1331,6 +1331,8 @@ static void __init nuri_map_io(void) ...@@ -1331,6 +1331,8 @@ static void __init nuri_map_io(void)
{ {
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs)); s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs));
xxti_f = 0;
xusbxti_f = 24000000;
} }
static void __init nuri_reserve(void) static void __init nuri_reserve(void)
......
...@@ -755,6 +755,8 @@ static void __init origen_map_io(void) ...@@ -755,6 +755,8 @@ static void __init origen_map_io(void)
{ {
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs));
xxti_f = 0;
xusbxti_f = 24000000;
} }
static void __init origen_power_init(void) static void __init origen_power_init(void)
......
...@@ -372,6 +372,8 @@ static void __init smdkv310_map_io(void) ...@@ -372,6 +372,8 @@ static void __init smdkv310_map_io(void)
{ {
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs)); s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs));
xxti_f = 12000000;
xusbxti_f = 24000000;
} }
static void __init smdkv310_reserve(void) static void __init smdkv310_reserve(void)
......
...@@ -1094,6 +1094,8 @@ static void __init universal_map_io(void) ...@@ -1094,6 +1094,8 @@ static void __init universal_map_io(void)
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs)); s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs));
samsung_set_timer_source(SAMSUNG_PWM2, SAMSUNG_PWM4); samsung_set_timer_source(SAMSUNG_PWM2, SAMSUNG_PWM4);
xxti_f = 0;
xusbxti_f = 24000000;
} }
static void s5p_tv_setup(void) static void s5p_tv_setup(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