diff options
Diffstat (limited to 'arch/arm/mach-omap2/io.c')
| -rw-r--r-- | arch/arm/mach-omap2/io.c | 52 | 
1 files changed, 50 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 916fcd3a232..32afd944821 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -4,12 +4,14 @@   * OMAP2 I/O mapping code   *   * Copyright (C) 2005 Nokia Corporation - * Copyright (C) 2007 Texas Instruments + * Copyright (C) 2007-2009 Texas Instruments   *   * Author:   *	Juha Yrjola <juha.yrjola@nokia.com>   *	Syed Khasim <x0khasim@ti.com>   * + * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com> + *   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License version 2 as   * published by the Free Software Foundation. @@ -30,6 +32,7 @@  #include <mach/sdrc.h>  #include <mach/gpmc.h> +#ifndef CONFIG_ARCH_OMAP4	/* FIXME: Remove this once clkdev is ready */  #include "clock.h"  #include <mach/powerdomain.h> @@ -38,7 +41,7 @@  #include <mach/clockdomain.h>  #include "clockdomains.h" - +#endif  /*   * The machine specific code may provide the extra mapping besides the   * default mapping provided here. @@ -166,6 +169,46 @@ static struct map_desc omap34xx_io_desc[] __initdata = {  	},  };  #endif +#ifdef	CONFIG_ARCH_OMAP4 +static struct map_desc omap44xx_io_desc[] __initdata = { +	{ +		.virtual	= L3_44XX_VIRT, +		.pfn		= __phys_to_pfn(L3_44XX_PHYS), +		.length		= L3_44XX_SIZE, +		.type		= MT_DEVICE, +	}, +	{ +		.virtual	= L4_44XX_VIRT, +		.pfn		= __phys_to_pfn(L4_44XX_PHYS), +		.length		= L4_44XX_SIZE, +		.type		= MT_DEVICE, +	}, +	{ +		.virtual	= L4_WK_44XX_VIRT, +		.pfn		= __phys_to_pfn(L4_WK_44XX_PHYS), +		.length		= L4_WK_44XX_SIZE, +		.type		= MT_DEVICE, +	}, +	{ +		.virtual	= OMAP44XX_GPMC_VIRT, +		.pfn		= __phys_to_pfn(OMAP44XX_GPMC_PHYS), +		.length		= OMAP44XX_GPMC_SIZE, +		.type		= MT_DEVICE, +	}, +	{ +		.virtual	= L4_PER_44XX_VIRT, +		.pfn		= __phys_to_pfn(L4_PER_44XX_PHYS), +		.length		= L4_PER_44XX_SIZE, +		.type		= MT_DEVICE, +	}, +	{ +		.virtual	= L4_EMU_44XX_VIRT, +		.pfn		= __phys_to_pfn(L4_EMU_44XX_PHYS), +		.length		= L4_EMU_44XX_SIZE, +		.type		= MT_DEVICE, +	}, +}; +#endif  void __init omap2_map_common_io(void)  { @@ -183,6 +226,9 @@ void __init omap2_map_common_io(void)  	iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc));  #endif +#if defined(CONFIG_ARCH_OMAP4) +	iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc)); +#endif  	/* Normally devicemaps_init() would flush caches and tlb after  	 * mdesc->map_io(), but we must also do it here because of the CPU  	 * revision check below. @@ -198,9 +244,11 @@ void __init omap2_map_common_io(void)  void __init omap2_init_common_hw(struct omap_sdrc_params *sp)  {  	omap2_mux_init(); +#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */  	pwrdm_init(powerdomains_omap);  	clkdm_init(clockdomains_omap, clkdm_pwrdm_autodeps);  	omap2_clk_init();  	omap2_sdrc_init(sp); +#endif  	gpmc_init();  }  |