forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
52 lines
1.3 KiB
// SPDX-License-Identifier: GPL-2.0-only |
|
/* |
|
* (Hisilicon's SoC based) flattened device tree enabled machine |
|
* |
|
* Copyright (c) 2012-2013 Hisilicon Ltd. |
|
* Copyright (c) 2012-2013 Linaro Ltd. |
|
* |
|
* Author: Haojian Zhuang <[email protected]> |
|
*/ |
|
|
|
#include <linux/clocksource.h> |
|
#include <linux/irqchip.h> |
|
|
|
#include <asm/mach/arch.h> |
|
#include <asm/mach/map.h> |
|
|
|
#define HI3620_SYSCTRL_PHYS_BASE 0xfc802000 |
|
#define HI3620_SYSCTRL_VIRT_BASE 0xfe802000 |
|
|
|
/* |
|
* 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 = { |
|
{ |
|
/* sysctrl */ |
|
.pfn = __phys_to_pfn(HI3620_SYSCTRL_PHYS_BASE), |
|
.virtual = HI3620_SYSCTRL_VIRT_BASE, |
|
.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)); |
|
} |
|
|
|
static const char *const hi3xxx_compat[] __initconst = { |
|
"hisilicon,hi3620-hi4511", |
|
NULL, |
|
}; |
|
|
|
DT_MACHINE_START(HI3620, "Hisilicon Hi3620 (Flattened Device Tree)") |
|
.map_io = hi3620_map_io, |
|
.dt_compat = hi3xxx_compat, |
|
MACHINE_END
|
|
|