Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * Board support file for OMAP4430 SDP.
  3  *
  4  * Copyright (C) 2009 Texas Instruments
  5  *
  6  * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
  7  *
  8  * Based on mach-omap2/board-3430sdp.c
  9  *
 10  * This program is free software; you can redistribute it and/or modify
 11  * it under the terms of the GNU General Public License version 2 as
 12  * published by the Free Software Foundation.
 13  */
 14 
 15 #include <linux/kernel.h>
 16 #include <linux/init.h>
 17 #include <linux/platform_device.h>
 18 #include <linux/io.h>
 19 #include <linux/gpio.h>
 20 
 21 #include <mach/hardware.h>
 22 #include <asm/mach-types.h>
 23 #include <asm/mach/arch.h>
 24 #include <asm/mach/map.h>
 25 
 26 #include <mach/board.h>
 27 #include <mach/common.h>
 28 #include <mach/control.h>
 29 #include <mach/timer-gp.h>
 30 #include <asm/hardware/gic.h>
 31 
 32 static struct platform_device sdp4430_lcd_device = {
 33         .name           = "sdp4430_lcd",
 34         .id             = -1,
 35 };
 36 
 37 static struct platform_device *sdp4430_devices[] __initdata = {
 38         &sdp4430_lcd_device,
 39 };
 40 
 41 static struct omap_uart_config sdp4430_uart_config __initdata = {
 42         .enabled_uarts  = (1 << 0) | (1 << 1) | (1 << 2),
 43 };
 44 
 45 static struct omap_lcd_config sdp4430_lcd_config __initdata = {
 46         .ctrl_name      = "internal",
 47 };
 48 
 49 static struct omap_board_config_kernel sdp4430_config[] __initdata = {
 50         { OMAP_TAG_UART,        &sdp4430_uart_config },
 51         { OMAP_TAG_LCD,         &sdp4430_lcd_config },
 52 };
 53 
 54 static void __init gic_init_irq(void)
 55 {
 56         gic_dist_init(0, IO_ADDRESS(OMAP44XX_GIC_DIST_BASE), 29);
 57         gic_cpu_init(0, IO_ADDRESS(OMAP44XX_GIC_CPU_BASE));
 58 }
 59 
 60 static void __init omap_4430sdp_init_irq(void)
 61 {
 62         omap2_init_common_hw(NULL, NULL);
 63 #ifdef CONFIG_OMAP_32K_TIMER
 64         omap2_gp_clockevent_set_gptimer(1);
 65 #endif
 66         gic_init_irq();
 67         omap_gpio_init();
 68 }
 69 
 70 
 71 static void __init omap_4430sdp_init(void)
 72 {
 73         platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
 74         omap_board_config = sdp4430_config;
 75         omap_board_config_size = ARRAY_SIZE(sdp4430_config);
 76         omap_serial_init();
 77 }
 78 
 79 static void __init omap_4430sdp_map_io(void)
 80 {
 81         omap2_set_globals_443x();
 82         omap2_map_common_io();
 83 }
 84 
 85 MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
 86         /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */
 87         .phys_io        = 0x48000000,
 88         .io_pg_offst    = ((0xd8000000) >> 18) & 0xfffc,
 89         .boot_params    = 0x80000100,
 90         .map_io         = omap_4430sdp_map_io,
 91         .init_irq       = omap_4430sdp_init_irq,
 92         .init_machine   = omap_4430sdp_init,
 93         .timer          = &omap_timer,
 94 MACHINE_END
 95 
  This page was automatically generated by the LXR engine.