Linux Audio

Check our new training course

Loading...
v3.5.6
  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 <mach/hardware.h>
 20#include <asm/hardware/gic.h>
 21#include <asm/mach/arch.h>
 22
 23#include <plat/board.h>
 24#include "common.h"
 25#include "common-board-devices.h"
 26
 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
 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
 45static struct of_device_id omap_dt_match_table[] __initdata = {
 46	{ .compatible = "simple-bus", },
 47	{ .compatible = "ti,omap-infra", },
 48	{ }
 49};
 50
 51static void __init omap_generic_init(void)
 52{
 53	omap_sdrc_init(NULL, NULL);
 
 
 54
 55	of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
 56}
 57
 58#ifdef CONFIG_SOC_OMAP2420
 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,
 68	.init_irq	= omap_init_irq,
 69	.handle_irq	= omap2_intc_handle_irq,
 70	.init_machine	= omap_generic_init,
 71	.timer		= &omap2_timer,
 72	.dt_compat	= omap242x_boards_compat,
 73	.restart	= omap_prcm_restart,
 74MACHINE_END
 75#endif
 76
 77#ifdef CONFIG_SOC_OMAP2430
 78static const char *omap243x_boards_compat[] __initdata = {
 79	"ti,omap2430",
 80	NULL,
 81};
 82
 83DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
 84	.reserve	= omap_reserve,
 85	.map_io		= omap243x_map_io,
 86	.init_early	= omap2430_init_early,
 87	.init_irq	= omap_init_irq,
 88	.handle_irq	= omap2_intc_handle_irq,
 89	.init_machine	= omap_generic_init,
 90	.timer		= &omap2_timer,
 91	.dt_compat	= omap243x_boards_compat,
 92	.restart	= omap_prcm_restart,
 93MACHINE_END
 94#endif
 95
 96#ifdef CONFIG_ARCH_OMAP3
 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,
106	.init_irq	= omap_init_irq,
107	.handle_irq	= omap3_intc_handle_irq,
108	.init_machine	= omap_generic_init,
109	.timer		= &omap3_timer,
 
110	.dt_compat	= omap3_boards_compat,
111	.restart	= omap_prcm_restart,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112MACHINE_END
113#endif
114
115#ifdef CONFIG_ARCH_OMAP4
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,
125	.init_irq	= omap_init_irq,
126	.handle_irq	= gic_handle_irq,
127	.init_machine	= omap_generic_init,
128	.init_late	= omap4430_init_late,
129	.timer		= &omap4_timer,
130	.dt_compat	= omap4_boards_compat,
131	.restart	= omap_prcm_restart,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132MACHINE_END
133#endif
v3.15
  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/mach/arch.h>
 20
 
 21#include "common.h"
 
 22
 23#if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
 24#define intc_of_init	NULL
 25#endif
 26#ifndef CONFIG_ARCH_OMAP4
 27#define gic_of_init		NULL
 28#endif
 29
 
 
 
 
 
 
 
 
 
 
 
 30static struct of_device_id omap_dt_match_table[] __initdata = {
 31	{ .compatible = "simple-bus", },
 32	{ .compatible = "ti,omap-infra", },
 33	{ }
 34};
 35
 36static void __init omap_generic_init(void)
 37{
 38	omapdss_early_init_of();
 39
 40	pdata_quirks_init(omap_dt_match_table);
 41
 42	omapdss_init_of();
 43}
 44
 45#ifdef CONFIG_SOC_OMAP2420
 46static const char *omap242x_boards_compat[] __initdata = {
 47	"ti,omap2420",
 48	NULL,
 49};
 50
 51DT_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	.init_time	= omap2_sync32k_timer_init,
 59	.dt_compat	= omap242x_boards_compat,
 60	.restart	= omap2xxx_restart,
 61MACHINE_END
 62#endif
 63
 64#ifdef CONFIG_SOC_OMAP2430
 65static const char *omap243x_boards_compat[] __initdata = {
 66	"ti,omap2430",
 67	NULL,
 68};
 69
 70DT_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	.init_time	= omap2_sync32k_timer_init,
 78	.dt_compat	= omap243x_boards_compat,
 79	.restart	= omap2xxx_restart,
 80MACHINE_END
 81#endif
 82
 83#ifdef CONFIG_ARCH_OMAP3
 84static const char *omap3_boards_compat[] __initdata = {
 85	"ti,omap3430",
 86	"ti,omap3",
 87	NULL,
 88};
 89
 90DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
 91	.reserve	= omap_reserve,
 92	.map_io		= omap3_map_io,
 93	.init_early	= omap3430_init_early,
 94	.init_irq	= omap_intc_of_init,
 95	.handle_irq	= omap3_intc_handle_irq,
 96	.init_machine	= omap_generic_init,
 97	.init_late	= omap3_init_late,
 98	.init_time	= omap3_sync32k_timer_init,
 99	.dt_compat	= omap3_boards_compat,
100	.restart	= omap3xxx_restart,
101MACHINE_END
102
103static const char *omap36xx_boards_compat[] __initdata = {
104	"ti,omap36xx",
105	NULL,
106};
107
108DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
109	.reserve	= omap_reserve,
110	.map_io		= omap3_map_io,
111	.init_early	= omap3630_init_early,
112	.init_irq	= omap_intc_of_init,
113	.handle_irq	= omap3_intc_handle_irq,
114	.init_machine	= omap_generic_init,
115	.init_late	= omap3_init_late,
116	.init_time	= omap3_sync32k_timer_init,
117	.dt_compat	= omap36xx_boards_compat,
118	.restart	= omap3xxx_restart,
119MACHINE_END
120
121static const char *omap3_gp_boards_compat[] __initdata = {
122	"ti,omap3-beagle",
123	"timll,omap3-devkit8000",
124	NULL,
125};
126
127DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
128	.reserve	= omap_reserve,
129	.map_io		= omap3_map_io,
130	.init_early	= omap3430_init_early,
131	.init_irq	= omap_intc_of_init,
132	.handle_irq	= omap3_intc_handle_irq,
133	.init_machine	= omap_generic_init,
134	.init_late	= omap3_init_late,
135	.init_time	= omap3_secure_sync32k_timer_init,
136	.dt_compat	= omap3_gp_boards_compat,
137	.restart	= omap3xxx_restart,
138MACHINE_END
139
140static const char *am3517_boards_compat[] __initdata = {
141	"ti,am3517",
142	NULL,
143};
144
145DT_MACHINE_START(AM3517_DT, "Generic AM3517 (Flattened Device Tree)")
146	.reserve	= omap_reserve,
147	.map_io		= omap3_map_io,
148	.init_early	= am35xx_init_early,
149	.init_irq	= omap_intc_of_init,
150	.handle_irq	= omap3_intc_handle_irq,
151	.init_machine	= omap_generic_init,
152	.init_late	= omap3_init_late,
153	.init_time	= omap3_gptimer_timer_init,
154	.dt_compat	= am3517_boards_compat,
155	.restart	= omap3xxx_restart,
156MACHINE_END
157#endif
158
159#ifdef CONFIG_SOC_AM33XX
160static const char *am33xx_boards_compat[] __initdata = {
161	"ti,am33xx",
162	NULL,
163};
164
165DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
166	.reserve	= omap_reserve,
167	.map_io		= am33xx_map_io,
168	.init_early	= am33xx_init_early,
169	.init_irq	= omap_intc_of_init,
170	.handle_irq	= omap3_intc_handle_irq,
171	.init_machine	= omap_generic_init,
172	.init_late	= am33xx_init_late,
173	.init_time	= omap3_gptimer_timer_init,
174	.dt_compat	= am33xx_boards_compat,
175	.restart	= am33xx_restart,
176MACHINE_END
177#endif
178
179#ifdef CONFIG_ARCH_OMAP4
180static const char *omap4_boards_compat[] __initdata = {
181	"ti,omap4460",
182	"ti,omap4430",
183	"ti,omap4",
184	NULL,
185};
186
187DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
188	.reserve	= omap_reserve,
189	.smp		= smp_ops(omap4_smp_ops),
190	.map_io		= omap4_map_io,
191	.init_early	= omap4430_init_early,
192	.init_irq	= omap_gic_of_init,
 
193	.init_machine	= omap_generic_init,
194	.init_late	= omap4430_init_late,
195	.init_time	= omap4_local_timer_init,
196	.dt_compat	= omap4_boards_compat,
197	.restart	= omap44xx_restart,
198MACHINE_END
199#endif
200
201#ifdef CONFIG_SOC_OMAP5
202static const char *omap5_boards_compat[] __initdata = {
203	"ti,omap5432",
204	"ti,omap5430",
205	"ti,omap5",
206	NULL,
207};
208
209DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
210	.reserve	= omap_reserve,
211	.smp		= smp_ops(omap4_smp_ops),
212	.map_io		= omap5_map_io,
213	.init_early	= omap5_init_early,
214	.init_irq	= omap_gic_of_init,
215	.init_machine	= omap_generic_init,
216	.init_late	= omap5_init_late,
217	.init_time	= omap5_realtime_timer_init,
218	.dt_compat	= omap5_boards_compat,
219	.restart	= omap44xx_restart,
220MACHINE_END
221#endif
222
223#ifdef CONFIG_SOC_AM43XX
224static const char *am43_boards_compat[] __initdata = {
225	"ti,am4372",
226	"ti,am43",
227	NULL,
228};
229
230DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)")
231	.map_io		= am33xx_map_io,
232	.init_early	= am43xx_init_early,
233	.init_late	= am43xx_init_late,
234	.init_irq	= omap_gic_of_init,
235	.init_machine	= omap_generic_init,
236	.init_time	= omap3_gptimer_timer_init,
237	.dt_compat	= am43_boards_compat,
238	.restart	= omap44xx_restart,
239MACHINE_END
240#endif
241
242#ifdef CONFIG_SOC_DRA7XX
243static const char *dra7xx_boards_compat[] __initdata = {
244	"ti,dra7xx",
245	"ti,dra7",
246	NULL,
247};
248
249DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
250	.reserve	= omap_reserve,
251	.smp		= smp_ops(omap4_smp_ops),
252	.map_io		= omap5_map_io,
253	.init_early	= dra7xx_init_early,
254	.init_late	= dra7xx_init_late,
255	.init_irq	= omap_gic_of_init,
256	.init_machine	= omap_generic_init,
257	.init_time	= omap5_realtime_timer_init,
258	.dt_compat	= dra7xx_boards_compat,
259	.restart	= omap44xx_restart,
260MACHINE_END
261#endif