ARM: OMAP2+: am33xx: Add low level debugging support
[deliverable/linux.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
TL
27#if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
28#define omap_intc_of_init NULL
29#endif
30#ifndef CONFIG_ARCH_OMAP4
31#define gic_of_init NULL
32#endif
33
fbf75da7
BC
34static struct of_device_id irq_match[] __initdata = {
35 { .compatible = "ti,omap2-intc", .data = omap_intc_of_init, },
36 { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
37 { }
38};
39
40static void __init omap_init_irq(void)
41{
42 of_irq_init(irq_match);
43}
44
8d61649d
BC
45static struct of_device_id omap_dt_match_table[] __initdata = {
46 { .compatible = "simple-bus", },
47 { .compatible = "ti,omap-infra", },
48 { }
b3c6df3a
PW
49};
50
1dbae815
TL
51static void __init omap_generic_init(void)
52{
a4ca9dbe 53 omap_sdrc_init(NULL, NULL);
1dbae815 54
8d61649d 55 of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
1dbae815
TL
56}
57
0e02a8c1 58#ifdef CONFIG_SOC_OMAP2420
8d61649d
BC
59static const char *omap242x_boards_compat[] __initdata = {
60 "ti,omap2420",
61 NULL,
62};
63
64DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
65 .reserve = omap_reserve,
66 .map_io = omap242x_map_io,
67 .init_early = omap2420_init_early,
fbf75da7 68 .init_irq = omap_init_irq,
b755706c 69 .handle_irq = omap2_intc_handle_irq,
8d61649d
BC
70 .init_machine = omap_generic_init,
71 .timer = &omap2_timer,
72 .dt_compat = omap242x_boards_compat,
baa95883 73 .restart = omap_prcm_restart,
8d61649d
BC
74MACHINE_END
75#endif
76
0e02a8c1 77#ifdef CONFIG_SOC_OMAP2430
8d61649d
BC
78static const char *omap243x_boards_compat[] __initdata = {
79 "ti,omap2430",
80 NULL,
81};
82
83DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
71ee7dad 84 .reserve = omap_reserve,
8d61649d
BC
85 .map_io = omap243x_map_io,
86 .init_early = omap2430_init_early,
fbf75da7 87 .init_irq = omap_init_irq,
6b2f55d7 88 .handle_irq = omap2_intc_handle_irq,
1dbae815 89 .init_machine = omap_generic_init,
13340b2a 90 .timer = &omap2_timer,
8d61649d 91 .dt_compat = omap243x_boards_compat,
baa95883 92 .restart = omap_prcm_restart,
8d61649d
BC
93MACHINE_END
94#endif
95
0e02a8c1 96#ifdef CONFIG_ARCH_OMAP3
8d61649d
BC
97static const char *omap3_boards_compat[] __initdata = {
98 "ti,omap3",
99 NULL,
100};
101
102DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
103 .reserve = omap_reserve,
104 .map_io = omap3_map_io,
105 .init_early = omap3430_init_early,
fbf75da7 106 .init_irq = omap_init_irq,
b755706c 107 .handle_irq = omap3_intc_handle_irq,
93651b85 108 .init_machine = omap_generic_init,
8d61649d
BC
109 .timer = &omap3_timer,
110 .dt_compat = omap3_boards_compat,
baa95883 111 .restart = omap_prcm_restart,
8d61649d
BC
112MACHINE_END
113#endif
114
0e02a8c1 115#ifdef CONFIG_ARCH_OMAP4
8d61649d
BC
116static const char *omap4_boards_compat[] __initdata = {
117 "ti,omap4",
118 NULL,
119};
120
121DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
122 .reserve = omap_reserve,
123 .map_io = omap4_map_io,
124 .init_early = omap4430_init_early,
fbf75da7 125 .init_irq = omap_init_irq,
b755706c 126 .handle_irq = gic_handle_irq,
93651b85 127 .init_machine = omap_generic_init,
bbd707ac 128 .init_late = omap4430_init_late,
8d61649d
BC
129 .timer = &omap4_timer,
130 .dt_compat = omap4_boards_compat,
baa95883 131 .restart = omap_prcm_restart,
1dbae815 132MACHINE_END
8d61649d 133#endif
This page took 0.493679 seconds and 5 git commands to generate.