aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMagnus Damm <damm@igel.co.jp>2008-12-04 04:00:11 -0500
committerPaul Mundt <lethal@linux-sh.org>2008-12-22 04:43:51 -0500
commit6aacba72dbdadc1445244e366ecf0263a160409e (patch)
tree4a47e49f2f392b09d64384d2642d41c134c7d8cb /arch
parent5727003b5d23eb852c057d25459bba27cbf754c3 (diff)
sh: add st16c2550 devices to se7343
Add 8250 platform data to setup the ST16C2550C chip on se7343. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/sh/boards/mach-se/7343/setup.c33
-rw-r--r--arch/sh/include/mach-se/mach/se7343.h6
2 files changed, 38 insertions, 1 deletions
diff --git a/arch/sh/boards/mach-se/7343/setup.c b/arch/sh/boards/mach-se/7343/setup.c
index 9308660cff59..69dac91c2a6a 100644
--- a/arch/sh/boards/mach-se/7343/setup.c
+++ b/arch/sh/boards/mach-se/7343/setup.c
@@ -1,6 +1,8 @@
1#include <linux/init.h> 1#include <linux/init.h>
2#include <linux/platform_device.h> 2#include <linux/platform_device.h>
3#include <linux/mtd/physmap.h> 3#include <linux/mtd/physmap.h>
4#include <linux/serial_8250.h>
5#include <linux/serial_reg.h>
4#include <asm/machvec.h> 6#include <asm/machvec.h>
5#include <mach-se/mach/se7343.h> 7#include <mach-se/mach/se7343.h>
6#include <asm/heartbeat.h> 8#include <asm/heartbeat.h>
@@ -94,10 +96,41 @@ static struct platform_device nor_flash_device = {
94 .resource = nor_flash_resources, 96 .resource = nor_flash_resources,
95}; 97};
96 98
99#define ST16C2550C_FLAGS (UPF_BOOT_AUTOCONF | UPF_IOREMAP)
100
101static struct plat_serial8250_port serial_platform_data[] = {
102 [0] = {
103 .iotype = UPIO_MEM,
104 .mapbase = 0x16000000,
105 .regshift = 1,
106 .flags = ST16C2550C_FLAGS,
107 .irq = UARTA_IRQ,
108 .uartclk = 7372800,
109 },
110 [1] = {
111 .iotype = UPIO_MEM,
112 .mapbase = 0x17000000,
113 .regshift = 1,
114 .flags = ST16C2550C_FLAGS,
115 .irq = UARTB_IRQ,
116 .uartclk = 7372800,
117 },
118 { },
119};
120
121static struct platform_device uart_device = {
122 .name = "serial8250",
123 .id = PLAT8250_DEV_PLATFORM,
124 .dev = {
125 .platform_data = serial_platform_data,
126 },
127};
128
97static struct platform_device *sh7343se_platform_devices[] __initdata = { 129static struct platform_device *sh7343se_platform_devices[] __initdata = {
98 &smc91x_device, 130 &smc91x_device,
99 &heartbeat_device, 131 &heartbeat_device,
100 &nor_flash_device, 132 &nor_flash_device,
133 &uart_device,
101}; 134};
102 135
103static int __init sh7343se_devices_setup(void) 136static int __init sh7343se_devices_setup(void)
diff --git a/arch/sh/include/mach-se/mach/se7343.h b/arch/sh/include/mach-se/mach/se7343.h
index 98458460e632..798d851343de 100644
--- a/arch/sh/include/mach-se/mach/se7343.h
+++ b/arch/sh/include/mach-se/mach/se7343.h
@@ -132,8 +132,10 @@
132#define SE7343_FPGA_IRQ_MRSHPC3 3 132#define SE7343_FPGA_IRQ_MRSHPC3 3
133#define SE7343_FPGA_IRQ_SMC 6 /* EXT_IRQ2 */ 133#define SE7343_FPGA_IRQ_SMC 6 /* EXT_IRQ2 */
134#define SE7343_FPGA_IRQ_USB 8 134#define SE7343_FPGA_IRQ_USB 8
135#define SE7343_FPGA_IRQ_UARTA 10
136#define SE7343_FPGA_IRQ_UARTB 11
135 137
136#define SE7343_FPGA_IRQ_NR 11 138#define SE7343_FPGA_IRQ_NR 12
137#define SE7343_FPGA_IRQ_BASE 120 139#define SE7343_FPGA_IRQ_BASE 120
138 140
139#define MRSHPC_IRQ3 (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_MRSHPC3) 141#define MRSHPC_IRQ3 (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_MRSHPC3)
@@ -142,6 +144,8 @@
142#define MRSHPC_IRQ0 (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_MRSHPC0) 144#define MRSHPC_IRQ0 (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_MRSHPC0)
143#define SMC_IRQ (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_SMC) 145#define SMC_IRQ (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_SMC)
144#define USB_IRQ (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_USB) 146#define USB_IRQ (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_USB)
147#define UARTA_IRQ (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_UARTA)
148#define UARTB_IRQ (SE7343_FPGA_IRQ_BASE + SE7343_FPGA_IRQ_UARTB)
145 149
146/* arch/sh/boards/se/7343/irq.c */ 150/* arch/sh/boards/se/7343/irq.c */
147void init_7343se_IRQ(void); 151void init_7343se_IRQ(void);