Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16cf5c41 authored by Uwe Kleine-König's avatar Uwe Kleine-König
Browse files

ARM: imx: dynamically register imx-uart devices (imx31)

parent d5dac4a6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ config MACH_MX31ADS
	bool "Support MX31ADS platforms"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	default y
	help
	  Include support for MX31ADS platform. This includes specific
@@ -36,6 +37,7 @@ config MACH_PCM037
	bool "Support Phytec pcm037 (i.MX31) platforms"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	select MXC_ULPI if USB_ULPI
	help
@@ -55,6 +57,7 @@ config MACH_MX31LITE
	bool "Support MX31 LITEKIT (LogicPD)"
	select ARCH_MX31
	select MXC_ULPI if USB_ULPI
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	select IMX_HAVE_PLATFORM_SPI_IMX
	help
@@ -64,6 +67,7 @@ config MACH_MX31LITE
config MACH_MX31_3DS
	bool "Support MX31PDK (3DS)"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	select IMX_HAVE_PLATFORM_SPI_IMX
	help
@@ -83,6 +87,7 @@ config MACH_MX31MOBOARD
	bool "Support mx31moboard platforms (EPFL Mobots group)"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_SPI_IMX
	select MXC_ULPI if USB_ULPI
	help
@@ -92,6 +97,7 @@ config MACH_MX31MOBOARD
config MACH_MX31LILLY
	bool "Support MX31 LILLY-1131 platforms (INCO startec)"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_SPI_IMX
	select MXC_ULPI if USB_ULPI
	help
@@ -101,6 +107,7 @@ config MACH_MX31LILLY
config MACH_QONG
	bool "Support Dave/DENX QongEVB-LITE platform"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_UART
	help
	  Include support for Dave/DENX QongEVB-LITE platform. This includes
	  specific configurations for the board and its peripherals.
@@ -119,6 +126,7 @@ config MACH_ARMADILLO5X0
	bool "Support Atmark Armadillo-500 Development Base Board"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	select MXC_ULPI if USB_ULPI
	help
@@ -136,6 +144,7 @@ config MACH_MX35_3DS
config MACH_KZM_ARM11_01
	bool "Support KZM-ARM11-01(Kyoto Microcomputer)"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_IMX_UART
	help
	  Include support for KZM-ARM11-01. This includes specific
	  configurations for the board and its peripherals.
+11 −0
Original line number Diff line number Diff line
@@ -16,6 +16,17 @@
#define imx31_add_imx_i2c2(pdata)	\
	imx_add_imx_i2c(2, MX31_I2C3_BASE_ADDR, SZ_4K, MX31_INT_I2C3, pdata)

#define imx31_add_imx_uart0(pdata)	\
	imx_add_imx_uart_1irq(0, MX31_UART1_BASE_ADDR, SZ_16K, MX31_INT_UART1, pdata)
#define imx31_add_imx_uart1(pdata)	\
	imx_add_imx_uart_1irq(1, MX31_UART2_BASE_ADDR, SZ_16K, MX31_INT_UART2, pdata)
#define imx31_add_imx_uart2(pdata)	\
	imx_add_imx_uart_1irq(2, MX31_UART3_BASE_ADDR, SZ_16K, MX31_INT_UART3, pdata)
#define imx31_add_imx_uart3(pdata)	\
	imx_add_imx_uart_1irq(3, MX31_UART4_BASE_ADDR, SZ_16K, MX31_INT_UART4, pdata)
#define imx31_add_imx_uart4(pdata)	\
	imx_add_imx_uart_1irq(4, MX31_UART5_BASE_ADDR, SZ_16K, MX31_INT_UART5, pdata)

#define imx31_add_mxc_nand(pdata)	\
	imx_add_mxc_nand_v1(MX31_NFC_BASE_ADDR, MX31_INT_NANDFC, pdata)

+2 −41
Original line number Diff line number Diff line
@@ -25,11 +25,11 @@
#include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/common.h>
#include <mach/imx-uart.h>
#include <mach/mx3_camera.h>

#include "devices.h"

#if defined(CONFIG_ARCH_MX35)
static struct resource uart0[] = {
	{
		.start = UART1_BASE_ADDR,
@@ -86,46 +86,7 @@ struct platform_device mxc_uart_device2 = {
	.resource = uart2,
	.num_resources = ARRAY_SIZE(uart2),
};

#ifdef CONFIG_ARCH_MX31
static struct resource uart3[] = {
	{
		.start = UART4_BASE_ADDR,
		.end = UART4_BASE_ADDR + 0x0B5,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_UART4,
		.end = MXC_INT_UART4,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_uart_device3 = {
	.name = "imx-uart",
	.id = 3,
	.resource = uart3,
	.num_resources = ARRAY_SIZE(uart3),
};

static struct resource uart4[] = {
	{
		.start = UART5_BASE_ADDR,
		.end = UART5_BASE_ADDR + 0x0B5,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_UART5,
		.end = MXC_INT_UART5,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_uart_device4 = {
	.name = "imx-uart",
	.id = 4,
	.resource = uart4,
	.num_resources = ARRAY_SIZE(uart4),
};
#endif /* CONFIG_ARCH_MX31 */
#endif

/* GPIO port description */
static struct mxc_gpio_port imx_gpio_ports[] = {
+2 −3
Original line number Diff line number Diff line

#if defined(CONFIG_ARCH_MX35)
extern struct platform_device mxc_uart_device0;
extern struct platform_device mxc_uart_device1;
extern struct platform_device mxc_uart_device2;
extern struct platform_device mxc_uart_device3;
extern struct platform_device mxc_uart_device4;
#endif
extern struct platform_device mxc_w1_master_device;
extern struct platform_device mx3_ipu;
extern struct platform_device mx3_fb;
+3 −4
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@
#include <asm/mach/map.h>

#include <mach/common.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx3.h>
#include <mach/mmc.h>
#include <mach/ipu.h>
@@ -493,7 +492,7 @@ static struct platform_device armadillo5x0_smc911x_device = {
};

/* UART device data */
static struct imxuart_platform_data uart_pdata = {
static const struct imxuart_platform_data uart_pdata __initconst = {
	.flags = IMXUART_HAVE_RTSCTS,
};

@@ -514,8 +513,8 @@ static void __init armadillo5x0_init(void)
	imx31_add_imx_i2c1(NULL);

	/* Register UART */
	mxc_register_device(&mxc_uart_device0, &uart_pdata);
	mxc_register_device(&mxc_uart_device1, &uart_pdata);
	imx31_add_imx_uart0(&uart_pdata);
	imx31_add_imx_uart1(&uart_pdata);

	/* SMSC9118 IRQ pin */
	gpio_direction_input(MX31_PIN_GPIO1_0);
Loading