]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/ppc/platforms/4xx/virtex.c
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-mmc
[linux-2.6-omap-h63xx.git] / arch / ppc / platforms / 4xx / virtex.c
index bbb12c0c0b2c42b5fa8c64fcaa8a18f83abc3209..133a83147199f7d2a891df67c6d97648abedc1c2 100644 (file)
@@ -1,60 +1,56 @@
 /*
- * arch/ppc/platforms/4xx/virtex.c
+ * Virtex-II Pro & Virtex-4 FX common infrastructure
  *
- * Author: MontaVista Software, Inc.
- *         source@mvista.com
+ * Maintainer: Grant Likely <grant.likely@secretlab.ca>
  *
- * 2002-2004 (c) MontaVista Software, Inc.  This file is licensed under the
- * terms of the GNU General Public License version 2.  This program is licensed
- * "as is" without any warranty of any kind, whether express or implied.
+ * Copyright 2005 Secret Lab Technologies Ltd.
+ * Copyright 2005 General Dynamics Canada Ltd.
+ * Copyright 2005 Freescale Semiconductor Inc.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
-#include <asm/ocp.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/serial_8250.h>
+#include <asm/ppc_sys.h>
 #include <platforms/4xx/virtex.h>
+#include <platforms/4xx/xparameters/xparameters.h>
+
+#define XPAR_UART(num) { \
+               .mapbase  = XPAR_UARTNS550_##num##_BASEADDR + 3, \
+               .irq      = XPAR_INTC_0_UARTNS550_##num##_VEC_ID, \
+               .iotype   = UPIO_MEM, \
+               .uartclk  = XPAR_UARTNS550_##num##_CLOCK_FREQ_HZ, \
+               .flags    = UPF_BOOT_AUTOCONF, \
+               .regshift = 2, \
+       }
 
-/* Have OCP take care of the serial ports. */
-struct ocp_def core_ocp[] = {
+struct plat_serial8250_port serial_platform_data[] = {
 #ifdef XPAR_UARTNS550_0_BASEADDR
-       { .vendor       = OCP_VENDOR_XILINX,
-         .function     = OCP_FUNC_16550,
-         .index        = 0,
-         .paddr        = XPAR_UARTNS550_0_BASEADDR,
-         .irq          = XPAR_INTC_0_UARTNS550_0_VEC_ID,
-         .pm           = OCP_CPM_NA
-       },
+       XPAR_UART(0),
+#endif
 #ifdef XPAR_UARTNS550_1_BASEADDR
-       { .vendor       = OCP_VENDOR_XILINX,
-         .function     = OCP_FUNC_16550,
-         .index        = 1,
-         .paddr        = XPAR_UARTNS550_1_BASEADDR,
-         .irq          = XPAR_INTC_0_UARTNS550_1_VEC_ID,
-         .pm           = OCP_CPM_NA
-       },
+       XPAR_UART(1),
+#endif
 #ifdef XPAR_UARTNS550_2_BASEADDR
-       { .vendor       = OCP_VENDOR_XILINX,
-         .function     = OCP_FUNC_16550,
-         .index        = 2,
-         .paddr        = XPAR_UARTNS550_2_BASEADDR,
-         .irq          = XPAR_INTC_0_UARTNS550_2_VEC_ID,
-         .pm           = OCP_CPM_NA
-       },
+       XPAR_UART(2),
+#endif
 #ifdef XPAR_UARTNS550_3_BASEADDR
-       { .vendor       = OCP_VENDOR_XILINX,
-         .function     = OCP_FUNC_16550,
-         .index        = 3,
-         .paddr        = XPAR_UARTNS550_3_BASEADDR,
-         .irq          = XPAR_INTC_0_UARTNS550_3_VEC_ID,
-         .pm           = OCP_CPM_NA
+       XPAR_UART(3),
+#endif
+       { }, /* terminated by empty record */
+};
+
+struct platform_device ppc_sys_platform_devices[] = {
+       [VIRTEX_UART] = {
+               .name           = "serial8250",
+               .id             = 0,
+               .dev.platform_data = serial_platform_data,
        },
-#ifdef XPAR_UARTNS550_4_BASEADDR
-#error Edit this file to add more devices.
-#endif                 /* 4 */
-#endif                 /* 3 */
-#endif                 /* 2 */
-#endif                 /* 1 */
-#endif                 /* 0 */
-       { .vendor       = OCP_VENDOR_INVALID
-       }
 };
+