11dbae815STony Lindgren /*
2f30c2269SUwe Zeisberger  * linux/arch/arm/mach-omap2/board-generic.c
31dbae815STony Lindgren  *
41dbae815STony Lindgren  * Copyright (C) 2005 Nokia Corporation
51dbae815STony Lindgren  * Author: Paul Mundt <paul.mundt@nokia.com>
61dbae815STony Lindgren  *
71dbae815STony Lindgren  * Modified from mach-omap/omap1/board-generic.c
81dbae815STony Lindgren  *
91dbae815STony Lindgren  * Code for generic OMAP2 board. Should work on many OMAP2 systems where
101dbae815STony Lindgren  * the bootloader passes the board-specific data to the kernel.
111dbae815STony Lindgren  * Do not put any board specific code to this file; create a new machine
121dbae815STony Lindgren  * type if you need custom low-level initializations.
131dbae815STony Lindgren  *
141dbae815STony Lindgren  * This program is free software; you can redistribute it and/or modify
151dbae815STony Lindgren  * it under the terms of the GNU General Public License version 2 as
161dbae815STony Lindgren  * published by the Free Software Foundation.
171dbae815STony Lindgren  */
181dbae815STony Lindgren 
191dbae815STony Lindgren #include <linux/kernel.h>
201dbae815STony Lindgren #include <linux/init.h>
211dbae815STony Lindgren #include <linux/device.h>
221dbae815STony Lindgren 
23a09e64fbSRussell King #include <mach/hardware.h>
241dbae815STony Lindgren #include <asm/mach-types.h>
251dbae815STony Lindgren #include <asm/mach/arch.h>
261dbae815STony Lindgren #include <asm/mach/map.h>
271dbae815STony Lindgren 
28a09e64fbSRussell King #include <mach/gpio.h>
29ce491cf8STony Lindgren #include <plat/usb.h>
30ce491cf8STony Lindgren #include <plat/board.h>
31ce491cf8STony Lindgren #include <plat/common.h>
321dbae815STony Lindgren 
33b3c6df3aSPaul Walmsley static struct omap_board_config_kernel generic_config[] = {
34b3c6df3aSPaul Walmsley };
35b3c6df3aSPaul Walmsley 
363dc3bad6SRussell King - ARM Linux static void __init omap_generic_init_early(void)
371dbae815STony Lindgren {
384805734bSPaul Walmsley 	omap2_init_common_infrastructure();
394805734bSPaul Walmsley 	omap2_init_common_devices(NULL, NULL);
401dbae815STony Lindgren }
411dbae815STony Lindgren 
421dbae815STony Lindgren static void __init omap_generic_init(void)
431dbae815STony Lindgren {
441dbae815STony Lindgren 	omap_serial_init();
45e41cccfeSTony Lindgren 	omap_board_config = generic_config;
46e41cccfeSTony Lindgren 	omap_board_config_size = ARRAY_SIZE(generic_config);
471dbae815STony Lindgren }
481dbae815STony Lindgren 
491dbae815STony Lindgren static void __init omap_generic_map_io(void)
501dbae815STony Lindgren {
516515e489SPaul Walmsley 	if (cpu_is_omap242x()) {
526515e489SPaul Walmsley 		omap2_set_globals_242x();
536fbd55d0STony Lindgren 		omap242x_map_common_io();
546515e489SPaul Walmsley 	} else if (cpu_is_omap243x()) {
556515e489SPaul Walmsley 		omap2_set_globals_243x();
566515e489SPaul Walmsley 		omap243x_map_common_io();
576515e489SPaul Walmsley 	} else if (cpu_is_omap34xx()) {
586515e489SPaul Walmsley 		omap2_set_globals_3xxx();
596515e489SPaul Walmsley 		omap34xx_map_common_io();
606515e489SPaul Walmsley 	} else if (cpu_is_omap44xx()) {
616515e489SPaul Walmsley 		omap2_set_globals_443x();
626515e489SPaul Walmsley 		omap44xx_map_common_io();
636515e489SPaul Walmsley 	}
641dbae815STony Lindgren }
651dbae815STony Lindgren 
666515e489SPaul Walmsley /* XXX This machine entry name should be updated */
671dbae815STony Lindgren MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
681dbae815STony Lindgren 	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
691dbae815STony Lindgren 	.boot_params	= 0x80000100,
7071ee7dadSRussell King 	.reserve	= omap_reserve,
713dc3bad6SRussell King - ARM Linux 	.map_io		= omap_generic_map_io,
723dc3bad6SRussell King - ARM Linux 	.init_early	= omap_generic_init_early,
73741e3a89STony Lindgren 	.init_irq	= omap2_init_irq,
741dbae815STony Lindgren 	.init_machine	= omap_generic_init,
7513340b2aSArnd Bergmann 	.timer		= &omap2_timer,
761dbae815STony Lindgren MACHINE_END
77