diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-06-10 17:34:59 +0200 |
---|---|---|
committer | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-06-24 15:40:41 +0200 |
commit | e9ec2a17eea971f1af91a37a1c685afad0f5a8b4 (patch) | |
tree | ec3ce4a2fda3ee46762ed2ea5980c46436c5b3c4 /arch/arm/mach-imx/devices.c | |
parent | 9a763bfbe45d8d4afe953993907188322a49a4ec (diff) |
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.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/devices.c b/arch/arm/mach-imx/devices.c index e708bfd9aab..08ae763d9db 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) \ { \ |