]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/blob - arch/arm/mach-omap2/board-generic.c
Merge tag 'omap-for-v3.8/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel...
[can-eth-gw-linux.git] / arch / arm / mach-omap2 / board-generic.c
1 /*
2  * Copyright (C) 2005 Nokia Corporation
3  * Author: Paul Mundt <paul.mundt@nokia.com>
4  *
5  * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
6  *
7  * Modified from the original mach-omap/omap2/board-generic.c did by Paul
8  * to support the OMAP2+ device tree boards with an unique board file.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2 as
12  * published by the Free Software Foundation.
13  */
14 #include <linux/io.h>
15 #include <linux/of_irq.h>
16 #include <linux/of_platform.h>
17 #include <linux/irqdomain.h>
18
19 #include <asm/hardware/gic.h>
20 #include <asm/mach/arch.h>
21
22 #include "common.h"
23 #include "common-board-devices.h"
24
25 #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
26 #define intc_of_init    NULL
27 #endif
28 #ifndef CONFIG_ARCH_OMAP4
29 #define gic_of_init             NULL
30 #endif
31
32 static struct of_device_id omap_dt_match_table[] __initdata = {
33         { .compatible = "simple-bus", },
34         { .compatible = "ti,omap-infra", },
35         { }
36 };
37
38 static void __init omap_generic_init(void)
39 {
40         omap_sdrc_init(NULL, NULL);
41
42         of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
43 }
44
45 #ifdef CONFIG_SOC_OMAP2420
46 static const char *omap242x_boards_compat[] __initdata = {
47         "ti,omap2420",
48         NULL,
49 };
50
51 DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
52         .reserve        = omap_reserve,
53         .map_io         = omap242x_map_io,
54         .init_early     = omap2420_init_early,
55         .init_irq       = omap_intc_of_init,
56         .handle_irq     = omap2_intc_handle_irq,
57         .init_machine   = omap_generic_init,
58         .timer          = &omap2_timer,
59         .dt_compat      = omap242x_boards_compat,
60         .restart        = omap_prcm_restart,
61 MACHINE_END
62 #endif
63
64 #ifdef CONFIG_SOC_OMAP2430
65 static const char *omap243x_boards_compat[] __initdata = {
66         "ti,omap2430",
67         NULL,
68 };
69
70 DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
71         .reserve        = omap_reserve,
72         .map_io         = omap243x_map_io,
73         .init_early     = omap2430_init_early,
74         .init_irq       = omap_intc_of_init,
75         .handle_irq     = omap2_intc_handle_irq,
76         .init_machine   = omap_generic_init,
77         .timer          = &omap2_timer,
78         .dt_compat      = omap243x_boards_compat,
79         .restart        = omap_prcm_restart,
80 MACHINE_END
81 #endif
82
83 #ifdef CONFIG_ARCH_OMAP3
84 static const char *omap3_boards_compat[] __initdata = {
85         "ti,omap3",
86         NULL,
87 };
88
89 DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
90         .reserve        = omap_reserve,
91         .map_io         = omap3_map_io,
92         .init_early     = omap3430_init_early,
93         .init_irq       = omap_intc_of_init,
94         .handle_irq     = omap3_intc_handle_irq,
95         .init_machine   = omap_generic_init,
96         .timer          = &omap3_timer,
97         .dt_compat      = omap3_boards_compat,
98         .restart        = omap_prcm_restart,
99 MACHINE_END
100
101 static const char *omap3_gp_boards_compat[] __initdata = {
102         "ti,omap3-beagle",
103         NULL,
104 };
105
106 DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
107         .reserve        = omap_reserve,
108         .map_io         = omap3_map_io,
109         .init_early     = omap3430_init_early,
110         .init_irq       = omap_intc_of_init,
111         .handle_irq     = omap3_intc_handle_irq,
112         .init_machine   = omap_generic_init,
113         .timer          = &omap3_secure_timer,
114         .dt_compat      = omap3_gp_boards_compat,
115         .restart        = omap_prcm_restart,
116 MACHINE_END
117 #endif
118
119 #ifdef CONFIG_SOC_AM33XX
120 static const char *am33xx_boards_compat[] __initdata = {
121         "ti,am33xx",
122         NULL,
123 };
124
125 DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
126         .reserve        = omap_reserve,
127         .map_io         = am33xx_map_io,
128         .init_early     = am33xx_init_early,
129         .init_irq       = omap_intc_of_init,
130         .handle_irq     = omap3_intc_handle_irq,
131         .init_machine   = omap_generic_init,
132         .timer          = &omap3_am33xx_timer,
133         .dt_compat      = am33xx_boards_compat,
134 MACHINE_END
135 #endif
136
137 #ifdef CONFIG_ARCH_OMAP4
138 static const char *omap4_boards_compat[] __initdata = {
139         "ti,omap4",
140         NULL,
141 };
142
143 DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
144         .reserve        = omap_reserve,
145         .smp            = smp_ops(omap4_smp_ops),
146         .map_io         = omap4_map_io,
147         .init_early     = omap4430_init_early,
148         .init_irq       = omap_gic_of_init,
149         .handle_irq     = gic_handle_irq,
150         .init_machine   = omap_generic_init,
151         .init_late      = omap4430_init_late,
152         .timer          = &omap4_timer,
153         .dt_compat      = omap4_boards_compat,
154         .restart        = omap_prcm_restart,
155 MACHINE_END
156 #endif
157
158 #ifdef CONFIG_SOC_OMAP5
159 static const char *omap5_boards_compat[] __initdata = {
160         "ti,omap5",
161         NULL,
162 };
163
164 DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
165         .reserve        = omap_reserve,
166         .smp            = smp_ops(omap4_smp_ops),
167         .map_io         = omap5_map_io,
168         .init_early     = omap5_init_early,
169         .init_irq       = omap_gic_of_init,
170         .handle_irq     = gic_handle_irq,
171         .init_machine   = omap_generic_init,
172         .timer          = &omap5_timer,
173         .dt_compat      = omap5_boards_compat,
174         .restart        = omap_prcm_restart,
175 MACHINE_END
176 #endif