1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#include <linux/kernel.h>
17#include <linux/io.h>
18#include <linux/of_platform.h>
19
20#include <asm/machdep.h>
21#include <asm/ipic.h>
22#include <asm/prom.h>
23#include <asm/time.h>
24
25#include <sysdev/fsl_pci.h>
26
27#include "mpc512x.h"
28#include "mpc5121_ads.h"
29
30static void __init mpc5121_ads_setup_arch(void)
31{
32#ifdef CONFIG_PCI
33 struct device_node *np;
34#endif
35 printk(KERN_INFO "MPC5121 ADS board from Freescale Semiconductor\n");
36
37
38
39 mpc5121_ads_cpld_map();
40
41#ifdef CONFIG_PCI
42 for_each_compatible_node(np, "pci", "fsl,mpc5121-pci")
43 mpc83xx_add_bridge(np);
44#endif
45
46 mpc512x_setup_arch();
47}
48
49static void __init mpc5121_ads_init_IRQ(void)
50{
51 mpc512x_init_IRQ();
52 mpc5121_ads_cpld_pic_init();
53}
54
55
56
57
58static int __init mpc5121_ads_probe(void)
59{
60 if (!of_machine_is_compatible("fsl,mpc5121ads"))
61 return 0;
62
63 mpc512x_init_early();
64
65 return 1;
66}
67
68define_machine(mpc5121_ads) {
69 .name = "MPC5121 ADS",
70 .probe = mpc5121_ads_probe,
71 .setup_arch = mpc5121_ads_setup_arch,
72 .init = mpc512x_init,
73 .init_IRQ = mpc5121_ads_init_IRQ,
74 .get_irq = ipic_get_irq,
75 .calibrate_decr = generic_calibrate_decr,
76 .restart = mpc512x_restart,
77};
78