17f627f03SMagnus Damm /* 27f627f03SMagnus Damm * Emma Mobile EV2 processor support 37f627f03SMagnus Damm * 47f627f03SMagnus Damm * Copyright (C) 2012 Magnus Damm 57f627f03SMagnus Damm * 67f627f03SMagnus Damm * This program is free software; you can redistribute it and/or modify 77f627f03SMagnus Damm * it under the terms of the GNU General Public License as published by 87f627f03SMagnus Damm * the Free Software Foundation; version 2 of the License. 97f627f03SMagnus Damm * 107f627f03SMagnus Damm * This program is distributed in the hope that it will be useful, 117f627f03SMagnus Damm * but WITHOUT ANY WARRANTY; without even the implied warranty of 127f627f03SMagnus Damm * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 137f627f03SMagnus Damm * GNU General Public License for more details. 147f627f03SMagnus Damm */ 157f627f03SMagnus Damm #include <linux/kernel.h> 167f627f03SMagnus Damm #include <linux/init.h> 17af164ca3SMagnus Damm #include <linux/mm.h> 187f627f03SMagnus Damm #include <asm/mach-types.h> 197f627f03SMagnus Damm #include <asm/mach/arch.h> 207f627f03SMagnus Damm #include <asm/mach/map.h> 21fd44aa5eSMagnus Damm #include "common.h" 227f627f03SMagnus Damm 23bd5a875dSMagnus Damm static struct map_desc emev2_io_desc[] __initdata = { 24bd5a875dSMagnus Damm #ifdef CONFIG_SMP 25bd5a875dSMagnus Damm /* 2M mapping for SCU + L2 controller */ 26bd5a875dSMagnus Damm { 27bd5a875dSMagnus Damm .virtual = 0xf0000000, 28bd5a875dSMagnus Damm .pfn = __phys_to_pfn(0x1e000000), 29bd5a875dSMagnus Damm .length = SZ_2M, 30bd5a875dSMagnus Damm .type = MT_DEVICE 31bd5a875dSMagnus Damm }, 32bd5a875dSMagnus Damm #endif 33bd5a875dSMagnus Damm }; 34bd5a875dSMagnus Damm 35505891ecSMagnus Damm static void __init emev2_map_io(void) 36bd5a875dSMagnus Damm { 37bd5a875dSMagnus Damm iotable_init(emev2_io_desc, ARRAY_SIZE(emev2_io_desc)); 38bd5a875dSMagnus Damm } 39bd5a875dSMagnus Damm 40543c5040SUwe Kleine-König static const char *const emev2_boards_compat_dt[] __initconst = { 413d5de271SMagnus Damm "renesas,emev2", 423d5de271SMagnus Damm NULL, 433d5de271SMagnus Damm }; 443d5de271SMagnus Damm 45505891ecSMagnus Damm extern struct smp_operations emev2_smp_ops; 46505891ecSMagnus Damm 473d5de271SMagnus Damm DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") 48a62580e5SMarc Zyngier .smp = smp_ops(emev2_smp_ops), 490ea2b538SMagnus Damm .map_io = emev2_map_io, 50ef9026e6SMagnus Damm .init_early = shmobile_init_delay, 513f348e1cSMagnus Damm .init_late = shmobile_init_late, 523d5de271SMagnus Damm .dt_compat = emev2_boards_compat_dt, 533d5de271SMagnus Damm MACHINE_END 54