]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - arch/ppc/platforms/4xx/virtex-ii_pro.h
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / arch / ppc / platforms / 4xx / virtex-ii_pro.h
1 /*
2 * arch/ppc/platforms/4xx/virtex-ii_pro.h
3 *
4 * Include file that defines the Xilinx Virtex-II Pro processor
5 *
6 * Author: MontaVista Software, Inc.
7 * source@mvista.com
8 *
9 * 2002-2004 (c) MontaVista Software, Inc. This file is licensed under the
10 * terms of the GNU General Public License version 2. This program is licensed
11 * "as is" without any warranty of any kind, whether express or implied.
12 */
13
14 #ifdef __KERNEL__
15 #ifndef __ASM_VIRTEXIIPRO_H__
16 #define __ASM_VIRTEXIIPRO_H__
17
18 #include <linux/config.h>
19 #include <asm/xparameters.h>
20
21 /* serial defines */
22
23 #define RS_TABLE_SIZE 4 /* change this and add more devices below
24 if you have more then 4 16x50 UARTs */
25
26 #define BASE_BAUD (XPAR_UARTNS550_0_CLOCK_FREQ_HZ/16)
27
28 /* The serial ports in the Virtex-II Pro have each I/O byte in the
29 * LSByte of a word. This means that iomem_reg_shift needs to be 2 to
30 * change the byte offsets into word offsets. In addition the base
31 * addresses need to have 3 added to them to get to the LSByte.
32 */
33 #define STD_UART_OP(num) \
34 { 0, BASE_BAUD, 0, XPAR_INTC_0_UARTNS550_##num##_VEC_ID, \
35 ASYNC_BOOT_AUTOCONF, \
36 .iomem_base = (u8 *)XPAR_UARTNS550_##num##_BASEADDR + 3, \
37 .iomem_reg_shift = 2, \
38 .io_type = SERIAL_IO_MEM},
39
40 #if defined(XPAR_INTC_0_UARTNS550_0_VEC_ID)
41 #define ML300_UART0 STD_UART_OP(0)
42 #else
43 #define ML300_UART0
44 #endif
45
46 #if defined(XPAR_INTC_0_UARTNS550_1_VEC_ID)
47 #define ML300_UART1 STD_UART_OP(1)
48 #else
49 #define ML300_UART1
50 #endif
51
52 #if defined(XPAR_INTC_0_UARTNS550_2_VEC_ID)
53 #define ML300_UART2 STD_UART_OP(2)
54 #else
55 #define ML300_UART2
56 #endif
57
58 #if defined(XPAR_INTC_0_UARTNS550_3_VEC_ID)
59 #define ML300_UART3 STD_UART_OP(3)
60 #else
61 #define ML300_UART3
62 #endif
63
64 #if defined(XPAR_INTC_0_UARTNS550_4_VEC_ID)
65 #error Edit this file to add more devices.
66 #elif defined(XPAR_INTC_0_UARTNS550_3_VEC_ID)
67 #define NR_SER_PORTS 4
68 #elif defined(XPAR_INTC_0_UARTNS550_2_VEC_ID)
69 #define NR_SER_PORTS 3
70 #elif defined(XPAR_INTC_0_UARTNS550_1_VEC_ID)
71 #define NR_SER_PORTS 2
72 #elif defined(XPAR_INTC_0_UARTNS550_0_VEC_ID)
73 #define NR_SER_PORTS 1
74 #else
75 #define NR_SER_PORTS 0
76 #endif
77
78 #if defined(CONFIG_UART0_TTYS0)
79 #define SERIAL_PORT_DFNS \
80 ML300_UART0 \
81 ML300_UART1 \
82 ML300_UART2 \
83 ML300_UART3
84 #endif
85
86 #if defined(CONFIG_UART0_TTYS1)
87 #define SERIAL_PORT_DFNS \
88 ML300_UART1 \
89 ML300_UART0 \
90 ML300_UART2 \
91 ML300_UART3
92 #endif
93
94 #define DCRN_CPMFR_BASE 0
95
96 #include <asm/ibm405.h>
97
98 #endif /* __ASM_VIRTEXIIPRO_H__ */
99 #endif /* __KERNEL__ */