Commit | Line | Data |
---|---|---|
02c981c0 | 1 | /* |
013dd12f | 2 | * Defines machines for CSR SiRFprimaII |
02c981c0 BD |
3 | * |
4 | * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company. | |
5 | * | |
6 | * Licensed under GPLv2 or later. | |
7 | */ | |
8 | ||
9 | #include <linux/init.h> | |
10 | #include <linux/kernel.h> | |
ef4acb75 | 11 | #include <linux/irqchip.h> |
1bdfd27a | 12 | #include <asm/sizes.h> |
02c981c0 BD |
13 | #include <asm/mach-types.h> |
14 | #include <asm/mach/arch.h> | |
15 | #include <linux/of.h> | |
16 | #include <linux/of_platform.h> | |
17 | #include "common.h" | |
18 | ||
19 | static struct of_device_id sirfsoc_of_bus_ids[] __initdata = { | |
20 | { .compatible = "simple-bus", }, | |
21 | {}, | |
22 | }; | |
23 | ||
24 | void __init sirfsoc_mach_init(void) | |
25 | { | |
26 | of_platform_bus_probe(NULL, sirfsoc_of_bus_ids, NULL); | |
27 | } | |
28 | ||
a4b4674e SG |
29 | void __init sirfsoc_init_late(void) |
30 | { | |
31 | sirfsoc_pm_init(); | |
32 | } | |
33 | ||
4898de3d BS |
34 | static __init void sirfsoc_map_io(void) |
35 | { | |
36 | sirfsoc_map_lluart(); | |
37 | sirfsoc_map_scu(); | |
38 | } | |
39 | ||
d0ec63f8 BS |
40 | #ifdef CONFIG_ARCH_PRIMA2 |
41 | static const char *prima2_dt_match[] __initdata = { | |
42 | "sirf,prima2", | |
02c981c0 BD |
43 | NULL |
44 | }; | |
45 | ||
d0ec63f8 | 46 | DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") |
02c981c0 | 47 | /* Maintainer: Barry Song <baohua.song@csr.com> */ |
4898de3d | 48 | .map_io = sirfsoc_map_io, |
02c981c0 | 49 | .init_irq = sirfsoc_of_irq_init, |
0d5983a6 | 50 | .init_time = sirfsoc_prima2_timer_init, |
f2a94192 BS |
51 | #ifdef CONFIG_MULTI_IRQ_HANDLER |
52 | .handle_irq = sirfsoc_handle_irq, | |
53 | #endif | |
98b0124f | 54 | .dma_zone_size = SZ_256M, |
02c981c0 | 55 | .init_machine = sirfsoc_mach_init, |
a4b4674e | 56 | .init_late = sirfsoc_init_late, |
d0ec63f8 | 57 | .dt_compat = prima2_dt_match, |
125c4033 | 58 | .restart = sirfsoc_restart, |
02c981c0 | 59 | MACHINE_END |
d0ec63f8 | 60 | #endif |
4898de3d BS |
61 | |
62 | #ifdef CONFIG_ARCH_MARCO | |
4898de3d BS |
63 | static const char *marco_dt_match[] __initdata = { |
64 | "sirf,marco", | |
65 | NULL | |
66 | }; | |
67 | ||
68 | DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)") | |
69 | /* Maintainer: Barry Song <baohua.song@csr.com> */ | |
70 | .smp = smp_ops(sirfsoc_smp_ops), | |
71 | .map_io = sirfsoc_map_io, | |
ef4acb75 | 72 | .init_irq = irqchip_init, |
4898de3d | 73 | .init_time = sirfsoc_marco_timer_init, |
4898de3d BS |
74 | .init_machine = sirfsoc_mach_init, |
75 | .init_late = sirfsoc_init_late, | |
76 | .dt_compat = marco_dt_match, | |
77 | .restart = sirfsoc_restart, | |
78 | MACHINE_END | |
79 | #endif |