This repository has been archived by the owner on Sep 18, 2022. It is now read-only.
forked from CyanogenMod/android_kernel_sony_msm8974
-
Notifications
You must be signed in to change notification settings - Fork 1
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 <[email protected]> Cc: Grant Likely <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
- Loading branch information
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 <[email protected]> */ | ||
.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 |