]>
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 | ||
27966ffe | 9 | #include <linux/clk-provider.h> |
275786b7 | 10 | #include <linux/clocksource.h> |
02c981c0 BD |
11 | #include <linux/init.h> |
12 | #include <linux/kernel.h> | |
1bdfd27a | 13 | #include <asm/sizes.h> |
02c981c0 BD |
14 | #include <asm/mach-types.h> |
15 | #include <asm/mach/arch.h> | |
16 | #include <linux/of.h> | |
17 | #include <linux/of_platform.h> | |
18 | #include "common.h" | |
19 | ||
a4b4674e SG |
20 | void __init sirfsoc_init_late(void) |
21 | { | |
22 | sirfsoc_pm_init(); | |
23 | } | |
24 | ||
275786b7 AB |
25 | static __init void sirfsoc_init_time(void) |
26 | { | |
27966ffe | 27 | of_clk_init(NULL); |
275786b7 AB |
28 | clocksource_of_init(); |
29 | } | |
30 | ||
4898de3d BS |
31 | static __init void sirfsoc_map_io(void) |
32 | { | |
33 | sirfsoc_map_lluart(); | |
34 | sirfsoc_map_scu(); | |
35 | } | |
36 | ||
d4fe49e5 BS |
37 | #ifdef CONFIG_ARCH_ATLAS6 |
38 | static const char *atlas6_dt_match[] __initdata = { | |
39 | "sirf,atlas6", | |
40 | NULL | |
41 | }; | |
42 | ||
43 | DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)") | |
44 | /* Maintainer: Barry Song <baohua.song@csr.com> */ | |
45 | .map_io = sirfsoc_map_io, | |
275786b7 | 46 | .init_time = sirfsoc_init_time, |
d4fe49e5 BS |
47 | .init_late = sirfsoc_init_late, |
48 | .dt_compat = atlas6_dt_match, | |
49 | .restart = sirfsoc_restart, | |
50 | MACHINE_END | |
51 | #endif | |
52 | ||
d0ec63f8 BS |
53 | #ifdef CONFIG_ARCH_PRIMA2 |
54 | static const char *prima2_dt_match[] __initdata = { | |
5a0ec569 BS |
55 | "sirf,prima2", |
56 | NULL | |
02c981c0 BD |
57 | }; |
58 | ||
d0ec63f8 | 59 | DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") |
02c981c0 | 60 | /* Maintainer: Barry Song <baohua.song@csr.com> */ |
4898de3d | 61 | .map_io = sirfsoc_map_io, |
275786b7 | 62 | .init_time = sirfsoc_init_time, |
98b0124f | 63 | .dma_zone_size = SZ_256M, |
a4b4674e | 64 | .init_late = sirfsoc_init_late, |
d0ec63f8 | 65 | .dt_compat = prima2_dt_match, |
125c4033 | 66 | .restart = sirfsoc_restart, |
02c981c0 | 67 | MACHINE_END |
d0ec63f8 | 68 | #endif |
4898de3d BS |
69 | |
70 | #ifdef CONFIG_ARCH_MARCO | |
4898de3d BS |
71 | static const char *marco_dt_match[] __initdata = { |
72 | "sirf,marco", | |
73 | NULL | |
74 | }; | |
75 | ||
76 | DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)") | |
77 | /* Maintainer: Barry Song <baohua.song@csr.com> */ | |
78 | .smp = smp_ops(sirfsoc_smp_ops), | |
79 | .map_io = sirfsoc_map_io, | |
275786b7 | 80 | .init_time = sirfsoc_init_time, |
4898de3d BS |
81 | .init_late = sirfsoc_init_late, |
82 | .dt_compat = marco_dt_match, | |
83 | .restart = sirfsoc_restart, | |
84 | MACHINE_END | |
85 | #endif |