Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-at91/board-1arm.c
10817 views
1
/*
2
* linux/arch/arm/mach-at91/board-1arm.c
3
*
4
* Copyright (C) 2005 SAN People
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*/
20
21
#include <linux/types.h>
22
#include <linux/init.h>
23
#include <linux/mm.h>
24
#include <linux/module.h>
25
#include <linux/platform_device.h>
26
27
#include <mach/hardware.h>
28
#include <asm/setup.h>
29
#include <asm/mach-types.h>
30
#include <asm/irq.h>
31
32
#include <asm/mach/arch.h>
33
#include <asm/mach/map.h>
34
#include <asm/mach/irq.h>
35
36
#include <mach/board.h>
37
#include <mach/gpio.h>
38
#include <mach/cpu.h>
39
40
#include "generic.h"
41
42
43
static void __init onearm_init_early(void)
44
{
45
/* Set cpu type: PQFP */
46
at91rm9200_set_type(ARCH_REVISON_9200_PQFP);
47
48
/* Initialize processor: 18.432 MHz crystal */
49
at91rm9200_initialize(18432000);
50
51
/* DBGU on ttyS0. (Rx & Tx only) */
52
at91_register_uart(0, 0, 0);
53
54
/* USART0 on ttyS1 (Rx, Tx, CTS, RTS) */
55
at91_register_uart(AT91RM9200_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
56
57
/* USART1 on ttyS2 (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
58
at91_register_uart(AT91RM9200_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS
59
| ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
60
| ATMEL_UART_RI);
61
62
/* set serial console to ttyS0 (ie, DBGU) */
63
at91_set_serial_console(0);
64
}
65
66
static void __init onearm_init_irq(void)
67
{
68
at91rm9200_init_interrupts(NULL);
69
}
70
71
static struct at91_eth_data __initdata onearm_eth_data = {
72
.phy_irq_pin = AT91_PIN_PC4,
73
.is_rmii = 1,
74
};
75
76
static struct at91_usbh_data __initdata onearm_usbh_data = {
77
.ports = 1,
78
};
79
80
static struct at91_udc_data __initdata onearm_udc_data = {
81
.vbus_pin = AT91_PIN_PC2,
82
.pullup_pin = AT91_PIN_PC3,
83
};
84
85
static void __init onearm_board_init(void)
86
{
87
/* Serial */
88
at91_add_device_serial();
89
/* Ethernet */
90
at91_add_device_eth(&onearm_eth_data);
91
/* USB Host */
92
at91_add_device_usbh(&onearm_usbh_data);
93
/* USB Device */
94
at91_add_device_udc(&onearm_udc_data);
95
}
96
97
MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
98
/* Maintainer: Lennert Buytenhek <[email protected]> */
99
.timer = &at91rm9200_timer,
100
.map_io = at91rm9200_map_io,
101
.init_early = onearm_init_early,
102
.init_irq = onearm_init_irq,
103
.init_machine = onearm_board_init,
104
MACHINE_END
105
106