blob: 6684abc7708bdaa3496ba76f296c722a43ea17fa [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001// SPDX-License-Identifier: GPL-2.0-only
Eric Miao49cbe782009-01-20 14:15:18 +08002/*
3 * linux/arch/arm/mach-mmp/common.c
4 *
5 * Code common to PXA168 processor lines
Eric Miao49cbe782009-01-20 14:15:18 +08006 */
7
8#include <linux/init.h>
9#include <linux/kernel.h>
Haojian Zhuangf090c742010-09-21 16:43:57 +080010#include <linux/module.h>
Eric Miao49cbe782009-01-20 14:15:18 +080011
12#include <asm/page.h>
13#include <asm/mach/map.h>
David Howells9f97da72012-03-28 18:30:01 +010014#include <asm/system_misc.h>
Arnd Bergmannb501fd72014-04-15 20:38:32 +020015#include "addr-map.h"
16#include "cputype.h"
Eric Miao49cbe782009-01-20 14:15:18 +080017
18#include "common.h"
19
Haojian Zhuangf090c742010-09-21 16:43:57 +080020#define MMP_CHIPID (AXI_VIRT_BASE + 0x82c00)
21
22unsigned int mmp_chip_id;
23EXPORT_SYMBOL(mmp_chip_id);
24
Eric Miao49cbe782009-01-20 14:15:18 +080025static struct map_desc standard_io_desc[] __initdata = {
26 {
27 .pfn = __phys_to_pfn(APB_PHYS_BASE),
Arnd Bergmann97b09da2011-10-01 22:03:45 +020028 .virtual = (unsigned long)APB_VIRT_BASE,
Eric Miao49cbe782009-01-20 14:15:18 +080029 .length = APB_PHYS_SIZE,
30 .type = MT_DEVICE,
31 }, {
32 .pfn = __phys_to_pfn(AXI_PHYS_BASE),
Arnd Bergmann97b09da2011-10-01 22:03:45 +020033 .virtual = (unsigned long)AXI_VIRT_BASE,
Eric Miao49cbe782009-01-20 14:15:18 +080034 .length = AXI_PHYS_SIZE,
35 .type = MT_DEVICE,
36 },
37};
38
Eric Miao80228872010-07-15 17:50:13 +080039void __init mmp_map_io(void)
Eric Miao49cbe782009-01-20 14:15:18 +080040{
41 iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc));
Haojian Zhuangf090c742010-09-21 16:43:57 +080042
43 /* this is early, initialize mmp_chip_id here */
44 mmp_chip_id = __raw_readl(MMP_CHIPID);
Eric Miao49cbe782009-01-20 14:15:18 +080045}
Russell King9854a382011-11-05 15:40:09 +000046
Robin Holt7b6d8642013-07-08 16:01:40 -070047void mmp_restart(enum reboot_mode mode, const char *cmd)
Russell King9854a382011-11-05 15:40:09 +000048{
49 soft_restart(0);
50}