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


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


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


+0 −29
Original line number Original line 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(0, 1, MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);
DEFINE_IMX_SSI_DEVICE(1, 2, 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 */
/* GPIO port description */
#define DEFINE_MXC_GPIO_PORT_IRQ(SOC, n, _irq)				\
#define DEFINE_MXC_GPIO_PORT_IRQ(SOC, n, _irq)				\
	{								\
	{								\
+0 −8
Original line number Original line Diff line number Diff line
@@ -14,14 +14,6 @@ extern struct platform_device mxc_gpt4;
extern struct platform_device mxc_gpt5;
extern struct platform_device mxc_gpt5;
#endif
#endif
extern struct platform_device mxc_wdt;
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_w1_master_device;
extern struct platform_device mxc_fb_device;
extern struct platform_device mxc_fb_device;
extern struct platform_device mxc_fec_device;
extern struct platform_device mxc_fec_device;
+4 −10
Original line number Original line Diff line number Diff line
@@ -32,7 +32,6 @@
#include <mach/imxfb.h>
#include <mach/imxfb.h>
#include <mach/hardware.h>
#include <mach/hardware.h>
#include <mach/mmc.h>
#include <mach/mmc.h>
#include <mach/imx-uart.h>


#include "devices-imx27.h"
#include "devices-imx27.h"
#include "devices.h"
#include "devices.h"
@@ -154,13 +153,8 @@ static struct imx_fb_platform_data eukrea_mbimx27_fb_data = {
	.dmacr		= 0x00040060,
	.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,
	},
	{
		.flags = IMXUART_HAVE_RTSCTS,
	},
};
};


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


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


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