http://downloads.netgear.com/files/GPL/GPL_Source_V361j_DM111PSP_series_consumer_rele...
[bcm963xx.git] / kernel / linux / arch / arm / mach-ixp4xx / coyote-setup.c
1 /*
2  * arch/arm/mach-ixp4xx/coyote-setup.c
3  *
4  * ADI Engineering Coyote board-setup 
5  *
6  * Copyright (C) 2003-2004 MontaVista Software, Inc.
7  *
8  * Author: Deepak Saxena <dsaxena@plexity.net>
9  */
10
11 #include <linux/init.h>
12 #include <linux/device.h>
13 #include <linux/serial.h>
14 #include <linux/tty.h>
15 #include <linux/serial_core.h>
16
17 #include <asm/types.h>
18 #include <asm/setup.h>
19 #include <asm/memory.h>
20 #include <asm/hardware.h>
21 #include <asm/irq.h>
22 #include <asm/mach-types.h>
23 #include <asm/mach/arch.h>
24 #include <asm/mach/flash.h>
25
26 #ifdef  __ARMEB__
27 #define REG_OFFSET      3
28 #else
29 #define REG_OFFSET      0
30 #endif
31
32 /*
33  * Only one serial port is connected on the Coyote.
34  */
35 static struct uart_port coyote_serial_port = {
36         .membase        = (char*)(IXP4XX_UART2_BASE_VIRT + REG_OFFSET),
37         .mapbase        = (IXP4XX_UART2_BASE_PHYS),
38         .irq            = IRQ_IXP4XX_UART2,
39         .flags          = UPF_SKIP_TEST,
40         .iotype         = UPIO_MEM,     
41         .regshift       = 2,
42         .uartclk        = IXP4XX_UART_XTAL,
43         .line           = 0,
44         .type           = PORT_XSCALE,
45         .fifosize       = 32
46 };
47
48 void __init coyote_map_io(void)
49 {
50         early_serial_setup(&coyote_serial_port);
51
52         ixp4xx_map_io();
53 }
54
55 static struct flash_platform_data coyote_flash_data = {
56         .map_name       = "cfi_probe",
57         .width          = 2,
58 };
59
60 static struct resource coyote_flash_resource = {
61         .start          = COYOTE_FLASH_BASE,
62         .end            = COYOTE_FLASH_BASE + COYOTE_FLASH_SIZE,
63         .flags          = IORESOURCE_MEM,
64 };
65
66 static struct platform_device coyote_flash = {
67         .name           = "IXP4XX-Flash",
68         .id             = 0,
69         .dev            = {
70                 .platform_data = &coyote_flash_data,
71         },
72         .num_resources  = 1,
73         .resource       = &coyote_flash_resource,
74 };
75
76 static struct platform_device *coyote_devices[] __initdata = {
77         &coyote_flash
78 };
79
80 static void __init coyote_init(void)
81 {
82         platform_add_devices(&coyote_devices, ARRAY_SIZE(coyote_devices));
83 }
84
85 MACHINE_START(ADI_COYOTE, "ADI Engineering IXP4XX Coyote Development Platform")
86         MAINTAINER("MontaVista Software, Inc.")
87         BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
88                 IXP4XX_PERIPHERAL_BASE_VIRT)
89         MAPIO(coyote_map_io)
90         INITIRQ(ixp4xx_init_irq)
91         INITTIME(ixp4xx_init_time)
92         BOOT_PARAMS(0x0100)
93         INIT_MACHINE(coyote_init)
94 MACHINE_END
95