Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/arm/mach-hisi/hisilicon.c
26292 views
1
// SPDX-License-Identifier: GPL-2.0-only
2
/*
3
* (HiSilicon's SoC based) flattened device tree enabled machine
4
*
5
* Copyright (c) 2012-2013 HiSilicon Ltd.
6
* Copyright (c) 2012-2013 Linaro Ltd.
7
*
8
* Author: Haojian Zhuang <[email protected]>
9
*/
10
11
#include <linux/clocksource.h>
12
#include <linux/irqchip.h>
13
14
#include <asm/mach/arch.h>
15
#include <asm/mach/map.h>
16
17
#define HI3620_SYSCTRL_PHYS_BASE 0xfc802000
18
#define HI3620_SYSCTRL_VIRT_BASE 0xfe802000
19
20
/*
21
* This table is only for optimization. Since ioremap() could always share
22
* the same mapping if it's defined as static IO mapping.
23
*
24
* Without this table, system could also work. The cost is some virtual address
25
* spaces wasted since ioremap() may be called multi times for the same
26
* IO space.
27
*/
28
static struct map_desc hi3620_io_desc[] __initdata = {
29
{
30
/* sysctrl */
31
.pfn = __phys_to_pfn(HI3620_SYSCTRL_PHYS_BASE),
32
.virtual = HI3620_SYSCTRL_VIRT_BASE,
33
.length = 0x1000,
34
.type = MT_DEVICE,
35
},
36
};
37
38
static void __init hi3620_map_io(void)
39
{
40
debug_ll_io_init();
41
iotable_init(hi3620_io_desc, ARRAY_SIZE(hi3620_io_desc));
42
}
43
44
static const char *const hi3xxx_compat[] __initconst = {
45
"hisilicon,hi3620-hi4511",
46
NULL,
47
};
48
49
DT_MACHINE_START(HI3620, "Hisilicon Hi3620 (Flattened Device Tree)")
50
.map_io = hi3620_map_io,
51
.dt_compat = hi3xxx_compat,
52
MACHINE_END
53
54