Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-omap1/board-generic.c
10817 views
1
/*
2
* linux/arch/arm/mach-omap1/board-generic.c
3
*
4
* Modified from board-innovator1510.c
5
*
6
* Code for generic OMAP board. Should work on many OMAP systems where
7
* the device drivers take care of all the necessary hardware initialization.
8
* Do not put any board specific code to this file; create a new machine
9
* type if you need custom low-level initializations.
10
*
11
* This program is free software; you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License version 2 as
13
* published by the Free Software Foundation.
14
*/
15
16
#include <linux/kernel.h>
17
#include <linux/init.h>
18
#include <linux/platform_device.h>
19
20
#include <mach/hardware.h>
21
#include <asm/mach-types.h>
22
#include <asm/mach/arch.h>
23
#include <asm/mach/map.h>
24
25
#include <mach/gpio.h>
26
#include <plat/mux.h>
27
#include <plat/usb.h>
28
#include <plat/board.h>
29
#include <plat/common.h>
30
31
static void __init omap_generic_init_irq(void)
32
{
33
omap1_init_common_hw();
34
omap_init_irq();
35
}
36
37
/* assume no Mini-AB port */
38
39
#ifdef CONFIG_ARCH_OMAP15XX
40
static struct omap_usb_config generic1510_usb_config __initdata = {
41
.register_host = 1,
42
.register_dev = 1,
43
.hmc_mode = 16,
44
.pins[0] = 3,
45
};
46
#endif
47
48
#if defined(CONFIG_ARCH_OMAP16XX)
49
static struct omap_usb_config generic1610_usb_config __initdata = {
50
#ifdef CONFIG_USB_OTG
51
.otg = 1,
52
#endif
53
.register_host = 1,
54
.register_dev = 1,
55
.hmc_mode = 16,
56
.pins[0] = 6,
57
};
58
#endif
59
60
static struct omap_board_config_kernel generic_config[] __initdata = {
61
};
62
63
static void __init omap_generic_init(void)
64
{
65
#ifdef CONFIG_ARCH_OMAP15XX
66
if (cpu_is_omap15xx()) {
67
/* mux pins for uarts */
68
omap_cfg_reg(UART1_TX);
69
omap_cfg_reg(UART1_RTS);
70
omap_cfg_reg(UART2_TX);
71
omap_cfg_reg(UART2_RTS);
72
omap_cfg_reg(UART3_TX);
73
omap_cfg_reg(UART3_RX);
74
75
omap1_usb_init(&generic1510_usb_config);
76
}
77
#endif
78
#if defined(CONFIG_ARCH_OMAP16XX)
79
if (!cpu_is_omap1510()) {
80
omap1_usb_init(&generic1610_usb_config);
81
}
82
#endif
83
84
omap_board_config = generic_config;
85
omap_board_config_size = ARRAY_SIZE(generic_config);
86
omap_serial_init();
87
omap_register_i2c_bus(1, 100, NULL, 0);
88
}
89
90
static void __init omap_generic_map_io(void)
91
{
92
omap1_map_common_io();
93
}
94
95
MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
96
/* Maintainer: Tony Lindgren <[email protected]> */
97
.boot_params = 0x10000100,
98
.map_io = omap_generic_map_io,
99
.reserve = omap_reserve,
100
.init_irq = omap_generic_init_irq,
101
.init_machine = omap_generic_init,
102
.timer = &omap_timer,
103
MACHINE_END
104
105