Logo Search packages:      
Sourcecode: linux-2.6 version File versions  Download package

aaed2000.c

/*
 *  linux/arch/arm/mach-aaec2000/aaed2000.c
 *
 *  Support for the Agilent AAED-2000 Development Platform.
 *
 *  Copyright (c) 2005 Nicolas Bellido Y Ortega
 *
 *  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 <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/major.h>
#include <linux/interrupt.h>

#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
#include <asm/hardware.h>
#include <asm/irq.h>

#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>

#include <asm/arch/aaed2000.h>

#include "core.h"

static void aaed2000_clcd_disable(struct clcd_fb *fb)
{
      AAED_EXT_GPIO &= ~AAED_EGPIO_LCD_PWR_EN;
}

static void aaed2000_clcd_enable(struct clcd_fb *fb)
{
      AAED_EXT_GPIO |= AAED_EGPIO_LCD_PWR_EN;
}

struct aaec2000_clcd_info clcd_info = {
      .enable = aaed2000_clcd_enable,
      .disable = aaed2000_clcd_disable,
      .panel = {
            .mode = {
                  .name       = "Sharp",
                  .refresh    = 60,
                  .xres       = 640,
                  .yres       = 480,
                  .pixclock   = 39721,
                  .left_margin      = 20,
                  .right_margin     = 44,
                  .upper_margin     = 21,
                  .lower_margin     = 34,
                  .hsync_len  = 96,
                  .vsync_len  = 2,
                  .sync       = 0,
                  .vmode      = FB_VMODE_NONINTERLACED,
            },
            .width      = -1,
            .height     = -1,
            .tim2 = TIM2_IVS | TIM2_IHS,
            .cntl = CNTL_LCDTFT,
            .bpp  = 16,
      },
};

static void __init aaed2000_init_irq(void)
{
      aaec2000_init_irq();
}

static void __init aaed2000_init(void)
{
      aaec2000_set_clcd_plat_data(&clcd_info);
}

static struct map_desc aaed2000_io_desc[] __initdata = {
      {
            .virtual    = EXT_GPIO_VBASE,
            .pfn            = __phys_to_pfn(EXT_GPIO_PBASE),
            .length         = EXT_GPIO_LENGTH,
            .type           = MT_DEVICE
      },
};

static void __init aaed2000_map_io(void)
{
      aaec2000_map_io();
      iotable_init(aaed2000_io_desc, ARRAY_SIZE(aaed2000_io_desc));
}

MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
      /* Maintainer: Nicolas Bellido Y Ortega */
      .phys_io    = PIO_BASE,
      .io_pg_offst      = ((VIO_BASE) >> 18) & 0xfffc,
      .map_io           = aaed2000_map_io,
      .init_irq   = aaed2000_init_irq,
      .timer            = &aaec2000_timer,
      .init_machine     = aaed2000_init,
MACHINE_END

Generated by  Doxygen 1.6.0   Back to index