linux/arch/arm/mach-h720x/h7202-eval.c
<<
>>
Prefs
   1/*
   2 * linux/arch/arm/mach-h720x/h7202-eval.c
   3 *
   4 * Copyright (C) 2003 Thomas Gleixner <tglx@linutronix.de>
   5 *               2003 Robert Schwebel <r.schwebel@pengutronix.de>
   6 *               2004 Sascha Hauer <s.hauer@pengutronix.de>
   7 *
   8 * Architecture specific stuff for Hynix HMS30C7202 development board
   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
  16#include <linux/config.h>
  17#include <linux/init.h>
  18#include <linux/kernel.h>
  19#include <linux/types.h>
  20#include <linux/string.h>
  21#include <linux/device.h>
  22
  23#include <asm/setup.h>
  24#include <asm/types.h>
  25#include <asm/mach-types.h>
  26#include <asm/page.h>
  27#include <asm/pgtable.h>
  28#include <asm/mach/arch.h>
  29#include <asm/hardware.h>
  30#include "common.h"
  31
  32static struct resource cirrus_resources[] = {
  33        [0] = {
  34                .start  = ETH0_PHYS + 0x300,
  35                .end    = ETH0_PHYS + 0x300 + 0x10,
  36                .flags  = IORESOURCE_MEM,
  37        },
  38        [1] = {
  39                .start  = IRQ_CHAINED_GPIOB(8),
  40                .end    = IRQ_CHAINED_GPIOB(8),
  41                .flags  = IORESOURCE_IRQ,
  42        },
  43};
  44
  45static struct platform_device cirrus_device = {
  46        .name           = "cirrus-cs89x0",
  47        .id             = -1,
  48        .num_resources  = ARRAY_SIZE(cirrus_resources),
  49        .resource       = cirrus_resources,
  50};
  51
  52static struct platform_device *devices[] __initdata = {
  53        &cirrus_device,
  54};
  55
  56/*
  57 * Hardware init. This is called early in initcalls
  58 * Place pin inits here. So you avoid adding ugly
  59 * #ifdef stuff to common drivers.
  60 * Use this only, if your bootloader is not able
  61 * to initialize the pins proper.
  62 */
  63static void __init init_eval_h7202(void)
  64{
  65        init_hw_h7202();
  66        (void) platform_add_devices(devices, ARRAY_SIZE(devices));
  67
  68        /* Enable interrupt on portb bit 8 (ethernet) */
  69        CPU_REG (GPIO_B_VIRT, GPIO_POL) &= ~(1 << 8);
  70        CPU_REG (GPIO_B_VIRT, GPIO_EN) |= (1 << 8);
  71}
  72
  73MACHINE_START(H7202, "Hynix HMS30C7202")
  74        MAINTAINER("Robert Schwebel, Pengutronix")
  75        BOOT_MEM(0x40000000, 0x80000000, 0xf0000000)
  76        BOOT_PARAMS(0x40000100)
  77        MAPIO(h720x_map_io)
  78        INITIRQ(h7202_init_irq)
  79        .timer = &h7202_timer,
  80        INIT_MACHINE(init_eval_h7202)
  81MACHINE_END
  82
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.