1 /*
2  *
3  *    Copyright 2000-2001 MontaVista Software Inc.
4  *      Completed implementation.
5  *	Current maintainer
6  *      Armin Kuster akuster@mvista.com
7  *
8  *    Module name: ibmstb4.c
9  *
10  *
11  * This program is free software; you can redistribute  it and/or modify it
12  *  under  the terms of  the GNU General Public License as published by the
13  *  Free Software Foundation;  either version 2 of the  License, or (at your
14  *  option) any later version.
15  *
16  *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR   IMPLIED
17  *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
18  *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
19  *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT,  INDIRECT,
20  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21  *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
22  *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
23  *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
24  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25  *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  *  You should have received a copy of the  GNU General Public License along
28  *  with this program; if not, write  to the Free Software Foundation, Inc.,
29  *  675 Mass Ave, Cambridge, MA 02139, USA.
30  *
31  *      History: 12/26/2001 - armin
32  *		initial release
33  *
34  *		: 05/05/02 - Armin
35  *		  replaced all const strcuts with new core_ocp
36  *
37  *		: 07/07/02 - Armin
38  *		added OCP_IRQ_MUL to define EMAC
39  *		and added PM register
40  *
41  */
42 
43 #include <linux/init.h>
44 #include <platforms/ibmstb4.h>
45 #include <asm/ocp.h>
46 
47 struct ocp_def core_ocp[] __initdata = {
48 	{ .vendor	= OCP_VENDOR_IBM,
49 	  .function	= OCP_FUNC_16550,
50 	  .index	= 0,
51 	  .paddr	= UART0_IO_BASE,
52 	  .irq		= UART0_INT,
53 	  .pm		= IBM_CPM_UART0,
54 	},
55 	{ .vendor	= OCP_VENDOR_IBM,
56 	  .function	= OCP_FUNC_16550,
57 	  .index	= 1,
58 	  .paddr	= UART1_IO_BASE,
59 	  .irq		= UART1_INT,
60 	  .pm		= IBM_CPM_UART1,
61 	},
62 	{ .vendor	= OCP_VENDOR_IBM,
63 	  .function	= OCP_FUNC_16550,
64 	  .index	= 2,
65 	  .paddr	= UART2_IO_BASE,
66 	  .irq		= UART2_INT,
67 	  .pm		= IBM_CPM_UART2,
68 	},
69 	{ .vendor	= OCP_VENDOR_IBM,
70 	  .function	= OCP_FUNC_IIC,
71 	  .paddr	= IIC0_BASE,
72 	  .irq		= IIC0_IRQ,
73 	  .pm		= IBM_CPM_IIC0,
74 	},
75 	{ .vendor	= OCP_VENDOR_IBM,
76 	  .function	= OCP_FUNC_IIC,
77 	  .paddr	= IIC1_BASE,
78 	  .irq		= IIC1_IRQ,
79 	  .pm		= IBM_CPM_IIC1,
80 	},
81 	{ .vendor	= OCP_VENDOR_IBM,
82 	  .function	= OCP_FUNC_GPIO,
83 	  .paddr	= GPIO0_BASE,
84 	  .irq		= OCP_IRQ_NA,
85 	  .pm		= IBM_CPM_GPIO0,
86 	},
87 	{ .vendor	= OCP_VENDOR_IBM,
88 	  .function	= OCP_FUNC_IDE,
89 	  .paddr	= IDE0_BASE,
90 	  .irq		= IDE0_IRQ,
91 	  .pm		= OCP_CPM_NA,
92 	},
93 	{ .vendor	= OCP_VENDOR_IBM,
94 	  .function	= OCP_FUNC_USB,
95 	  .paddr	= USB0_BASE,
96 	  .irq		= USB0_IRQ,
97 	  .pm		= OCP_CPM_NA,
98 	},
99 	{ .vendor	= OCP_VENDOR_INVALID,
100 	}
101 };
102