aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91rm9200
diff options
context:
space:
mode:
authorAndrew Victor <andrew@sanpeople.com>2006-06-20 14:30:18 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-06-20 14:30:18 -0400
commit6902f523a328bba5af036699b1352389c0746526 (patch)
tree7e55b5f1effd8f75b5675ba3c15285720b60cd37 /arch/arm/mach-at91rm9200
parentd6bdbb8ef3e4a9cafc747e1444b4908f9f2f548d (diff)
[ARM] 3604/1: AT91RM9200 New boards
Patch from Andrew Victor This patch adds support for an additional 4 AT91RM9200-based boards: 1. Conitec ARM&EVA [MACH_CARMEVA] (http://www.conitec.net/english/linuxboard.htm) 2. KwikByte KB920x [MACH_KB9200] (http://kwikbyte.com/KB9202_description_new.htm) 3. Embest ATEB9200 [MACH_ATEB9200] (http://www.embedinfo.com/english/product/ATEB9200.asp) 4. Sperry-Sun KAFA board [MACH_KAFA] (unknown) Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-at91rm9200')
-rw-r--r--arch/arm/mach-at91rm9200/Kconfig12
-rw-r--r--arch/arm/mach-at91rm9200/Makefile10
-rw-r--r--arch/arm/mach-at91rm9200/board-carmeva.c131
-rw-r--r--arch/arm/mach-at91rm9200/board-eb9200.c130
-rw-r--r--arch/arm/mach-at91rm9200/board-kafa.c116
-rw-r--r--arch/arm/mach-at91rm9200/board-kb9202.c125
6 files changed, 520 insertions, 4 deletions
diff --git a/arch/arm/mach-at91rm9200/Kconfig b/arch/arm/mach-at91rm9200/Kconfig
index 4b7218fc3eb1..1ab5b7828318 100644
--- a/arch/arm/mach-at91rm9200/Kconfig
+++ b/arch/arm/mach-at91rm9200/Kconfig
@@ -40,6 +40,18 @@ config MACH_KB9200
40 help 40 help
41 Select this if you are using KwikByte's KB920x board 41 Select this if you are using KwikByte's KB920x board
42 42
43config MACH_ATEB9200
44 bool "Embest's ATEB9200"
45 depends on ARCH_AT91RM9200
46 help
47 Select this if you are using Embest's ATEB9200 board
48
49config MACH_KAFA
50 bool "Sperry-Sun KAFA board"
51 depends on ARCH_AT91RM9200
52 help
53 Select this if you are using Sperry-Sun's KAFA board
54
43 55
44comment "AT91RM9200 Feature Selections" 56comment "AT91RM9200 Feature Selections"
45 57
diff --git a/arch/arm/mach-at91rm9200/Makefile b/arch/arm/mach-at91rm9200/Makefile
index ef88c4128edc..c8f544b789c0 100644
--- a/arch/arm/mach-at91rm9200/Makefile
+++ b/arch/arm/mach-at91rm9200/Makefile
@@ -12,16 +12,18 @@ obj-$(CONFIG_ARCH_AT91RM9200DK) += board-dk.o
12obj-$(CONFIG_MACH_AT91RM9200EK) += board-ek.o 12obj-$(CONFIG_MACH_AT91RM9200EK) += board-ek.o
13obj-$(CONFIG_MACH_CSB337) += board-csb337.o 13obj-$(CONFIG_MACH_CSB337) += board-csb337.o
14obj-$(CONFIG_MACH_CSB637) += board-csb637.o 14obj-$(CONFIG_MACH_CSB637) += board-csb637.o
15#obj-$(CONFIG_MACH_CARMEVA) += board-carmeva.o 15obj-$(CONFIG_MACH_CARMEVA) += board-carmeva.o
16#obj-$(CONFIG_MACH_KB9200) += board-kb9202.o 16obj-$(CONFIG_MACH_KB9200) += board-kb9202.o
17obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o
18obj-$(CONFIG_MACH_KAFA) += board-kafa.o
17 19
18# LEDs support 20# LEDs support
19led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o 21led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o
20led-$(CONFIG_MACH_AT91RM9200EK) += leds.o 22led-$(CONFIG_MACH_AT91RM9200EK) += leds.o
21led-$(CONFIG_MACH_CSB337) += leds.o 23led-$(CONFIG_MACH_CSB337) += leds.o
22led-$(CONFIG_MACH_CSB637) += leds.o 24led-$(CONFIG_MACH_CSB637) += leds.o
23#led-$(CONFIG_MACH_KB9200) += leds.o 25led-$(CONFIG_MACH_KB9200) += leds.o
24#led-$(CONFIG_MACH_KAFA) += leds.o 26led-$(CONFIG_MACH_KAFA) += leds.o
25obj-$(CONFIG_LEDS) += $(led-y) 27obj-$(CONFIG_LEDS) += $(led-y)
26 28
27# VGA support 29# VGA support
diff --git a/arch/arm/mach-at91rm9200/board-carmeva.c b/arch/arm/mach-at91rm9200/board-carmeva.c
new file mode 100644
index 000000000000..9183cb75ccd0
--- /dev/null
+++ b/arch/arm/mach-at91rm9200/board-carmeva.c
@@ -0,0 +1,131 @@
1/*
2 * linux/arch/arm/mach-at91rm9200/board-carmeva.c
3 *
4 * Copyright (c) 2005 Peer Georgi
5 * Conitec Datasystems
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/config.h>
23#include <linux/types.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 <asm/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 <asm/arch/hardware.h>
39#include <asm/arch/board.h>
40#include <asm/arch/gpio.h>
41
42#include "generic.h"
43
44static void __init carmeva_init_irq(void)
45{
46 /* Initialize AIC controller */
47 at91rm9200_init_irq(NULL);
48
49 /* Set up the GPIO interrupts */
50 at91_gpio_irq_setup(BGA_GPIO_BANKS);
51}
52
53/*
54 * Serial port configuration.
55 * 0 .. 3 = USART0 .. USART3
56 * 4 = DBGU
57 */
58static struct at91_uart_config __initdata carmeva_uart_config = {
59 .console_tty = 0, /* ttyS0 */
60 .nr_tty = 2,
61 .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
62};
63
64static void __init carmeva_map_io(void)
65{
66 at91rm9200_map_io();
67
68 /* Initialize clocks: 20.000 MHz crystal */
69 at91_clock_init(20000000);
70
71 /* Setup the serial ports and console */
72 at91_init_serial(&carmeva_uart_config);
73}
74
75static struct at91_eth_data __initdata carmeva_eth_data = {
76 .phy_irq_pin = AT91_PIN_PC4,
77 .is_rmii = 1,
78};
79
80static struct at91_usbh_data __initdata carmeva_usbh_data = {
81 .ports = 2,
82};
83
84static struct at91_udc_data __initdata carmeva_udc_data = {
85 .vbus_pin = AT91_PIN_PD12,
86 .pullup_pin = AT91_PIN_PD9,
87};
88
89/* FIXME: user dependend */
90// static struct at91_cf_data __initdata carmeva_cf_data = {
91// .det_pin = AT91_PIN_PB0,
92// .rst_pin = AT91_PIN_PC5,
93 // .irq_pin = ... not connected
94 // .vcc_pin = ... always powered
95// };
96
97static struct at91_mmc_data __initdata carmeva_mmc_data = {
98 .is_b = 0,
99 .wire4 = 1,
100};
101
102static void __init carmeva_board_init(void)
103{
104 /* Serial */
105 at91_add_device_serial();
106 /* Ethernet */
107 at91_add_device_eth(&carmeva_eth_data);
108 /* USB Host */
109 at91_add_device_usbh(&carmeva_usbh_data);
110 /* USB Device */
111 at91_add_device_udc(&carmeva_udc_data);
112 /* I2C */
113 at91_add_device_i2c();
114 /* Compact Flash */
115// at91_add_device_cf(&carmeva_cf_data);
116 /* SPI */
117// at91_add_device_spi(NULL, 0);
118 /* MMC */
119 at91_add_device_mmc(&carmeva_mmc_data);
120}
121
122MACHINE_START(CARMEVA, "Carmeva")
123 /* Maintainer: Conitec Datasystems */
124 .phys_io = AT91_BASE_SYS,
125 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
126 .boot_params = AT91_SDRAM_BASE + 0x100,
127 .timer = &at91rm9200_timer,
128 .map_io = carmeva_map_io,
129 .init_irq = carmeva_init_irq,
130 .init_machine = carmeva_board_init,
131MACHINE_END
diff --git a/arch/arm/mach-at91rm9200/board-eb9200.c b/arch/arm/mach-at91rm9200/board-eb9200.c
new file mode 100644
index 000000000000..c7e4546a262d
--- /dev/null
+++ b/arch/arm/mach-at91rm9200/board-eb9200.c
@@ -0,0 +1,130 @@
1/*
2 * linux/arch/arm/mach-at91rm9200/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/config.h>
23#include <linux/types.h>
24#include <linux/init.h>
25#include <linux/mm.h>
26#include <linux/module.h>
27#include <linux/device.h>
28
29#include <asm/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 <asm/arch/hardware.h>
39#include <asm/arch/board.h>
40#include <asm/arch/gpio.h>
41
42#include "generic.h"
43
44static void __init eb9200_init_irq(void)
45{
46 /* Initialize AIC controller */
47 at91rm9200_init_irq(NULL);
48
49 /* Set up the GPIO interrupts */
50 at91_gpio_irq_setup(BGA_GPIO_BANKS);
51}
52
53/*
54 * Serial port configuration.
55 * 0 .. 3 = USART0 .. USART3
56 * 4 = DBGU
57 */
58static struct at91_uart_config __initdata eb9200_uart_config = {
59 .console_tty = 0, /* ttyS0 */
60 .nr_tty = 2,
61 .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
62};
63
64static void __init eb9200_map_io(void)
65{
66 at91rm9200_map_io();
67
68 /* Initialize clocks: 18.432 MHz crystal */
69 at91_clock_init(18432000);
70
71 /* Setup the serial ports and console */
72 at91_init_serial(&eb9200_uart_config);
73}
74
75static struct at91_eth_data __initdata eb9200_eth_data = {
76 .phy_irq_pin = AT91_PIN_PC4,
77 .is_rmii = 1,
78};
79
80static struct at91_usbh_data __initdata eb9200_usbh_data = {
81 .ports = 2,
82};
83
84static struct at91_udc_data __initdata eb9200_udc_data = {
85 .vbus_pin = AT91_PIN_PD4,
86 .pullup_pin = AT91_PIN_PD5,
87};
88
89static struct at91_cf_data __initdata eb9200_cf_data = {
90 .det_pin = AT91_PIN_PB0,
91 .rst_pin = AT91_PIN_PC5,
92 // .irq_pin = ... not connected
93 // .vcc_pin = ... always powered
94};
95
96static struct at91_mmc_data __initdata eb9200_mmc_data = {
97 .is_b = 0,
98 .wire4 = 1,
99};
100
101static void __init eb9200_board_init(void)
102{
103 /* Serial */
104 at91_add_device_serial();
105 /* Ethernet */
106 at91_add_device_eth(&eb9200_eth_data);
107 /* USB Host */
108 at91_add_device_usbh(&eb9200_usbh_data);
109 /* USB Device */
110 at91_add_device_udc(&eb9200_udc_data);
111 /* I2C */
112 at91_add_device_i2c();
113 /* Compact Flash */
114 at91_add_device_cf(&eb9200_cf_data);
115 /* SPI */
116 at91_add_device_spi(NULL, 0);
117 /* MMC */
118 /* only supports 1 or 4 bit interface, not wired through to SPI */
119 at91_add_device_mmc(&eb9200_mmc_data);
120}
121
122MACHINE_START(ATEB9200, "Embest ATEB9200")
123 .phys_io = AT91_BASE_SYS,
124 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
125 .boot_params = AT91_SDRAM_BASE + 0x100,
126 .timer = &at91rm9200_timer,
127 .map_io = eb9200_map_io,
128 .init_irq = eb9200_init_irq,
129 .init_machine = eb9200_board_init,
130MACHINE_END
diff --git a/arch/arm/mach-at91rm9200/board-kafa.c b/arch/arm/mach-at91rm9200/board-kafa.c
new file mode 100644
index 000000000000..35d459fdfcf1
--- /dev/null
+++ b/arch/arm/mach-at91rm9200/board-kafa.c
@@ -0,0 +1,116 @@
1/*
2 * linux/arch/arm/mach-at91rm9200/board-kafa.c
3 *
4 * Copyright (C) 2006 Sperry-Sun
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/config.h>
22#include <linux/types.h>
23#include <linux/init.h>
24#include <linux/mm.h>
25#include <linux/module.h>
26#include <linux/platform_device.h>
27
28#include <asm/hardware.h>
29#include <asm/setup.h>
30#include <asm/mach-types.h>
31#include <asm/irq.h>
32
33#include <asm/mach/arch.h>
34#include <asm/mach/map.h>
35#include <asm/mach/irq.h>
36
37#include <asm/arch/hardware.h>
38#include <asm/arch/board.h>
39#include <asm/arch/gpio.h>
40
41#include "generic.h"
42
43static void __init kafa_init_irq(void)
44{
45 /* Initialize AIC controller */
46 at91rm9200_init_irq(NULL);
47
48 /* Set up the GPIO interrupts */
49 at91_gpio_irq_setup(PQFP_GPIO_BANKS);
50}
51
52/*
53 * Serial port configuration.
54 * 0 .. 3 = USART0 .. USART3
55 * 4 = DBGU
56 */
57static struct at91_uart_config __initdata kafa_uart_config = {
58 .console_tty = 0, /* ttyS0 */
59 .nr_tty = 2,
60 .tty_map = { 4, 0, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
61};
62
63static void __init kafa_map_io(void)
64{
65 at91rm9200_map_io();
66
67 /* Initialize clocks: 18.432 MHz crystal */
68 at91_clock_init(18432000);
69
70 /* Set up the LEDs */
71 at91_init_leds(AT91_PIN_PB4, AT91_PIN_PB4);
72
73 /* Setup the serial ports and console */
74 at91_init_serial(&kafa_uart_config);
75}
76
77static struct at91_eth_data __initdata kafa_eth_data = {
78 .phy_irq_pin = AT91_PIN_PC4,
79 .is_rmii = 0,
80};
81
82static struct at91_usbh_data __initdata kafa_usbh_data = {
83 .ports = 1,
84};
85
86static struct at91_udc_data __initdata kafa_udc_data = {
87 .vbus_pin = AT91_PIN_PB6,
88 .pullup_pin = AT91_PIN_PB7,
89};
90
91static void __init kafa_board_init(void)
92{
93 /* Serial */
94 at91_add_device_serial();
95 /* Ethernet */
96 at91_add_device_eth(&kafa_eth_data);
97 /* USB Host */
98 at91_add_device_usbh(&kafa_usbh_data);
99 /* USB Device */
100 at91_add_device_udc(&kafa_udc_data);
101 /* I2C */
102 at91_add_device_i2c();
103 /* SPI */
104 at91_add_device_spi(NULL, 0);
105}
106
107MACHINE_START(KAFA, "Sperry-Sun KAFA")
108 /* Maintainer: Sergei Sharonov */
109 .phys_io = AT91_BASE_SYS,
110 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
111 .boot_params = AT91_SDRAM_BASE + 0x100,
112 .timer = &at91rm9200_timer,
113 .map_io = kafa_map_io,
114 .init_irq = kafa_init_irq,
115 .init_machine = kafa_board_init,
116MACHINE_END
diff --git a/arch/arm/mach-at91rm9200/board-kb9202.c b/arch/arm/mach-at91rm9200/board-kb9202.c
new file mode 100644
index 000000000000..6ba65ef48809
--- /dev/null
+++ b/arch/arm/mach-at91rm9200/board-kb9202.c
@@ -0,0 +1,125 @@
1/*
2 * linux/arch/arm/mach-at91rm9200/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/config.h>
23#include <linux/types.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 <asm/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 <asm/arch/hardware.h>
39#include <asm/arch/board.h>
40#include <asm/arch/gpio.h>
41
42#include "generic.h"
43
44static void __init kb9202_init_irq(void)
45{
46 /* Initialize AIC controller */
47 at91rm9200_init_irq(NULL);
48
49 /* Set up the GPIO interrupts */
50 at91_gpio_irq_setup(PQFP_GPIO_BANKS);
51}
52
53/*
54 * Serial port configuration.
55 * 0 .. 3 = USART0 .. USART3
56 * 4 = DBGU
57 */
58static struct at91_uart_config __initdata kb9202_uart_config = {
59 .console_tty = 0, /* ttyS0 */
60 .nr_tty = 3,
61 .tty_map = { 4, 0, 1, -1, -1 } /* ttyS0, ..., ttyS4 */
62};
63
64static void __init kb9202_map_io(void)
65{
66 at91rm9200_map_io();
67
68 /* Initialize clocks: 10 MHz crystal */
69 at91_clock_init(10000000);
70
71 /* Set up the LEDs */
72 at91_init_leds(AT91_PIN_PC19, AT91_PIN_PC18);
73
74 /* Setup the serial ports and console */
75 at91_init_serial(&kb9202_uart_config);
76}
77
78static struct at91_eth_data __initdata kb9202_eth_data = {
79 .phy_irq_pin = AT91_PIN_PB29,
80 .is_rmii = 0,
81};
82
83static struct at91_usbh_data __initdata kb9202_usbh_data = {
84 .ports = 1,
85};
86
87static struct at91_udc_data __initdata kb9202_udc_data = {
88 .vbus_pin = AT91_PIN_PB24,
89 .pullup_pin = AT91_PIN_PB22,
90};
91
92static struct at91_mmc_data __initdata kb9202_mmc_data = {
93 .det_pin = AT91_PIN_PB2,
94 .is_b = 0,
95 .wire4 = 1,
96};
97
98static void __init kb9202_board_init(void)
99{
100 /* Serial */
101 at91_add_device_serial();
102 /* Ethernet */
103 at91_add_device_eth(&kb9202_eth_data);
104 /* USB Host */
105 at91_add_device_usbh(&kb9202_usbh_data);
106 /* USB Device */
107 at91_add_device_udc(&kb9202_udc_data);
108 /* MMC */
109 at91_add_device_mmc(&kb9202_mmc_data);
110 /* I2C */
111 at91_add_device_i2c();
112 /* SPI */
113 at91_add_device_spi(NULL, 0);
114}
115
116MACHINE_START(KB9200, "KB920x")
117 /* Maintainer: KwikByte, Inc. */
118 .phys_io = AT91_BASE_SYS,
119 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
120 .boot_params = AT91_SDRAM_BASE + 0x100,
121 .timer = &at91rm9200_timer,
122 .map_io = kb9202_map_io,
123 .init_irq = kb9202_init_irq,
124 .init_machine = kb9202_board_init,
125MACHINE_END