Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-at91
board-eb9200.c
Go to the documentation of this file.
1
/*
2
* linux/arch/arm/mach-at91/board-eb9200.c
3
*
4
* Copyright (C) 2005 SAN People, adapted for ATEB9200 from Embest
5
* by Andrew Patrikalakis
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
*/
21
22
#include <linux/types.h>
23
#include <
linux/gpio.h
>
24
#include <
linux/init.h
>
25
#include <
linux/mm.h
>
26
#include <linux/module.h>
27
#include <linux/device.h>
28
29
#include <mach/hardware.h>
30
#include <asm/setup.h>
31
#include <
asm/mach-types.h
>
32
#include <asm/irq.h>
33
34
#include <
asm/mach/arch.h
>
35
#include <
asm/mach/map.h
>
36
#include <
asm/mach/irq.h
>
37
38
#include <mach/board.h>
39
#include <
mach/at91_aic.h
>
40
41
#include "
generic.h
"
42
43
44
static
void
__init
eb9200_init_early(
void
)
45
{
46
/* Initialize processor: 18.432 MHz crystal */
47
at91_initialize
(18432000);
48
}
49
50
static
struct
macb_platform_data
__initdata
eb9200_eth_data = {
51
.phy_irq_pin =
AT91_PIN_PC4
,
52
.is_rmii = 1,
53
};
54
55
static
struct
at91_usbh_data
__initdata
eb9200_usbh_data = {
56
.ports = 2,
57
.vbus_pin = {-
EINVAL
, -
EINVAL
},
58
.overcurrent_pin= {-
EINVAL
, -
EINVAL
},
59
};
60
61
static
struct
at91_udc_data
__initdata
eb9200_udc_data = {
62
.vbus_pin =
AT91_PIN_PD4
,
63
.pullup_pin =
AT91_PIN_PD5
,
64
};
65
66
static
struct
at91_cf_data
__initdata
eb9200_cf_data = {
67
.irq_pin = -
EINVAL
,
68
.det_pin =
AT91_PIN_PB0
,
69
.vcc_pin = -
EINVAL
,
70
.rst_pin =
AT91_PIN_PC5
,
71
};
72
73
static
struct
mci_platform_data
__initdata
eb9200_mci0_data = {
74
.slot[0] = {
75
.bus_width = 4,
76
.detect_pin = -
EINVAL
,
77
.wp_pin = -
EINVAL
,
78
},
79
};
80
81
static
struct
i2c_board_info
__initdata
eb9200_i2c_devices[] = {
82
{
83
I2C_BOARD_INFO
(
"24c512"
, 0x50),
84
},
85
};
86
87
88
static
void
__init
eb9200_board_init(
void
)
89
{
90
/* Serial */
91
/* DBGU on ttyS0. (Rx & Tx only) */
92
at91_register_uart
(0, 0, 0);
93
94
/* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
95
at91_register_uart
(
AT91RM9200_ID_US1
, 1,
ATMEL_UART_CTS
|
ATMEL_UART_RTS
96
|
ATMEL_UART_DTR
|
ATMEL_UART_DSR
|
ATMEL_UART_DCD
97
|
ATMEL_UART_RI
);
98
99
/* USART2 on ttyS2. (Rx, Tx) - IRDA */
100
at91_register_uart
(
AT91RM9200_ID_US2
, 2, 0);
101
at91_add_device_serial
();
102
/* Ethernet */
103
at91_add_device_eth
(&eb9200_eth_data);
104
/* USB Host */
105
at91_add_device_usbh
(&eb9200_usbh_data);
106
/* USB Device */
107
at91_add_device_udc
(&eb9200_udc_data);
108
/* I2C */
109
at91_add_device_i2c
(eb9200_i2c_devices,
ARRAY_SIZE
(eb9200_i2c_devices));
110
/* Compact Flash */
111
at91_add_device_cf
(&eb9200_cf_data);
112
/* SPI */
113
at91_add_device_spi
(
NULL
, 0);
114
/* MMC */
115
/* only supports 1 or 4 bit interface, not wired through to SPI */
116
at91_add_device_mci
(0, &eb9200_mci0_data);
117
}
118
119
MACHINE_START
(ATEB9200,
"Embest ATEB9200"
)
120
.timer = &
at91rm9200_timer
,
121
.map_io =
at91_map_io
,
122
.handle_irq =
at91_aic_handle_irq
,
123
.init_early = eb9200_init_early,
124
.init_irq =
at91_init_irq_default
,
125
.init_machine = eb9200_board_init,
126
MACHINE_END
Generated on Thu Jan 10 2013 12:56:33 for Linux Kernel by
1.8.2