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

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

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

parent 7cc3c846
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ comment "MX27 platforms:"
config MACH_MX27ADS
	bool "MX27ADS platform"
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	help
	  Include support for MX27ADS platform. This includes specific
@@ -94,6 +95,7 @@ config MACH_MX27ADS
config MACH_PCM038
	bool "Phytec phyCORE-i.MX27 CPU module (pcm038)"
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	select IMX_HAVE_PLATFORM_SPI_IMX
	select MXC_ULPI if USB_ULPI
@@ -118,6 +120,7 @@ endchoice
config MACH_CPUIMX27
	bool "Eukrea CPUIMX27 module"
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	help
	  Include support for Eukrea CPUIMX27 platform. This includes
@@ -138,6 +141,7 @@ choice
config MACH_EUKREA_MBIMX27_BASEBOARD
	prompt "Eukrea MBIMX27 development board"
	bool
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_SPI_IMX
	help
	  This adds board specific devices that can be found on Eukrea's
@@ -147,12 +151,14 @@ endchoice

config MACH_MX27_3DS
	bool "MX27PDK platform"
	select IMX_HAVE_PLATFORM_IMX_UART
	help
	  Include support for MX27PDK platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_IMX27LITE
	bool "LogicPD MX27 LITEKIT platform"
	select IMX_HAVE_PLATFORM_IMX_UART
	help
	  Include support for MX27 LITEKIT platform. This includes specific
	  configurations for the board and its peripherals.
@@ -160,6 +166,7 @@ config MACH_IMX27LITE
config MACH_PCA100
	bool "Phytec phyCARD-s (pca100)"
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	select IMX_HAVE_PLATFORM_SPI_IMX
	select MXC_ULPI if USB_ULPI
@@ -170,6 +177,7 @@ config MACH_PCA100
config MACH_MXT_TD60
	bool "Maxtrack i-MXT TD60"
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_MXC_NAND
	help
	  Include support for i-MXT (aka td60) platform. This
+13 −0
Original line number Diff line number Diff line
@@ -14,6 +14,19 @@
#define imx27_add_i2c_imx1(pdata)	\
	imx_add_imx_i2c(1, MX27_I2C2_BASE_ADDR, SZ_4K, MX27_INT_I2C2, pdata)

#define imx27_add_imx_uart0(pdata)	\
	imx_add_imx_uart_1irq(0, MX27_UART1_BASE_ADDR, SZ_4K, MX27_INT_UART1, pdata)
#define imx27_add_imx_uart1(pdata)	\
	imx_add_imx_uart_1irq(1, MX27_UART2_BASE_ADDR, SZ_4K, MX27_INT_UART2, pdata)
#define imx27_add_imx_uart2(pdata)	\
	imx_add_imx_uart_1irq(2, MX27_UART3_BASE_ADDR, SZ_4K, MX27_INT_UART3, pdata)
#define imx27_add_imx_uart3(pdata)	\
	imx_add_imx_uart_1irq(3, MX27_UART4_BASE_ADDR, SZ_4K, MX27_INT_UART4, pdata)
#define imx27_add_imx_uart4(pdata)	\
	imx_add_imx_uart_1irq(4, MX27_UART5_BASE_ADDR, SZ_4K, MX27_INT_UART5, pdata)
#define imx27_add_imx_uart5(pdata)	\
	imx_add_imx_uart_1irq(5, MX27_UART6_BASE_ADDR, SZ_4K, MX27_INT_UART6, pdata)

#define imx27_add_mxc_nand(pdata)	\
	imx_add_mxc_nand_v1(MX27_NFC_BASE_ADDR, MX27_INT_NANDFC, pdata)

+0 −29
Original line number Diff line number Diff line
@@ -483,35 +483,6 @@ 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);

#ifdef CONFIG_MACH_MX27
#define DEFINE_IMX2x_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 imx2x_uart_device ## n = {		\
		.name = "imx-uart",					\
		.id = n,						\
		.num_resources = ARRAY_SIZE(imx2x_uart_resources ## n),	\
		.resource = imx2x_uart_resources ## n,			\
	}

DEFINE_IMX2x_UART_DEVICE(0, MX2x_UART1_BASE_ADDR, MX2x_INT_UART1);
DEFINE_IMX2x_UART_DEVICE(1, MX2x_UART2_BASE_ADDR, MX2x_INT_UART2);
DEFINE_IMX2x_UART_DEVICE(2, MX2x_UART3_BASE_ADDR, MX2x_INT_UART3);
DEFINE_IMX2x_UART_DEVICE(3, MX2x_UART4_BASE_ADDR, MX2x_INT_UART4);
DEFINE_IMX2x_UART_DEVICE(4, MX27_UART5_BASE_ADDR, MX27_INT_UART5);
DEFINE_IMX2x_UART_DEVICE(5, MX27_UART6_BASE_ADDR, MX27_INT_UART6);
#endif

/* GPIO port description */
#define DEFINE_MXC_GPIO_PORT_IRQ(SOC, n, _irq)				\
	{								\
+0 −8
Original line number Diff line number Diff line
@@ -14,14 +14,6 @@ extern struct platform_device mxc_gpt4;
extern struct platform_device mxc_gpt5;
#endif
extern struct platform_device mxc_wdt;
#ifdef CONFIG_MACH_MX27
extern struct platform_device imx2x_uart_device0;
extern struct platform_device imx2x_uart_device1;
extern struct platform_device imx2x_uart_device2;
extern struct platform_device imx2x_uart_device3;
extern struct platform_device imx2x_uart_device4;
extern struct platform_device imx2x_uart_device5;
#endif
extern struct platform_device mxc_w1_master_device;
extern struct platform_device mxc_fb_device;
extern struct platform_device mxc_fec_device;
+4 −10
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@
#include <mach/imxfb.h>
#include <mach/hardware.h>
#include <mach/mmc.h>
#include <mach/imx-uart.h>

#include "devices-imx27.h"
#include "devices.h"
@@ -154,13 +153,8 @@ static struct imx_fb_platform_data eukrea_mbimx27_fb_data = {
	.dmacr		= 0x00040060,
};

static struct imxuart_platform_data uart_pdata[] = {
	{
static const struct imxuart_platform_data uart_pdata __initconst = {
	.flags = IMXUART_HAVE_RTSCTS,
	},
	{
		.flags = IMXUART_HAVE_RTSCTS,
	},
};

#if defined(CONFIG_TOUCHSCREEN_ADS7846)
@@ -223,8 +217,8 @@ void __init eukrea_mbimx27_baseboard_init(void)
	mxc_gpio_setup_multiple_pins(eukrea_mbimx27_pins,
		ARRAY_SIZE(eukrea_mbimx27_pins), "MBIMX27");

	mxc_register_device(&imx2x_uart_device1, &uart_pdata[0]);
	mxc_register_device(&imx2x_uart_device2, &uart_pdata[1]);
	imx27_add_imx_uart1(&uart_pdata);
	imx27_add_imx_uart2(&uart_pdata);

	mxc_register_device(&mxc_fb_device, &eukrea_mbimx27_fb_data);
	mxc_register_device(&mxc_sdhc_device0, NULL);
Loading