blob: d96a93dbcb5a48b1019ba634f93799fd1df03428 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Linus Torvalds1da177e2005-04-16 15:20:36 -07002 * MPC85xx System descriptions
3 *
Kumar Gala4c8d3d92005-11-13 16:06:30 -08004 * Maintainer: Kumar Gala <galak@kernel.crashing.org>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005 *
6 * Copyright 2005 Freescale Semiconductor Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 */
13
14#include <linux/init.h>
15#include <linux/module.h>
16#include <linux/device.h>
17#include <asm/ppc_sys.h>
18
19struct ppc_sys_spec *cur_ppc_sys_spec;
20struct ppc_sys_spec ppc_sys_specs[] = {
21 {
22 .ppc_sys_name = "8540",
23 .mask = 0xFFFF0000,
24 .value = 0x80300000,
Andy Flemingb37665e2005-10-28 17:46:27 -070025 .num_devices = 11,
Linus Torvalds1da177e2005-04-16 15:20:36 -070026 .device_list = (enum ppc_sys_devices[])
27 {
28 MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_FEC, MPC85xx_IIC1,
29 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
Andy Flemingb37665e2005-10-28 17:46:27 -070030 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_MDIO,
Linus Torvalds1da177e2005-04-16 15:20:36 -070031 },
32 },
33 {
34 .ppc_sys_name = "8560",
35 .mask = 0xFFFF0000,
36 .value = 0x80700000,
Andy Flemingb37665e2005-10-28 17:46:27 -070037 .num_devices = 20,
Linus Torvalds1da177e2005-04-16 15:20:36 -070038 .device_list = (enum ppc_sys_devices[])
39 {
40 MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
41 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
42 MPC85xx_PERFMON,
43 MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
44 MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3, MPC85xx_CPM_SCC4,
45 MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2, MPC85xx_CPM_FCC3,
Andy Flemingb37665e2005-10-28 17:46:27 -070046 MPC85xx_CPM_MCC1, MPC85xx_CPM_MCC2, MPC85xx_MDIO,
Linus Torvalds1da177e2005-04-16 15:20:36 -070047 },
48 },
49 {
50 .ppc_sys_name = "8541",
51 .mask = 0xFFFF0000,
52 .value = 0x80720000,
Andy Flemingb37665e2005-10-28 17:46:27 -070053 .num_devices = 14,
Linus Torvalds1da177e2005-04-16 15:20:36 -070054 .device_list = (enum ppc_sys_devices[])
55 {
56 MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
57 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
58 MPC85xx_PERFMON, MPC85xx_DUART,
59 MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
60 MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
Andy Flemingb37665e2005-10-28 17:46:27 -070061 MPC85xx_MDIO,
Linus Torvalds1da177e2005-04-16 15:20:36 -070062 },
63 },
64 {
65 .ppc_sys_name = "8541E",
66 .mask = 0xFFFF0000,
67 .value = 0x807A0000,
Andy Flemingb37665e2005-10-28 17:46:27 -070068 .num_devices = 15,
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 .device_list = (enum ppc_sys_devices[])
70 {
71 MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
72 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
73 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
74 MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
75 MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
Andy Flemingb37665e2005-10-28 17:46:27 -070076 MPC85xx_MDIO,
Linus Torvalds1da177e2005-04-16 15:20:36 -070077 },
78 },
79 {
80 .ppc_sys_name = "8555",
81 .mask = 0xFFFF0000,
82 .value = 0x80710000,
Andy Flemingb37665e2005-10-28 17:46:27 -070083 .num_devices = 20,
Linus Torvalds1da177e2005-04-16 15:20:36 -070084 .device_list = (enum ppc_sys_devices[])
85 {
86 MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
87 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
88 MPC85xx_PERFMON, MPC85xx_DUART,
89 MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
90 MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
91 MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
92 MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
93 MPC85xx_CPM_USB,
Andy Flemingb37665e2005-10-28 17:46:27 -070094 MPC85xx_MDIO,
Linus Torvalds1da177e2005-04-16 15:20:36 -070095 },
96 },
97 {
98 .ppc_sys_name = "8555E",
99 .mask = 0xFFFF0000,
100 .value = 0x80790000,
Andy Flemingb37665e2005-10-28 17:46:27 -0700101 .num_devices = 21,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700102 .device_list = (enum ppc_sys_devices[])
103 {
104 MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
105 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
106 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
107 MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
108 MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
109 MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
110 MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
111 MPC85xx_CPM_USB,
Andy Flemingb37665e2005-10-28 17:46:27 -0700112 MPC85xx_MDIO,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700113 },
114 },
Kumar Gala5b37b702005-06-21 17:15:18 -0700115 /* SVRs on 8548 rev1.0 matches for 8548/8547/8545 */
116 {
117 .ppc_sys_name = "8548E",
118 .mask = 0xFFFF00F0,
119 .value = 0x80390010,
Andy Flemingb37665e2005-10-28 17:46:27 -0700120 .num_devices = 14,
Kumar Gala5b37b702005-06-21 17:15:18 -0700121 .device_list = (enum ppc_sys_devices[])
122 {
123 MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
124 MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
125 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
126 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
Andy Flemingb37665e2005-10-28 17:46:27 -0700127 MPC85xx_MDIO,
Kumar Gala5b37b702005-06-21 17:15:18 -0700128 },
129 },
130 {
131 .ppc_sys_name = "8548",
132 .mask = 0xFFFF00F0,
133 .value = 0x80310010,
Kumar Gala5b37b702005-06-21 17:15:18 -0700134 .num_devices = 13,
135 .device_list = (enum ppc_sys_devices[])
136 {
137 MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
138 MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
139 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
Andy Flemingb37665e2005-10-28 17:46:27 -0700140 MPC85xx_PERFMON, MPC85xx_DUART,
141 MPC85xx_MDIO,
142 },
143 },
144 {
145 .ppc_sys_name = "8547E",
146 .mask = 0xFFFF00F0,
147 .value = 0x80390010,
148 .num_devices = 14,
149 .device_list = (enum ppc_sys_devices[])
150 {
151 MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
152 MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
153 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
Kumar Gala5b37b702005-06-21 17:15:18 -0700154 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
Andy Flemingb37665e2005-10-28 17:46:27 -0700155 MPC85xx_MDIO,
Kumar Gala5b37b702005-06-21 17:15:18 -0700156 },
157 },
158 {
159 .ppc_sys_name = "8547",
160 .mask = 0xFFFF00F0,
161 .value = 0x80310010,
Andy Flemingb37665e2005-10-28 17:46:27 -0700162 .num_devices = 13,
Kumar Gala5b37b702005-06-21 17:15:18 -0700163 .device_list = (enum ppc_sys_devices[])
164 {
165 MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
166 MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
167 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
168 MPC85xx_PERFMON, MPC85xx_DUART,
Andy Flemingb37665e2005-10-28 17:46:27 -0700169 MPC85xx_MDIO,
Kumar Gala5b37b702005-06-21 17:15:18 -0700170 },
171 },
172 {
173 .ppc_sys_name = "8545E",
174 .mask = 0xFFFF00F0,
175 .value = 0x80390010,
Andy Flemingb37665e2005-10-28 17:46:27 -0700176 .num_devices = 12,
Kumar Gala5b37b702005-06-21 17:15:18 -0700177 .device_list = (enum ppc_sys_devices[])
178 {
179 MPC85xx_eTSEC1, MPC85xx_eTSEC2,
180 MPC85xx_IIC1, MPC85xx_IIC2,
181 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
182 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
Andy Flemingb37665e2005-10-28 17:46:27 -0700183 MPC85xx_MDIO,
Kumar Gala5b37b702005-06-21 17:15:18 -0700184 },
185 },
186 {
187 .ppc_sys_name = "8545",
188 .mask = 0xFFFF00F0,
189 .value = 0x80310010,
Kumar Gala5b37b702005-06-21 17:15:18 -0700190 .num_devices = 11,
191 .device_list = (enum ppc_sys_devices[])
192 {
193 MPC85xx_eTSEC1, MPC85xx_eTSEC2,
194 MPC85xx_IIC1, MPC85xx_IIC2,
195 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
Andy Flemingb37665e2005-10-28 17:46:27 -0700196 MPC85xx_PERFMON, MPC85xx_DUART,
197 MPC85xx_MDIO,
198 },
199 },
200 {
201 .ppc_sys_name = "8543E",
202 .mask = 0xFFFF00F0,
203 .value = 0x803A0010,
204 .num_devices = 12,
205 .device_list = (enum ppc_sys_devices[])
206 {
207 MPC85xx_eTSEC1, MPC85xx_eTSEC2,
208 MPC85xx_IIC1, MPC85xx_IIC2,
209 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
Kumar Gala5b37b702005-06-21 17:15:18 -0700210 MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
Andy Flemingb37665e2005-10-28 17:46:27 -0700211 MPC85xx_MDIO,
Kumar Gala5b37b702005-06-21 17:15:18 -0700212 },
213 },
214 {
215 .ppc_sys_name = "8543",
216 .mask = 0xFFFF00F0,
217 .value = 0x80320010,
Andy Flemingb37665e2005-10-28 17:46:27 -0700218 .num_devices = 11,
Kumar Gala5b37b702005-06-21 17:15:18 -0700219 .device_list = (enum ppc_sys_devices[])
220 {
221 MPC85xx_eTSEC1, MPC85xx_eTSEC2,
222 MPC85xx_IIC1, MPC85xx_IIC2,
223 MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
224 MPC85xx_PERFMON, MPC85xx_DUART,
Andy Flemingb37665e2005-10-28 17:46:27 -0700225 MPC85xx_MDIO,
Kumar Gala5b37b702005-06-21 17:15:18 -0700226 },
227 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700228 { /* default match */
229 .ppc_sys_name = "",
230 .mask = 0x00000000,
231 .value = 0x00000000,
232 },
233};