]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - arch/arm/mach-omap2/board-generic.c
ARM: SoC: convert VExpress/RealView to SMP operations
[mirror_ubuntu-hirsute-kernel.git] / arch / arm / mach-omap2 / board-generic.c
CommitLineData
1dbae815 1/*
1dbae815
TL
2 * Copyright (C) 2005 Nokia Corporation
3 * Author: Paul Mundt <paul.mundt@nokia.com>
4 *
8d61649d 5 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
1dbae815 6 *
8d61649d
BC
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.
1dbae815
TL
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 */
8d61649d 14#include <linux/io.h>
fbf75da7 15#include <linux/of_irq.h>
8d61649d
BC
16#include <linux/of_platform.h>
17#include <linux/irqdomain.h>
1dbae815 18
a09e64fb 19#include <mach/hardware.h>
b755706c 20#include <asm/hardware/gic.h>
1dbae815 21#include <asm/mach/arch.h>
1dbae815 22
ce491cf8 23#include <plat/board.h>
4e65331c 24#include "common.h"
a7cbb9b1 25#include "common-board-devices.h"
8d61649d 26
75a57fe9 27#if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
c4082d49 28#define intc_of_init NULL
75a57fe9
TL
29#endif
30#ifndef CONFIG_ARCH_OMAP4
31#define gic_of_init NULL
32#endif
33
8d61649d
BC
34static struct of_device_id omap_dt_match_table[] __initdata = {
35 { .compatible = "simple-bus", },
36 { .compatible = "ti,omap-infra", },
37 { }
b3c6df3a
PW
38};
39
1dbae815
TL
40static void __init omap_generic_init(void)
41{
a4ca9dbe 42 omap_sdrc_init(NULL, NULL);
1dbae815 43
8d61649d 44 of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
1dbae815
TL
45}
46
0e02a8c1 47#ifdef CONFIG_SOC_OMAP2420
8d61649d
BC
48static const char *omap242x_boards_compat[] __initdata = {
49 "ti,omap2420",
50 NULL,
51};
52
53DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
54 .reserve = omap_reserve,
55 .map_io = omap242x_map_io,
56 .init_early = omap2420_init_early,
c4082d49 57 .init_irq = omap_intc_of_init,
b755706c 58 .handle_irq = omap2_intc_handle_irq,
8d61649d
BC
59 .init_machine = omap_generic_init,
60 .timer = &omap2_timer,
61 .dt_compat = omap242x_boards_compat,
baa95883 62 .restart = omap_prcm_restart,
8d61649d
BC
63MACHINE_END
64#endif
65
0e02a8c1 66#ifdef CONFIG_SOC_OMAP2430
8d61649d
BC
67static const char *omap243x_boards_compat[] __initdata = {
68 "ti,omap2430",
69 NULL,
70};
71
72DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
71ee7dad 73 .reserve = omap_reserve,
8d61649d
BC
74 .map_io = omap243x_map_io,
75 .init_early = omap2430_init_early,
c4082d49 76 .init_irq = omap_intc_of_init,
6b2f55d7 77 .handle_irq = omap2_intc_handle_irq,
1dbae815 78 .init_machine = omap_generic_init,
13340b2a 79 .timer = &omap2_timer,
8d61649d 80 .dt_compat = omap243x_boards_compat,
baa95883 81 .restart = omap_prcm_restart,
8d61649d
BC
82MACHINE_END
83#endif
84
0e02a8c1 85#ifdef CONFIG_ARCH_OMAP3
8d61649d
BC
86static const char *omap3_boards_compat[] __initdata = {
87 "ti,omap3",
88 NULL,
89};
90
91DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
92 .reserve = omap_reserve,
93 .map_io = omap3_map_io,
94 .init_early = omap3430_init_early,
c4082d49 95 .init_irq = omap_intc_of_init,
b755706c 96 .handle_irq = omap3_intc_handle_irq,
93651b85 97 .init_machine = omap_generic_init,
8d61649d
BC
98 .timer = &omap3_timer,
99 .dt_compat = omap3_boards_compat,
baa95883 100 .restart = omap_prcm_restart,
8d61649d
BC
101MACHINE_END
102#endif
103
08f30989
AM
104#ifdef CONFIG_SOC_AM33XX
105static const char *am33xx_boards_compat[] __initdata = {
106 "ti,am33xx",
107 NULL,
108};
109
110DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
111 .reserve = omap_reserve,
112 .map_io = am33xx_map_io,
113 .init_early = am33xx_init_early,
c4082d49 114 .init_irq = omap_intc_of_init,
08f30989
AM
115 .handle_irq = omap3_intc_handle_irq,
116 .init_machine = omap_generic_init,
117 .timer = &omap3_am33xx_timer,
118 .dt_compat = am33xx_boards_compat,
119MACHINE_END
120#endif
121
0e02a8c1 122#ifdef CONFIG_ARCH_OMAP4
8d61649d
BC
123static const char *omap4_boards_compat[] __initdata = {
124 "ti,omap4",
125 NULL,
126};
127
128DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
129 .reserve = omap_reserve,
130 .map_io = omap4_map_io,
131 .init_early = omap4430_init_early,
c4082d49 132 .init_irq = omap_gic_of_init,
b755706c 133 .handle_irq = gic_handle_irq,
93651b85 134 .init_machine = omap_generic_init,
bbd707ac 135 .init_late = omap4430_init_late,
8d61649d
BC
136 .timer = &omap4_timer,
137 .dt_compat = omap4_boards_compat,
baa95883 138 .restart = omap_prcm_restart,
1dbae815 139MACHINE_END
8d61649d 140#endif
0c1b6fac
S
141
142#ifdef CONFIG_SOC_OMAP5
143static const char *omap5_boards_compat[] __initdata = {
144 "ti,omap5",
145 NULL,
146};
147
148DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
149 .reserve = omap_reserve,
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,
158MACHINE_END
159#endif