Commit | Line | Data |
---|---|---|
a9434e96 | 1 | /* |
389ee0c2 | 2 | * (Hisilicon's SoC based) flattened device tree enabled machine |
2c7268c7 HZ |
3 | * |
4 | * Copyright (c) 2012-2013 Hisilicon Ltd. | |
5 | * Copyright (c) 2012-2013 Linaro Ltd. | |
6 | * | |
7 | * Author: Haojian Zhuang <haojian.zhuang@linaro.org> | |
8 | * | |
9 | * This program is free software; you can redistribute it and/or modify | |
10 | * it under the terms of the GNU General Public License version 2 as | |
11 | * published by the Free Software Foundation. | |
12 | */ | |
13 | ||
14 | #include <linux/clk-provider.h> | |
15 | #include <linux/clocksource.h> | |
16 | #include <linux/irqchip.h> | |
a9434e96 | 17 | |
2c7268c7 HZ |
18 | #include <asm/mach/arch.h> |
19 | #include <asm/mach/map.h> | |
20 | ||
a9434e96 KH |
21 | #define HI3620_SYSCTRL_PHYS_BASE 0xfc802000 |
22 | #define HI3620_SYSCTRL_VIRT_BASE 0xfe802000 | |
23 | ||
2c7268c7 HZ |
24 | /* |
25 | * This table is only for optimization. Since ioremap() could always share | |
26 | * the same mapping if it's defined as static IO mapping. | |
27 | * | |
28 | * Without this table, system could also work. The cost is some virtual address | |
29 | * spaces wasted since ioremap() may be called multi times for the same | |
30 | * IO space. | |
31 | */ | |
32 | static struct map_desc hi3620_io_desc[] __initdata = { | |
33 | { | |
a9434e96 KH |
34 | /* sysctrl */ |
35 | .pfn = __phys_to_pfn(HI3620_SYSCTRL_PHYS_BASE), | |
36 | .virtual = HI3620_SYSCTRL_VIRT_BASE, | |
2c7268c7 HZ |
37 | .length = 0x1000, |
38 | .type = MT_DEVICE, | |
39 | }, | |
40 | }; | |
41 | ||
42 | static void __init hi3620_map_io(void) | |
43 | { | |
44 | debug_ll_io_init(); | |
45 | iotable_init(hi3620_io_desc, ARRAY_SIZE(hi3620_io_desc)); | |
46 | } | |
47 | ||
2c7268c7 HZ |
48 | static const char *hi3xxx_compat[] __initconst = { |
49 | "hisilicon,hi3620-hi4511", | |
50 | NULL, | |
51 | }; | |
52 | ||
53 | DT_MACHINE_START(HI3620, "Hisilicon Hi3620 (Flattened Device Tree)") | |
54 | .map_io = hi3620_map_io, | |
2c7268c7 HZ |
55 | .dt_compat = hi3xxx_compat, |
56 | MACHINE_END | |
06cc5c1d HY |
57 | |
58 | static const char *hix5hd2_compat[] __initconst = { | |
59 | "hisilicon,hix5hd2", | |
60 | NULL, | |
61 | }; | |
62 | ||
63 | DT_MACHINE_START(HIX5HD2_DT, "Hisilicon HIX5HD2 (Flattened Device Tree)") | |
64 | .dt_compat = hix5hd2_compat, | |
06cc5c1d | 65 | MACHINE_END |
2d518eda HZ |
66 | |
67 | static const char *hip04_compat[] __initconst = { | |
68 | "hisilicon,hip04-d01", | |
69 | NULL, | |
70 | }; | |
71 | ||
72 | DT_MACHINE_START(HIP04, "Hisilicon HiP04 (Flattened Device Tree)") | |
73 | .dt_compat = hip04_compat, | |
74 | MACHINE_END |