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  *  linux/arch/arm/mach-aaec2000/aaed2000.c
  3  *
  4  *  Support for the Agilent AAED-2000 Development Platform.
  5  *
  6  *  Copyright (c) 2005 Nicolas Bellido Y Ortega
  7  *
  8  *  This program is free software; you can redistribute it and/or modify
  9  *  it under the terms of the GNU General Public License version 2 as
 10  *  published by the Free Software Foundation.
 11  *
 12  */
 13 #include <linux/module.h>
 14 #include <linux/kernel.h>
 15 #include <linux/init.h>
 16 #include <linux/device.h>
 17 #include <linux/major.h>
 18 #include <linux/interrupt.h>
 19 
 20 #include <asm/setup.h>
 21 #include <asm/memory.h>
 22 #include <asm/mach-types.h>
 23 #include <asm/hardware.h>
 24 #include <asm/irq.h>
 25 
 26 #include <asm/mach/arch.h>
 27 #include <asm/mach/map.h>
 28 #include <asm/mach/irq.h>
 29 
 30 #include <asm/arch/aaed2000.h>
 31 
 32 #include "core.h"
 33 
 34 static void aaed2000_clcd_disable(struct clcd_fb *fb)
 35 {
 36         AAED_EXT_GPIO &= ~AAED_EGPIO_LCD_PWR_EN;
 37 }
 38 
 39 static void aaed2000_clcd_enable(struct clcd_fb *fb)
 40 {
 41         AAED_EXT_GPIO |= AAED_EGPIO_LCD_PWR_EN;
 42 }
 43 
 44 struct aaec2000_clcd_info clcd_info = {
 45         .enable = aaed2000_clcd_enable,
 46         .disable = aaed2000_clcd_disable,
 47         .panel = {
 48                 .mode   = {
 49                         .name           = "Sharp",
 50                         .refresh        = 60,
 51                         .xres           = 640,
 52                         .yres           = 480,
 53                         .pixclock       = 39721,
 54                         .left_margin    = 20,
 55                         .right_margin   = 44,
 56                         .upper_margin   = 21,
 57                         .lower_margin   = 34,
 58                         .hsync_len      = 96,
 59                         .vsync_len      = 2,
 60                         .sync           = 0,
 61                         .vmode  = FB_VMODE_NONINTERLACED,
 62                 },
 63                 .width  = -1,
 64                 .height = -1,
 65                 .tim2   = TIM2_IVS | TIM2_IHS,
 66                 .cntl   = CNTL_LCDTFT,
 67                 .bpp    = 16,
 68         },
 69 };
 70 
 71 static void __init aaed2000_init_irq(void)
 72 {
 73         aaec2000_init_irq();
 74 }
 75 
 76 static void __init aaed2000_init(void)
 77 {
 78         aaec2000_set_clcd_plat_data(&clcd_info);
 79 }
 80 
 81 static struct map_desc aaed2000_io_desc[] __initdata = {
 82         {
 83                 .virtual        = EXT_GPIO_VBASE,
 84                 .pfn            = __phys_to_pfn(EXT_GPIO_PBASE),
 85                 .length         = EXT_GPIO_LENGTH,
 86                 .type           = MT_DEVICE
 87         },
 88 };
 89 
 90 static void __init aaed2000_map_io(void)
 91 {
 92         aaec2000_map_io();
 93         iotable_init(aaed2000_io_desc, ARRAY_SIZE(aaed2000_io_desc));
 94 }
 95 
 96 MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
 97         /* Maintainer: Nicolas Bellido Y Ortega */
 98         .phys_io        = PIO_BASE,
 99         .io_pg_offst    = ((VIO_BASE) >> 18) & 0xfffc,
100         .map_io         = aaed2000_map_io,
101         .init_irq       = aaed2000_init_irq,
102         .timer          = &aaec2000_timer,
103         .init_machine   = aaed2000_init,
104 MACHINE_END
105 
  This page was automatically generated by the LXR engine.