-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: EXYNOS: add support device tree enabled board file for EXYNOS5
This patch adds a new EXYNOS5 compatible device tree enabled board When using this, a corresponding device tree blob which describes the board's properties should be supplied at boot time to the kernel. Cc: Thomas Abraham <thomas.abraham@linaro.org> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
- Loading branch information
Kukjin Kim
committed
Mar 15, 2012
1 parent
23f16c7
commit b3e68fb
Showing
3 changed files
with
89 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* | ||
* SAMSUNG EXYNOS5250 Flattened Device Tree enabled machine | ||
* | ||
* Copyright (c) 2012 Samsung Electronics Co., Ltd. | ||
* http://www.samsung.com | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#include <linux/of_platform.h> | ||
#include <linux/serial_core.h> | ||
|
||
#include <asm/mach/arch.h> | ||
#include <asm/hardware/gic.h> | ||
#include <mach/map.h> | ||
|
||
#include <plat/cpu.h> | ||
#include <plat/regs-serial.h> | ||
|
||
#include "common.h" | ||
|
||
/* | ||
* The following lookup table is used to override device names when devices | ||
* are registered from device tree. This is temporarily added to enable | ||
* device tree support addition for the EXYNOS5 architecture. | ||
* | ||
* For drivers that require platform data to be provided from the machine | ||
* file, a platform data pointer can also be supplied along with the | ||
* devices names. Usually, the platform data elements that cannot be parsed | ||
* from the device tree by the drivers (example: function pointers) are | ||
* supplied. But it should be noted that this is a temporary mechanism and | ||
* at some point, the drivers should be capable of parsing all the platform | ||
* data from the device tree. | ||
*/ | ||
static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = { | ||
OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS5_PA_UART0, | ||
"exynos4210-uart.0", NULL), | ||
OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS5_PA_UART1, | ||
"exynos4210-uart.1", NULL), | ||
OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS5_PA_UART2, | ||
"exynos4210-uart.2", NULL), | ||
OF_DEV_AUXDATA("samsung,exynos4210-uart", EXYNOS5_PA_UART3, | ||
"exynos4210-uart.3", NULL), | ||
OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA0, "dma-pl330.0", NULL), | ||
OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA1, "dma-pl330.1", NULL), | ||
OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA1, "dma-pl330.2", NULL), | ||
{}, | ||
}; | ||
|
||
static void __init exynos5250_dt_map_io(void) | ||
{ | ||
exynos_init_io(NULL, 0); | ||
s3c24xx_init_clocks(24000000); | ||
} | ||
|
||
static void __init exynos5250_dt_machine_init(void) | ||
{ | ||
of_platform_populate(NULL, of_default_bus_match_table, | ||
exynos5250_auxdata_lookup, NULL); | ||
} | ||
|
||
static char const *exynos5250_dt_compat[] __initdata = { | ||
"samsung,exynos5250", | ||
NULL | ||
}; | ||
|
||
DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") | ||
/* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | ||
.init_irq = exynos5_init_irq, | ||
.map_io = exynos5250_dt_map_io, | ||
.handle_irq = gic_handle_irq, | ||
.init_machine = exynos5250_dt_machine_init, | ||
.timer = &exynos4_timer, | ||
.dt_compat = exynos5250_dt_compat, | ||
.restart = exynos5_restart, | ||
MACHINE_END |