/* * linux/arch/arm/mach-omap2/board-omap3beagle.c * * Copyright (C) 2008 Texas Instruments * * Modified from mach-omap2/board-3430sdp.c * * Initial code: Syed Mohammed Khasim * * 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static struct omap_uart_config omap3_beagle_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; static int __init omap3_beagle_i2c_init(void) { omap_register_i2c_bus(1, 2600, NULL, 0); omap_register_i2c_bus(2, 400, NULL, 0); omap_register_i2c_bus(3, 400, NULL, 0); return 0; } static void __init omap3_beagle_init_irq(void) { omap2_init_common_hw(); omap_init_irq(); omap_gpio_init(); } static struct omap_mmc_config omap3beagle_mmc_config __initdata = { .mmc [0] = { .enabled = 1, .wire4 = 1, }, }; static struct platform_device omap3_beagle_twl4030rtc_device = { .name = "twl4030_rtc", .id = -1, }; static struct platform_device omap3_beagle_lcd_device = { .name = "omap3beagle_lcd", .id = -1, }; static struct omap_lcd_config omap3_beagle_lcd_config __initdata = { .ctrl_name = "internal", }; struct gpio_led gpio_leds[] = { { .name = "beagleboard::led0", .default_trigger = "none", .gpio = 149, }, { .name = "beagleboard::led1", .default_trigger = "none", .gpio = 150, }, }; static struct gpio_led_platform_data gpio_led_info = { .leds = gpio_leds, .num_leds = ARRAY_SIZE(gpio_leds), }; static struct platform_device leds_gpio = { .name = "leds-gpio", .id = -1, .dev = { .platform_data = &gpio_led_info, }, }; static struct omap_board_config_kernel omap3_beagle_config[] __initdata = { { OMAP_TAG_UART, &omap3_beagle_uart_config }, { OMAP_TAG_MMC, &omap3beagle_mmc_config }, { OMAP_TAG_LCD, &omap3_beagle_lcd_config }, }; static struct platform_device *omap3_beagle_devices[] __initdata = { &omap3_beagle_lcd_device, #ifdef CONFIG_RTC_DRV_TWL4030 &omap3_beagle_twl4030rtc_device, #endif &leds_gpio, }; static void __init omap3_beagle_init(void) { platform_add_devices(omap3_beagle_devices, ARRAY_SIZE(omap3_beagle_devices)); omap_board_config = omap3_beagle_config; omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); omap_serial_init(); hsmmc_init(); usb_musb_init(); usb_ehci_init(); } arch_initcall(omap3_beagle_i2c_init); static void __init omap3_beagle_map_io(void) { omap2_set_globals_343x(); omap2_map_common_io(); } MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ .phys_io = 0x48000000, .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, .boot_params = 0x80000100, .map_io = omap3_beagle_map_io, .init_irq = omap3_beagle_init_irq, .init_machine = omap3_beagle_init, .timer = &omap_timer, MACHINE_END