linux/arch/arm/mach-aaec2000/aaed2000.c
<<
>>
Prefs
   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 <mach/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 <mach/aaed2000.h>
  31
  32#include "core.h"
  33
  34static void aaed2000_clcd_disable(struct clcd_fb *fb)
  35{
  36        AAED_EXT_GPIO &= ~AAED_EGPIO_LCD_PWR_EN;
  37}
  38
  39static void aaed2000_clcd_enable(struct clcd_fb *fb)
  40{
  41        AAED_EXT_GPIO |= AAED_EGPIO_LCD_PWR_EN;
  42}
  43
  44struct 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
  71static void __init aaed2000_init_irq(void)
  72{
  73        aaec2000_init_irq();
  74}
  75
  76static void __init aaed2000_init(void)
  77{
  78        aaec2000_set_clcd_plat_data(&clcd_info);
  79}
  80
  81static 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
  90static void __init aaed2000_map_io(void)
  91{
  92        aaec2000_map_io();
  93        iotable_init(aaed2000_io_desc, ARRAY_SIZE(aaed2000_io_desc));
  94}
  95
  96MACHINE_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,
 104MACHINE_END
 105
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.