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