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>
29a09e64fbSRussell King #include <mach/mux.h>
30a09e64fbSRussell King #include <mach/usb.h>
31a09e64fbSRussell King #include <mach/board.h>
32a09e64fbSRussell King #include <mach/common.h>
331dbae815STony Lindgren 
341dbae815STony Lindgren static void __init omap_generic_init_irq(void)
351dbae815STony Lindgren {
3618f49ea2STony Lindgren 	omap2_init_common_hw();
371dbae815STony Lindgren 	omap_init_irq();
381dbae815STony Lindgren }
391dbae815STony Lindgren 
401dbae815STony Lindgren static struct omap_uart_config generic_uart_config __initdata = {
411dbae815STony Lindgren 	.enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
421dbae815STony Lindgren };
431dbae815STony Lindgren 
441dbae815STony Lindgren static struct omap_mmc_config generic_mmc_config __initdata = {
451dbae815STony Lindgren 	.mmc [0] = {
461dbae815STony Lindgren 		.enabled 	= 0,
471dbae815STony Lindgren 		.wire4		= 0,
481dbae815STony Lindgren 		.wp_pin		= -1,
491dbae815STony Lindgren 		.power_pin	= -1,
501dbae815STony Lindgren 		.switch_pin	= -1,
511dbae815STony Lindgren 	},
521dbae815STony Lindgren };
531dbae815STony Lindgren 
541dbae815STony Lindgren static struct omap_board_config_kernel generic_config[] = {
551dbae815STony Lindgren 	{ OMAP_TAG_UART,	&generic_uart_config },
561dbae815STony Lindgren 	{ OMAP_TAG_MMC,		&generic_mmc_config },
571dbae815STony Lindgren };
581dbae815STony Lindgren 
591dbae815STony Lindgren static void __init omap_generic_init(void)
601dbae815STony Lindgren {
611dbae815STony Lindgren 	omap_board_config = generic_config;
621dbae815STony Lindgren 	omap_board_config_size = ARRAY_SIZE(generic_config);
631dbae815STony Lindgren 	omap_serial_init();
641dbae815STony Lindgren }
651dbae815STony Lindgren 
661dbae815STony Lindgren static void __init omap_generic_map_io(void)
671dbae815STony Lindgren {
68c8d2eb8eSPaul Walmsley 	omap2_set_globals_242x(); /* should be 242x, 243x, or 343x */
6918f49ea2STony Lindgren 	omap2_map_common_io();
701dbae815STony Lindgren }
711dbae815STony Lindgren 
721dbae815STony Lindgren MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
731dbae815STony Lindgren 	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
741dbae815STony Lindgren 	.phys_io	= 0x48000000,
751dbae815STony Lindgren 	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
761dbae815STony Lindgren 	.boot_params	= 0x80000100,
771dbae815STony Lindgren 	.map_io		= omap_generic_map_io,
781dbae815STony Lindgren 	.init_irq	= omap_generic_init_irq,
791dbae815STony Lindgren 	.init_machine	= omap_generic_init,
801dbae815STony Lindgren 	.timer		= &omap_timer,
811dbae815STony Lindgren MACHINE_END
82