aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/devices.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-06-10 17:34:59 +0200
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-06-24 15:40:41 +0200
commite9ec2a17eea971f1af91a37a1c685afad0f5a8b4 (patch)
treeec3ce4a2fda3ee46762ed2ea5980c46436c5b3c4 /arch/arm/mach-imx/devices.c
parent9a763bfbe45d8d4afe953993907188322a49a4ec (diff)
downloadkernel_samsung_smdk4412-e9ec2a17eea971f1af91a37a1c685afad0f5a8b4.zip
kernel_samsung_smdk4412-e9ec2a17eea971f1af91a37a1c685afad0f5a8b4.tar.gz
kernel_samsung_smdk4412-e9ec2a17eea971f1af91a37a1c685afad0f5a8b4.tar.bz2
ARM: imx: fold serial.c into devices.c
... and use cpp magic to reduce repetition. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/devices.c')
-rw-r--r--arch/arm/mach-imx/devices.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/devices.c b/arch/arm/mach-imx/devices.c
index e708bfd..08ae763 100644
--- a/arch/arm/mach-imx/devices.c
+++ b/arch/arm/mach-imx/devices.c
@@ -32,11 +32,13 @@
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/dma-mapping.h>
+#include <linux/serial.h>
#include <mach/irqs.h>
#include <mach/hardware.h>
#include <mach/common.h>
#include <mach/mmc.h>
+#include <mach/imx-uart.h>
#include "devices.h"
@@ -424,6 +426,36 @@ struct platform_device mxc_usbh2 = {
DEFINE_IMX_SSI_DEVICE(0, 1, MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);
DEFINE_IMX_SSI_DEVICE(1, 2, MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);
+#define DEFINE_IMX_UART_DEVICE(n, baseaddr, irq) \
+ static struct resource imx2x_uart_resources ## n[] = { \
+ { \
+ .start = baseaddr, \
+ .end = baseaddr + 0xb5, \
+ .flags = IORESOURCE_MEM, \
+ }, { \
+ .start = irq, \
+ .end = irq, \
+ .flags = IORESOURCE_IRQ, \
+ }, \
+ }; \
+ \
+ struct platform_device mxc_uart_device ## n = { \
+ .name = "imx-uart", \
+ .id = n, \
+ .num_resources = ARRAY_SIZE(imx2x_uart_resources ## n), \
+ .resource = imx2x_uart_resources ## n, \
+ }
+
+DEFINE_IMX_UART_DEVICE(0, MX2x_UART1_BASE_ADDR, MX2x_INT_UART1);
+DEFINE_IMX_UART_DEVICE(1, MX2x_UART2_BASE_ADDR, MX2x_INT_UART2);
+DEFINE_IMX_UART_DEVICE(2, MX2x_UART3_BASE_ADDR, MX2x_INT_UART3);
+DEFINE_IMX_UART_DEVICE(3, MX2x_UART4_BASE_ADDR, MX2x_INT_UART4);
+
+#ifdef CONFIG_MACH_MX27
+DEFINE_IMX_UART_DEVICE(4, MX27_UART5_BASE_ADDR, MX27_INT_UART5);
+DEFINE_IMX_UART_DEVICE(5, MX27_UART6_BASE_ADDR, MX27_INT_UART6);
+#endif
+
/* GPIO port description */
#define DEFINE_MXC_GPIO_PORT_IRQ(SOC, n, _irq) \
{ \