Commit | Line | Data |
---|---|---|
d2912cb1 | 1 | // SPDX-License-Identifier: GPL-2.0-only |
49cbe786 EM |
2 | /* |
3 | * linux/arch/arm/mach-mmp/common.c | |
4 | * | |
5 | * Code common to PXA168 processor lines | |
49cbe786 EM |
6 | */ |
7 | ||
8 | #include <linux/init.h> | |
9 | #include <linux/kernel.h> | |
f090c74b | 10 | #include <linux/module.h> |
49cbe786 EM |
11 | |
12 | #include <asm/page.h> | |
13 | #include <asm/mach/map.h> | |
9f97da78 | 14 | #include <asm/system_misc.h> |
b501fd7b AB |
15 | #include "addr-map.h" |
16 | #include "cputype.h" | |
49cbe786 EM |
17 | |
18 | #include "common.h" | |
19 | ||
f090c74b HZ |
20 | #define MMP_CHIPID (AXI_VIRT_BASE + 0x82c00) |
21 | ||
22 | unsigned int mmp_chip_id; | |
23 | EXPORT_SYMBOL(mmp_chip_id); | |
24 | ||
49cbe786 EM |
25 | static struct map_desc standard_io_desc[] __initdata = { |
26 | { | |
27 | .pfn = __phys_to_pfn(APB_PHYS_BASE), | |
97b09da4 | 28 | .virtual = (unsigned long)APB_VIRT_BASE, |
49cbe786 EM |
29 | .length = APB_PHYS_SIZE, |
30 | .type = MT_DEVICE, | |
31 | }, { | |
32 | .pfn = __phys_to_pfn(AXI_PHYS_BASE), | |
97b09da4 | 33 | .virtual = (unsigned long)AXI_VIRT_BASE, |
49cbe786 EM |
34 | .length = AXI_PHYS_SIZE, |
35 | .type = MT_DEVICE, | |
36 | }, | |
37 | }; | |
38 | ||
8022887c | 39 | void __init mmp_map_io(void) |
49cbe786 EM |
40 | { |
41 | iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc)); | |
f090c74b HZ |
42 | |
43 | /* this is early, initialize mmp_chip_id here */ | |
44 | mmp_chip_id = __raw_readl(MMP_CHIPID); | |
49cbe786 | 45 | } |
9854a38e | 46 | |
7b6d864b | 47 | void mmp_restart(enum reboot_mode mode, const char *cmd) |
9854a38e RK |
48 | { |
49 | soft_restart(0); | |
50 | } |