| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | /* * Emma Mobile EV2 processor support * * Copyright (C) 2012  Magnus Damm * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */#include <linux/kernel.h>#include <linux/init.h>#include <linux/interrupt.h>#include <linux/irq.h>#include <linux/platform_device.h>#include <linux/platform_data/gpio-em.h>#include <linux/of_platform.h>#include <linux/delay.h>#include <linux/input.h>#include <linux/io.h>#include <linux/of_irq.h>#include <mach/hardware.h>#include <mach/common.h>#include <mach/emev2.h>#include <mach/irqs.h>#include <asm/mach-types.h>#include <asm/mach/arch.h>#include <asm/mach/map.h>#include <asm/mach/time.h>#include <asm/hardware/gic.h>static struct map_desc emev2_io_desc[] __initdata = {#ifdef CONFIG_SMP	/* 128K entity map for 0xe0100000 (SMU) */	{		.virtual	= 0xe0100000,		.pfn		= __phys_to_pfn(0xe0100000),		.length		= SZ_128K,		.type		= MT_DEVICE	},	/* 2M mapping for SCU + L2 controller */	{		.virtual	= 0xf0000000,		.pfn		= __phys_to_pfn(0x1e000000),		.length		= SZ_2M,		.type		= MT_DEVICE	},#endif};void __init emev2_map_io(void){	iotable_init(emev2_io_desc, ARRAY_SIZE(emev2_io_desc));}/* UART */static struct resource uart0_resources[] = {	[0]	= {		.start	= 0xe1020000,		.end	= 0xe1020037,		.flags	= IORESOURCE_MEM,	},	[1]	= {		.start	= 40,		.flags	= IORESOURCE_IRQ,	}};static struct platform_device uart0_device = {	.name		= "serial8250-em",	.id		= 0,	.num_resources	= ARRAY_SIZE(uart0_resources),	.resource	= uart0_resources,
 |