aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/platforms/4xx/virtex.c
diff options
context:
space:
mode:
authorGrant C. Likely <grant.likely@secretlab.ca>2006-01-19 03:12:48 -0500
committerPaul Mackerras <paulus@samba.org>2006-02-07 06:35:58 -0500
commit1a42e53d175074f340a3f85042ed64cfc51be216 (patch)
tree6426aebaa777d30be7ea7e6f3f6334fb94029230 /arch/ppc/platforms/4xx/virtex.c
parent562e7370a4d59d7ee8988fb0e13707d1f01a046a (diff)
[PATCH] powerpc: Migrate Xilinx Vertex support from the OCP bus to the platfom bus.
This patch only deals with the serial port definitions as there is no support for any other xilinx IP cores in the kernel tree at the moment. Board specific configuration moved out of virtex.[ch] and into the xparameters.h wrapper. This also prepares for the transition to the flattened device tree model. When the bootloader provides a device tree generated from an xparameters.h files, the kernel will no longer need xparameters/*. The platform bus will get populated with data from the device tree, and the device drivers will be automatically connected to the devices. Only the bootloader (or ppcboot) will need xparameters directly. Signed-off-by: Grant C. Likely <grant.likely@secretlab.ca> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc/platforms/4xx/virtex.c')
-rw-r--r--arch/ppc/platforms/4xx/virtex.c88
1 files changed, 42 insertions, 46 deletions
diff --git a/arch/ppc/platforms/4xx/virtex.c b/arch/ppc/platforms/4xx/virtex.c
index bbb12c0c0b2c..133a83147199 100644
--- a/arch/ppc/platforms/4xx/virtex.c
+++ b/arch/ppc/platforms/4xx/virtex.c
@@ -1,60 +1,56 @@
1/* 1/*
2 * arch/ppc/platforms/4xx/virtex.c 2 * Virtex-II Pro & Virtex-4 FX common infrastructure
3 * 3 *
4 * Author: MontaVista Software, Inc. 4 * Maintainer: Grant Likely <grant.likely@secretlab.ca>
5 * source@mvista.com
6 * 5 *
7 * 2002-2004 (c) MontaVista Software, Inc. This file is licensed under the 6 * Copyright 2005 Secret Lab Technologies Ltd.
8 * terms of the GNU General Public License version 2. This program is licensed 7 * Copyright 2005 General Dynamics Canada Ltd.
9 * "as is" without any warranty of any kind, whether express or implied. 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.
10 */ 14 */
11 15
12#include <linux/config.h>
13#include <linux/init.h> 16#include <linux/init.h>
14#include <asm/ocp.h> 17#include <linux/module.h>
18#include <linux/device.h>
19#include <linux/serial_8250.h>
20#include <asm/ppc_sys.h>
15#include <platforms/4xx/virtex.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 }
16 32
17/* Have OCP take care of the serial ports. */ 33struct plat_serial8250_port serial_platform_data[] = {
18struct ocp_def core_ocp[] = {
19#ifdef XPAR_UARTNS550_0_BASEADDR 34#ifdef XPAR_UARTNS550_0_BASEADDR
20 { .vendor = OCP_VENDOR_XILINX, 35 XPAR_UART(0),
21 .function = OCP_FUNC_16550, 36#endif
22 .index = 0,
23 .paddr = XPAR_UARTNS550_0_BASEADDR,
24 .irq = XPAR_INTC_0_UARTNS550_0_VEC_ID,
25 .pm = OCP_CPM_NA
26 },
27#ifdef XPAR_UARTNS550_1_BASEADDR 37#ifdef XPAR_UARTNS550_1_BASEADDR
28 { .vendor = OCP_VENDOR_XILINX, 38 XPAR_UART(1),
29 .function = OCP_FUNC_16550, 39#endif
30 .index = 1,
31 .paddr = XPAR_UARTNS550_1_BASEADDR,
32 .irq = XPAR_INTC_0_UARTNS550_1_VEC_ID,
33 .pm = OCP_CPM_NA
34 },
35#ifdef XPAR_UARTNS550_2_BASEADDR 40#ifdef XPAR_UARTNS550_2_BASEADDR
36 { .vendor = OCP_VENDOR_XILINX, 41 XPAR_UART(2),
37 .function = OCP_FUNC_16550, 42#endif
38 .index = 2,
39 .paddr = XPAR_UARTNS550_2_BASEADDR,
40 .irq = XPAR_INTC_0_UARTNS550_2_VEC_ID,
41 .pm = OCP_CPM_NA
42 },
43#ifdef XPAR_UARTNS550_3_BASEADDR 43#ifdef XPAR_UARTNS550_3_BASEADDR
44 { .vendor = OCP_VENDOR_XILINX, 44 XPAR_UART(3),
45 .function = OCP_FUNC_16550, 45#endif
46 .index = 3, 46 { }, /* terminated by empty record */
47 .paddr = XPAR_UARTNS550_3_BASEADDR, 47};
48 .irq = XPAR_INTC_0_UARTNS550_3_VEC_ID, 48
49 .pm = OCP_CPM_NA 49struct platform_device ppc_sys_platform_devices[] = {
50 [VIRTEX_UART] = {
51 .name = "serial8250",
52 .id = 0,
53 .dev.platform_data = serial_platform_data,
50 }, 54 },
51#ifdef XPAR_UARTNS550_4_BASEADDR
52#error Edit this file to add more devices.
53#endif /* 4 */
54#endif /* 3 */
55#endif /* 2 */
56#endif /* 1 */
57#endif /* 0 */
58 { .vendor = OCP_VENDOR_INVALID
59 }
60}; 55};
56