2011-11-06 21:54:27 +05:30
/*
2012-09-21 10:13:29 +09:00
* Samsung ' s EXYNOS4 flattened device tree enabled machine
2011-11-06 21:54:27 +05:30
*
* Copyright ( c ) 2010 - 2011 Samsung Electronics Co . , Ltd .
* http : //www.samsung.com
* Copyright ( c ) 2010 - 2011 Linaro Ltd .
* www . linaro . org
*
* 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>
2013-02-08 13:58:17 -08:00
# include <linux/of_fdt.h>
2011-11-06 21:54:27 +05:30
# include <asm/mach/arch.h>
2013-02-08 13:58:17 -08:00
# include <plat/mfc.h>
2012-02-08 11:42:39 +09:00
# include "common.h"
2011-11-06 21:54:27 +05:30
2012-09-21 10:13:29 +09:00
static void __init exynos4_dt_machine_init ( void )
2011-11-06 21:54:27 +05:30
{
2013-08-30 12:15:04 +02:00
exynos_cpuidle_init ( ) ;
2013-11-28 13:42:42 +01:00
exynos_cpufreq_init ( ) ;
2013-08-30 12:15:04 +02:00
2013-03-09 17:10:23 +09:00
of_platform_populate ( NULL , of_default_bus_match_table , NULL , NULL ) ;
2011-11-06 21:54:27 +05:30
}
2012-09-21 10:13:29 +09:00
static char const * exynos4_dt_compat [ ] __initdata = {
2011-11-06 21:54:27 +05:30
" samsung,exynos4210 " ,
2012-11-06 15:09:04 +09:00
" samsung,exynos4212 " ,
" samsung,exynos4412 " ,
2011-11-06 21:54:27 +05:30
NULL
} ;
2013-02-08 13:58:17 -08:00
static void __init exynos4_reserve ( void )
{
# ifdef CONFIG_S5P_DEV_MFC
struct s5p_mfc_dt_meminfo mfc_mem ;
/* Reserve memory for MFC only if it's available */
mfc_mem . compatible = " samsung,mfc-v5 " ;
if ( of_scan_flat_dt ( s5p_fdt_find_mfc_mem , & mfc_mem ) )
s5p_mfc_reserve_mem ( mfc_mem . roff , mfc_mem . rsize , mfc_mem . loff ,
mfc_mem . lsize ) ;
# endif
}
2011-11-06 21:54:27 +05:30
DT_MACHINE_START ( EXYNOS4210_DT , " Samsung Exynos4 (Flattened Device Tree) " )
/* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */
2012-10-22 08:16:44 +09:00
. smp = smp_ops ( exynos_smp_ops ) ,
2013-06-19 01:36:47 +09:00
. map_io = exynos_init_io ,
2012-12-11 13:58:43 +09:00
. init_early = exynos_firmware_init ,
2012-09-21 10:13:29 +09:00
. init_machine = exynos4_dt_machine_init ,
2012-04-26 10:35:40 +08:00
. init_late = exynos_init_late ,
2012-09-21 10:13:29 +09:00
. dt_compat = exynos4_dt_compat ,
2012-02-08 11:42:39 +09:00
. restart = exynos4_restart ,
2013-02-08 13:58:17 -08:00
. reserve = exynos4_reserve ,
2011-11-06 21:54:27 +05:30
MACHINE_END