1/*
2 * PQ2 System descriptions
3 *
4 * Maintainer: Kumar Gala <galak@kernel.crashing.org>
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11#include <linux/init.h>
12#include <linux/module.h>
13#include <linux/device.h>
14
15#include <asm/ppc_sys.h>
16
17struct ppc_sys_spec *cur_ppc_sys_spec;
18struct ppc_sys_spec ppc_sys_specs[] = {
19	/* below is a list of the 8260 family of processors */
20	{
21		.ppc_sys_name	= "8250",
22		.mask		= 0x0000ff00,
23		.value		= 0x00000000,
24		.num_devices	= 12,
25		.device_list = (enum ppc_sys_devices[])
26		{
27			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
28			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
29			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1,
30			MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
31		}
32	},
33	{
34		.ppc_sys_name	= "8255",
35		.mask		= 0x0000ff00,
36		.value		= 0x00000000,
37		.num_devices	= 11,
38		.device_list = (enum ppc_sys_devices[])
39		{
40			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
41			MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4,
42			MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2,
43			MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
44		}
45	},
46	{
47		.ppc_sys_name	= "8260",
48		.mask		= 0x0000ff00,
49		.value		= 0x00000000,
50		.num_devices	= 13,
51		.device_list = (enum ppc_sys_devices[])
52		{
53			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
54			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
55			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
56			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
57			MPC82xx_CPM_I2C,
58		}
59	},
60	{
61		.ppc_sys_name	= "8264",
62		.mask		= 0x0000ff00,
63		.value		= 0x00000000,
64		.num_devices	= 13,
65		.device_list = (enum ppc_sys_devices[])
66		{
67			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
68			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
69			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
70			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
71			MPC82xx_CPM_I2C,
72		}
73	},
74	{
75		.ppc_sys_name	= "8265",
76		.mask		= 0x0000ff00,
77		.value		= 0x00000000,
78		.num_devices	= 13,
79		.device_list = (enum ppc_sys_devices[])
80		{
81			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
82			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
83			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
84			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
85			MPC82xx_CPM_I2C,
86		}
87	},
88	{
89		.ppc_sys_name	= "8266",
90		.mask		= 0x0000ff00,
91		.value		= 0x00000000,
92		.num_devices	= 13,
93		.device_list = (enum ppc_sys_devices[])
94		{
95			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
96			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
97			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
98			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
99			MPC82xx_CPM_I2C,
100		}
101	},
102	/* below is a list of the 8272 family of processors */
103	{
104		.ppc_sys_name	= "8247",
105		.mask		= 0x0000ff00,
106		.value		= 0x00000d00,
107		.num_devices	= 10,
108		.device_list = (enum ppc_sys_devices[])
109		{
110			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
111			MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SMC1,
112			MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
113			MPC82xx_CPM_USB,
114		},
115	},
116	{
117		.ppc_sys_name	= "8248",
118		.mask		= 0x0000ff00,
119		.value		= 0x00000c00,
120		.num_devices	= 12,
121		.device_list = (enum ppc_sys_devices[])
122		{
123			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
124			MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4,
125			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
126			MPC82xx_CPM_I2C, MPC82xx_CPM_USB, MPC82xx_SEC1,
127		},
128	},
129	{
130		.ppc_sys_name	= "8271",
131		.mask		= 0x0000ff00,
132		.value		= 0x00000d00,
133		.num_devices	= 10,
134		.device_list = (enum ppc_sys_devices[])
135		{
136			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
137			MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SMC1,
138			MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
139			MPC82xx_CPM_USB,
140		},
141	},
142	{
143		.ppc_sys_name	= "8272",
144		.mask		= 0x0000ff00,
145		.value		= 0x00000c00,
146		.num_devices	= 13,
147		.device_list = (enum ppc_sys_devices[])
148		{
149			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
150			MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4,
151			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
152			MPC82xx_CPM_I2C, MPC82xx_CPM_USB, MPC82xx_SEC1,
153			MPC82xx_MDIO_BB,
154		},
155	},
156	/* below is a list of the 8280 family of processors */
157	{
158		.ppc_sys_name	= "8270",
159		.mask 		= 0x0000ff00,
160		.value 		= 0x00000a00,
161		.num_devices 	= 12,
162		.device_list = (enum ppc_sys_devices[])
163		{
164			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
165			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
166			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1,
167			MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
168		},
169	},
170	{
171		.ppc_sys_name	= "8275",
172		.mask 		= 0x0000ff00,
173		.value 		= 0x00000a00,
174		.num_devices 	= 12,
175		.device_list = (enum ppc_sys_devices[])
176		{
177			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
178			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
179			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1,
180			MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C,
181		},
182	},
183	{
184		.ppc_sys_name	= "8280",
185		.mask 		= 0x0000ff00,
186		.value 		= 0x00000a00,
187		.num_devices 	= 13,
188		.device_list = (enum ppc_sys_devices[])
189		{
190			MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3,
191			MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3,
192			MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2,
193			MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
194			MPC82xx_CPM_I2C,
195		},
196	},
197	{
198		/* default match */
199		.ppc_sys_name	= "",
200		.mask 		= 0x00000000,
201		.value 		= 0x00000000,
202	},
203};
204