Merge branch 'master' of /home/aia21/ntfs-2.6/
[linux-2.6] / arch / ppc / platforms / 4xx / virtex.c
1 /*
2  * Virtex-II Pro & Virtex-4 FX common infrastructure
3  *
4  * Maintainer: Grant Likely <grant.likely@secretlab.ca>
5  *
6  * Copyright 2005 Secret Lab Technologies Ltd.
7  * Copyright 2005 General Dynamics Canada Ltd.
8  * Copyright 2005 Freescale Semiconductor Inc.
9  *
10  * This program is free software; you can redistribute  it and/or modify it
11  * under  the terms of  the GNU General  Public License as published by the
12  * Free Software Foundation;  either version 2 of the  License, or (at your
13  * option) any later version.
14  */
15
16 #include <linux/init.h>
17 #include <linux/module.h>
18 #include <linux/device.h>
19 #include <linux/serial_8250.h>
20 #include <asm/ppc_sys.h>
21 #include <platforms/4xx/virtex.h>
22 #include <platforms/4xx/xparameters/xparameters.h>
23
24 #define XPAR_UART(num) { \
25                 .mapbase  = XPAR_UARTNS550_##num##_BASEADDR + 3, \
26                 .irq      = XPAR_INTC_0_UARTNS550_##num##_VEC_ID, \
27                 .iotype   = UPIO_MEM, \
28                 .uartclk  = XPAR_UARTNS550_##num##_CLOCK_FREQ_HZ, \
29                 .flags    = UPF_BOOT_AUTOCONF, \
30                 .regshift = 2, \
31         }
32
33 struct plat_serial8250_port serial_platform_data[] = {
34 #ifdef XPAR_UARTNS550_0_BASEADDR
35         XPAR_UART(0),
36 #endif
37 #ifdef XPAR_UARTNS550_1_BASEADDR
38         XPAR_UART(1),
39 #endif
40 #ifdef XPAR_UARTNS550_2_BASEADDR
41         XPAR_UART(2),
42 #endif
43 #ifdef XPAR_UARTNS550_3_BASEADDR
44         XPAR_UART(3),
45 #endif
46         { }, /* terminated by empty record */
47 };
48
49 struct platform_device ppc_sys_platform_devices[] = {
50         [VIRTEX_UART] = {
51                 .name           = "serial8250",
52                 .id             = 0,
53                 .dev.platform_data = serial_platform_data,
54         },
55 };
56