1 /*
2  * include/asm-ppc/platforms/spruce.h
3  *
4  * Definitions for IBM Spruce reference board support
5  *
6  * Authors: Matt Porter and Johnnie Peters
7  *          mporter@mvista.com
8  *          jpeters@mvista.com
9  *
10  * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
11  * the terms of the GNU General Public License version 2.  This program
12  * is licensed "as is" without any warranty of any kind, whether express
13  * or implied.
14  */
15 
16 #ifdef __KERNEL__
17 #ifndef __ASM_SPRUCE_H__
18 #define __ASM_SPRUCE_H__
19 
20 #define SPRUCE_PCI_CONFIG_ADDR	0xfec00000
21 #define SPRUCE_PCI_CONFIG_DATA	0xfec00004
22 
23 #define SPRUCE_PCI_PHY_IO_BASE	0xf8000000
24 #define SPRUCE_PCI_IO_BASE	SPRUCE_PCI_PHY_IO_BASE
25 
26 #define SPRUCE_PCI_SYS_MEM_BASE	0x00000000
27 
28 #define SPRUCE_PCI_LOWER_MEM	0x80000000
29 #define SPRUCE_PCI_UPPER_MEM	0x9fffffff
30 #define SPRUCE_PCI_LOWER_IO	0x00000000
31 #define SPRUCE_PCI_UPPER_IO	0x03ffffff
32 
33 #define	SPRUCE_ISA_IO_BASE	SPRUCE_PCI_IO_BASE
34 
35 #define SPRUCE_MEM_SIZE		0x04000000
36 #define SPRUCE_BUS_SPEED	66666667
37 
38 #define SPRUCE_NVRAM_BASE_ADDR	0xff800000
39 #define SPRUCE_RTC_BASE_ADDR	SPRUCE_NVRAM_BASE_ADDR
40 
41 #define KEYBOARD_IRQ    22
42 #define AUX_IRQ 	21
43 
44 unsigned char spruce_read_keyb_data(void);
45 unsigned char spruce_read_keyb_status(void);
46 
47 #define kbd_read_input  spruce_read_keyb_data
48 #define kbd_read_status spruce_read_keyb_status
49 #define kbd_write_output(val) *((unsigned char *)0xff810000) = (char)val
50 #define kbd_write_command(val) *((unsigned char *)0xff810001) = (char)val
51 
52 /*
53  * Serial port defines
54  */
55 #define SPRUCE_FPGA_REG_A	0xff820000
56 #define SPRUCE_UARTCLK_33M	0x02
57 #define SPRUCE_UARTCLK_IS_33M(reg)	(reg & SPRUCE_UARTCLK_33M)
58 
59 #define UART0_IO_BASE	0xff600300
60 #define UART1_IO_BASE	0xff600400
61 
62 #define RS_TABLE_SIZE	2
63 
64 #define SPRUCE_BAUD_33M	33000000/64
65 #define SPRUCE_BAUD_30M	30000000/64
66 #define BASE_BAUD	SPRUCE_BAUD_33M
67 
68 #define UART0_INT	3
69 #define UART1_INT	4
70 
71 #define STD_UART_OP(num)					\
72 	{ 0, BASE_BAUD, 0, UART##num##_INT,			\
73 		ASYNC_BOOT_AUTOCONF,				\
74 		iomem_base: UART##num##_IO_BASE,		\
75 		io_type: SERIAL_IO_MEM},
76 
77 #define SERIAL_PORT_DFNS	\
78 	STD_UART_OP(0)		\
79 	STD_UART_OP(1)
80 
81 #endif /* __ASM_SPRUCE_H__ */
82 #endif /* __KERNEL__ */
83