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-kb9202.c
Go to the documentation of this file.
1
/*
2
* linux/arch/arm/mach-at91/board-kb9202.c
3
*
4
* Copyright (c) 2005 kb_admin
5
* KwikByte, Inc.
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/platform_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/cpu.h>
40
#include <
mach/at91_aic.h
>
41
#include <
mach/at91rm9200_mc.h
>
42
#include <
mach/at91_ramc.h
>
43
44
#include "
generic.h
"
45
46
47
static
void
__init
kb9202_init_early(
void
)
48
{
49
/* Set cpu type: PQFP */
50
at91rm9200_set_type
(
ARCH_REVISON_9200_PQFP
);
51
52
/* Initialize processor: 10 MHz crystal */
53
at91_initialize
(10000000);
54
}
55
56
static
struct
macb_platform_data
__initdata
kb9202_eth_data = {
57
.phy_irq_pin =
AT91_PIN_PB29
,
58
.is_rmii = 0,
59
};
60
61
static
struct
at91_usbh_data
__initdata
kb9202_usbh_data = {
62
.ports = 1,
63
.vbus_pin = {-
EINVAL
, -
EINVAL
},
64
.overcurrent_pin= {-
EINVAL
, -
EINVAL
},
65
};
66
67
static
struct
at91_udc_data
__initdata
kb9202_udc_data = {
68
.vbus_pin =
AT91_PIN_PB24
,
69
.pullup_pin =
AT91_PIN_PB22
,
70
};
71
72
static
struct
mci_platform_data
__initdata
kb9202_mci0_data = {
73
.slot[0] = {
74
.bus_width = 4,
75
.detect_pin =
AT91_PIN_PB2
,
76
.wp_pin = -
EINVAL
,
77
},
78
};
79
80
static
struct
mtd_partition
__initdata
kb9202_nand_partition[] = {
81
{
82
.name =
"nand_fs"
,
83
.offset = 0,
84
.size =
MTDPART_SIZ_FULL
,
85
},
86
};
87
88
static
struct
atmel_nand_data
__initdata
kb9202_nand_data = {
89
.ale = 22,
90
.cle = 21,
91
.det_pin = -
EINVAL
,
92
.rdy_pin =
AT91_PIN_PC29
,
93
.enable_pin =
AT91_PIN_PC28
,
94
.ecc_mode =
NAND_ECC_SOFT
,
95
.parts = kb9202_nand_partition,
96
.num_parts =
ARRAY_SIZE
(kb9202_nand_partition),
97
};
98
99
/*
100
* LEDs
101
*/
102
static
struct
gpio_led
kb9202_leds[] = {
103
{
/* D1 */
104
.name =
"led1"
,
105
.gpio =
AT91_PIN_PC19
,
106
.active_low = 1,
107
.default_trigger =
"heartbeat"
,
108
},
109
{
/* D2 */
110
.name =
"led2"
,
111
.gpio =
AT91_PIN_PC18
,
112
.active_low = 1,
113
.default_trigger =
"timer"
,
114
}
115
};
116
117
static
void
__init
kb9202_board_init(
void
)
118
{
119
/* Serial */
120
/* DBGU on ttyS0. (Rx & Tx only) */
121
at91_register_uart
(0, 0, 0);
122
123
/* USART0 on ttyS1 (Rx & Tx only) */
124
at91_register_uart
(
AT91RM9200_ID_US0
, 1, 0);
125
126
/* USART1 on ttyS2 (Rx & Tx only) - IRDA (optional) */
127
at91_register_uart
(
AT91RM9200_ID_US1
, 2, 0);
128
129
/* USART3 on ttyS3 (Rx, Tx, CTS, RTS) - RS485 (optional) */
130
at91_register_uart
(
AT91RM9200_ID_US3
, 3,
ATMEL_UART_CTS
|
ATMEL_UART_RTS
);
131
at91_add_device_serial
();
132
/* Ethernet */
133
at91_add_device_eth
(&kb9202_eth_data);
134
/* USB Host */
135
at91_add_device_usbh
(&kb9202_usbh_data);
136
/* USB Device */
137
at91_add_device_udc
(&kb9202_udc_data);
138
/* MMC */
139
at91_add_device_mci
(0, &kb9202_mci0_data);
140
/* I2C */
141
at91_add_device_i2c
(
NULL
, 0);
142
/* SPI */
143
at91_add_device_spi
(
NULL
, 0);
144
/* NAND */
145
at91_add_device_nand
(&kb9202_nand_data);
146
/* LEDs */
147
at91_gpio_leds
(kb9202_leds,
ARRAY_SIZE
(kb9202_leds));
148
}
149
150
MACHINE_START
(KB9200,
"KB920x"
)
151
/* Maintainer: KwikByte, Inc. */
152
.timer = &
at91rm9200_timer
,
153
.map_io =
at91_map_io
,
154
.handle_irq =
at91_aic_handle_irq
,
155
.init_early = kb9202_init_early,
156
.init_irq =
at91_init_irq_default
,
157
.init_machine = kb9202_board_init,
158
MACHINE_END
Generated on Thu Jan 10 2013 12:56:33 for Linux Kernel by
1.8.2