]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/blob - arch/arm/mach-omap2/board-generic.c
ARM: zynq: add clk binding support to the ttc
[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 #endif
101
102 #ifdef CONFIG_SOC_AM33XX
103 static const char *am33xx_boards_compat[] __initdata = {
104         "ti,am33xx",
105         NULL,
106 };
107
108 DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
109         .reserve        = omap_reserve,
110         .map_io         = am33xx_map_io,
111         .init_early     = am33xx_init_early,
112         .init_irq       = omap_intc_of_init,
113         .handle_irq     = omap3_intc_handle_irq,
114         .init_machine   = omap_generic_init,
115         .timer          = &omap3_am33xx_timer,
116         .dt_compat      = am33xx_boards_compat,
117 MACHINE_END
118 #endif
119
120 #ifdef CONFIG_ARCH_OMAP4
121 static const char *omap4_boards_compat[] __initdata = {
122         "ti,omap4",
123         NULL,
124 };
125
126 DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
127         .reserve        = omap_reserve,
128         .smp            = smp_ops(omap4_smp_ops),
129         .map_io         = omap4_map_io,
130         .init_early     = omap4430_init_early,
131         .init_irq       = omap_gic_of_init,
132         .handle_irq     = gic_handle_irq,
133         .init_machine   = omap_generic_init,
134         .init_late      = omap4430_init_late,
135         .timer          = &omap4_timer,
136         .dt_compat      = omap4_boards_compat,
137         .restart        = omap_prcm_restart,
138 MACHINE_END
139 #endif
140
141 #ifdef CONFIG_SOC_OMAP5
142 static const char *omap5_boards_compat[] __initdata = {
143         "ti,omap5",
144         NULL,
145 };
146
147 DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
148         .reserve        = omap_reserve,
149         .smp            = smp_ops(omap4_smp_ops),
150         .map_io         = omap5_map_io,
151         .init_early     = omap5_init_early,
152         .init_irq       = omap_gic_of_init,
153         .handle_irq     = gic_handle_irq,
154         .init_machine   = omap_generic_init,
155         .timer          = &omap5_timer,
156         .dt_compat      = omap5_boards_compat,
157         .restart        = omap_prcm_restart,
158 MACHINE_END
159 #endif