From 45a1b1bf0ef3129459d5fb42b8aafe88f55e2cb8 Mon Sep 17 00:00:00 2001 From: Doug Anderson Date: Tue, 27 Nov 2012 11:53:14 -0800 Subject: [PATCH] --- yaml --- r: 340143 b: refs/heads/master c: 5b7897db00bd66a42c626012f51cd3b1d5e6bee5 h: refs/heads/master i: 340141: 95a65a554e0cc1ff50266b21fe47d7b850aecbe2 340139: d590731e3f089b6ff9611f7e3b2bfad5192242da 340135: 6bf90530ccd7f728cdefc2fc736af95e419f33c9 340127: b31918b7dabd54f4f8f536c3d91323c9ec35035a v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-exynos/common.c | 19 +++++++++++++++---- trunk/arch/arm/mach-exynos/mach-exynos5-dt.c | 5 ++++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 754fb41ccb79..ac147085c3e4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7423d2d817b815cc5bc41316f4aaa8ace3c4153e +refs/heads/master: 5b7897db00bd66a42c626012f51cd3b1d5e6bee5 diff --git a/trunk/arch/arm/mach-exynos/common.c b/trunk/arch/arm/mach-exynos/common.c index 94f1dedc0617..68b4b8eb63dc 100644 --- a/trunk/arch/arm/mach-exynos/common.c +++ b/trunk/arch/arm/mach-exynos/common.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -121,6 +122,7 @@ static struct map_desc exynos_iodesc[] __initdata = { }, }; +#ifdef CONFIG_ARCH_EXYNOS5 static struct map_desc exynos5440_iodesc[] __initdata = { { .virtual = (unsigned long)S5P_VA_CHIPID, @@ -129,6 +131,7 @@ static struct map_desc exynos5440_iodesc[] __initdata = { .type = MT_DEVICE, }, }; +#endif static struct map_desc exynos4_iodesc[] __initdata = { { @@ -346,11 +349,19 @@ void __init exynos_init_late(void) void __init exynos_init_io(struct map_desc *mach_desc, int size) { + struct map_desc *iodesc = exynos_iodesc; + int iodesc_sz = ARRAY_SIZE(exynos_iodesc); +#if defined(CONFIG_OF) && defined(CONFIG_ARCH_EXYNOS5) + unsigned long root = of_get_flat_dt_root(); + /* initialize the io descriptors we need for initialization */ - if (of_machine_is_compatible("samsung,exynos5440")) - iotable_init(exynos5440_iodesc, ARRAY_SIZE(exynos5440_iodesc)); - else - iotable_init(exynos_iodesc, ARRAY_SIZE(exynos_iodesc)); + if (of_flat_dt_is_compatible(root, "samsung,exynos5440")) { + iodesc = exynos5440_iodesc; + iodesc_sz = ARRAY_SIZE(exynos5440_iodesc); + } +#endif + + iotable_init(iodesc, iodesc_sz); if (mach_desc) iotable_init(mach_desc, size); diff --git a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c index 4db2ee1238b4..f1326be80b91 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -10,6 +10,7 @@ */ #include +#include #include #include @@ -83,9 +84,11 @@ static const struct of_dev_auxdata exynos5440_auxdata_lookup[] __initconst = { static void __init exynos5_dt_map_io(void) { + unsigned long root = of_get_flat_dt_root(); + exynos_init_io(NULL, 0); - if (of_machine_is_compatible("samsung,exynos5250")) + if (of_flat_dt_is_compatible(root, "samsung,exynos5250")) s3c24xx_init_clocks(24000000); }