2013-12-18 04:23:49 +04:00
/*
2013-12-20 06:52:56 +04:00
* ( Hisilicon ' s SoC based ) flattened device tree enabled machine
2013-12-11 11:54:50 +04:00
*
* Copyright ( c ) 2012 - 2013 Hisilicon Ltd .
* Copyright ( c ) 2012 - 2013 Linaro Ltd .
*
* Author : Haojian Zhuang < haojian . zhuang @ 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/clocksource.h>
# include <linux/irqchip.h>
2013-12-18 04:23:49 +04:00
2013-12-11 11:54:50 +04:00
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
2013-12-18 04:23:49 +04:00
# define HI3620_SYSCTRL_PHYS_BASE 0xfc802000
# define HI3620_SYSCTRL_VIRT_BASE 0xfe802000
2013-12-11 11:54:50 +04:00
/*
* This table is only for optimization . Since ioremap ( ) could always share
* the same mapping if it ' s defined as static IO mapping .
*
* Without this table , system could also work . The cost is some virtual address
* spaces wasted since ioremap ( ) may be called multi times for the same
* IO space .
*/
static struct map_desc hi3620_io_desc [ ] __initdata = {
{
2013-12-18 04:23:49 +04:00
/* sysctrl */
. pfn = __phys_to_pfn ( HI3620_SYSCTRL_PHYS_BASE ) ,
. virtual = HI3620_SYSCTRL_VIRT_BASE ,
2013-12-11 11:54:50 +04:00
. length = 0x1000 ,
. type = MT_DEVICE ,
} ,
} ;
static void __init hi3620_map_io ( void )
{
debug_ll_io_init ( ) ;
iotable_init ( hi3620_io_desc , ARRAY_SIZE ( hi3620_io_desc ) ) ;
}
2015-02-18 23:01:45 +03:00
static const char * const hi3xxx_compat [ ] __initconst = {
2013-12-11 11:54:50 +04:00
" hisilicon,hi3620-hi4511 " ,
NULL ,
} ;
DT_MACHINE_START ( HI3620 , " Hisilicon Hi3620 (Flattened Device Tree) " )
. map_io = hi3620_map_io ,
. dt_compat = hi3xxx_compat ,
MACHINE_END