xref: /openbmc/linux/arch/arm/mach-omap2/io.c (revision 1dbae815a724303b46ab4663b5fc23c13e9d9690)
1*1dbae815STony Lindgren /*
2*1dbae815STony Lindgren  * linux/arch/arm/mach-omap2/io.c
3*1dbae815STony Lindgren  *
4*1dbae815STony Lindgren  * OMAP2 I/O mapping code
5*1dbae815STony Lindgren  *
6*1dbae815STony Lindgren  * Copyright (C) 2005 Nokia Corporation
7*1dbae815STony Lindgren  * Author: Juha Yrj�l� <juha.yrjola@nokia.com>
8*1dbae815STony Lindgren  *
9*1dbae815STony Lindgren  * This program is free software; you can redistribute it and/or modify
10*1dbae815STony Lindgren  * it under the terms of the GNU General Public License version 2 as
11*1dbae815STony Lindgren  * published by the Free Software Foundation.
12*1dbae815STony Lindgren  */
13*1dbae815STony Lindgren 
14*1dbae815STony Lindgren #include <linux/config.h>
15*1dbae815STony Lindgren #include <linux/module.h>
16*1dbae815STony Lindgren #include <linux/kernel.h>
17*1dbae815STony Lindgren #include <linux/init.h>
18*1dbae815STony Lindgren 
19*1dbae815STony Lindgren #include <asm/mach/map.h>
20*1dbae815STony Lindgren #include <asm/io.h>
21*1dbae815STony Lindgren #include <asm/arch/mux.h>
22*1dbae815STony Lindgren 
23*1dbae815STony Lindgren extern void omap_sram_init(void);
24*1dbae815STony Lindgren extern int omap2_clk_init(void);
25*1dbae815STony Lindgren extern void omap2_check_revision(void);
26*1dbae815STony Lindgren 
27*1dbae815STony Lindgren /*
28*1dbae815STony Lindgren  * The machine specific code may provide the extra mapping besides the
29*1dbae815STony Lindgren  * default mapping provided here.
30*1dbae815STony Lindgren  */
31*1dbae815STony Lindgren static struct map_desc omap2_io_desc[] __initdata = {
32*1dbae815STony Lindgren 	{
33*1dbae815STony Lindgren 		.virtual	= L3_24XX_VIRT,
34*1dbae815STony Lindgren 		.pfn		= __phys_to_pfn(L3_24XX_PHYS),
35*1dbae815STony Lindgren 		.length		= L3_24XX_SIZE,
36*1dbae815STony Lindgren 		.type		= MT_DEVICE
37*1dbae815STony Lindgren 	},
38*1dbae815STony Lindgren 	{
39*1dbae815STony Lindgren 		.virtual	= L4_24XX_VIRT,
40*1dbae815STony Lindgren 		.pfn		= __phys_to_pfn(L4_24XX_PHYS),
41*1dbae815STony Lindgren 		.length		= L4_24XX_SIZE,
42*1dbae815STony Lindgren 		.type		= MT_DEVICE
43*1dbae815STony Lindgren 	}
44*1dbae815STony Lindgren };
45*1dbae815STony Lindgren 
46*1dbae815STony Lindgren void __init omap_map_common_io(void)
47*1dbae815STony Lindgren {
48*1dbae815STony Lindgren 	iotable_init(omap2_io_desc, ARRAY_SIZE(omap2_io_desc));
49*1dbae815STony Lindgren 	omap2_check_revision();
50*1dbae815STony Lindgren 	omap_sram_init();
51*1dbae815STony Lindgren 	omap2_mux_init();
52*1dbae815STony Lindgren 	omap2_clk_init();
53*1dbae815STony Lindgren }
54