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.1
 1/*
 2 * linux/arch/arm/mach-omap2/board-generic.c
 3 *
 4 * Copyright (C) 2005 Nokia Corporation
 5 * Author: Paul Mundt <paul.mundt@nokia.com>
 6 *
 7 * Modified from mach-omap/omap1/board-generic.c
 8 *
 9 * Code for generic OMAP2 board. Should work on many OMAP2 systems where
10 * the bootloader passes the board-specific data to the kernel.
11 * Do not put any board specific code to this file; create a new machine
12 * type if you need custom low-level initializations.
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
17 */
18
19#include <linux/kernel.h>
20#include <linux/init.h>
21#include <linux/device.h>
22
23#include <mach/hardware.h>
24#include <asm/mach-types.h>
25#include <asm/mach/arch.h>
26#include <asm/mach/map.h>
27
28#include <mach/gpio.h>
29#include <plat/usb.h>
30#include <plat/board.h>
31#include <plat/common.h>
 
32
33static struct omap_board_config_kernel generic_config[] = {
 
 
 
 
 
 
 
 
 
 
34};
35
36static void __init omap_generic_init_early(void)
37{
38	omap2_init_common_infrastructure();
39	omap2_init_common_devices(NULL, NULL);
40}
41
 
 
 
 
 
 
42static void __init omap_generic_init(void)
43{
44	omap_serial_init();
45	omap_board_config = generic_config;
46	omap_board_config_size = ARRAY_SIZE(generic_config);
47}
48
49static void __init omap_generic_map_io(void)
50{
51	if (cpu_is_omap242x()) {
52		omap2_set_globals_242x();
53		omap242x_map_common_io();
54	} else if (cpu_is_omap243x()) {
55		omap2_set_globals_243x();
56		omap243x_map_common_io();
57	} else if (cpu_is_omap34xx()) {
58		omap2_set_globals_3xxx();
59		omap34xx_map_common_io();
60	} else if (cpu_is_omap44xx()) {
61		omap2_set_globals_443x();
62		omap44xx_map_common_io();
63	}
64}
 
 
 
 
 
 
 
 
65
66/* XXX This machine entry name should be updated */
67MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
68	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
69	.boot_params	= 0x80000100,
70	.reserve	= omap_reserve,
71	.map_io		= omap_generic_map_io,
72	.init_early	= omap_generic_init_early,
73	.init_irq	= omap2_init_irq,
 
74	.init_machine	= omap_generic_init,
75	.timer		= &omap2_timer,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76MACHINE_END