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

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

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

parent 16cf5c41
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ config MACH_PCM043
	bool "Support Phytec pcm043 (i.MX35) platforms"
	select ARCH_MX35
	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 +137,7 @@ config MACH_ARMADILLO5X0
config MACH_MX35_3DS
	bool "Support MX35PDK platform"
	select ARCH_MX35
	select IMX_HAVE_PLATFORM_IMX_UART
	default n
	help
	  Include support for MX35PDK platform. This includes specific
+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,13 @@
#define imx35_add_imx_i2c2(pdata)	\
	imx_add_imx_i2c(2, MX35_I2C3_BASE_ADDR, SZ_4K, MX35_INT_I2C3, pdata)

#define imx35_add_imx_uart0(pdata)	\
	imx_add_imx_uart_1irq(0, MX35_UART1_BASE_ADDR, SZ_16K, MX35_INT_UART1, pdata)
#define imx35_add_imx_uart1(pdata)	\
	imx_add_imx_uart_1irq(1, MX35_UART2_BASE_ADDR, SZ_16K, MX35_INT_UART2, pdata)
#define imx35_add_imx_uart2(pdata)	\
	imx_add_imx_uart_1irq(2, MX35_UART3_BASE_ADDR, SZ_16K, MX35_INT_UART3, pdata)

#define imx35_add_mxc_nand(pdata)	\
	imx_add_mxc_nand_v21(MX35_NFC_BASE_ADDR, MX35_INT_NANDFC, pdata)

+0 −59
Original line number Diff line number Diff line
@@ -29,65 +29,6 @@

#include "devices.h"

#if defined(CONFIG_ARCH_MX35)
static struct resource uart0[] = {
	{
		.start = UART1_BASE_ADDR,
		.end = UART1_BASE_ADDR + 0x0B5,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_UART1,
		.end = MXC_INT_UART1,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_uart_device0 = {
	.name = "imx-uart",
	.id = 0,
	.resource = uart0,
	.num_resources = ARRAY_SIZE(uart0),
};

static struct resource uart1[] = {
	{
		.start = UART2_BASE_ADDR,
		.end = UART2_BASE_ADDR + 0x0B5,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_UART2,
		.end = MXC_INT_UART2,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_uart_device1 = {
	.name = "imx-uart",
	.id = 1,
	.resource = uart1,
	.num_resources = ARRAY_SIZE(uart1),
};

static struct resource uart2[] = {
	{
		.start = UART3_BASE_ADDR,
		.end = UART3_BASE_ADDR + 0x0B5,
		.flags = IORESOURCE_MEM,
	}, {
		.start = MXC_INT_UART3,
		.end = MXC_INT_UART3,
		.flags = IORESOURCE_IRQ,
	},
};

struct platform_device mxc_uart_device2 = {
	.name = "imx-uart",
	.id = 2,
	.resource = uart2,
	.num_resources = ARRAY_SIZE(uart2),
};
#endif

/* GPIO port description */
static struct mxc_gpio_port imx_gpio_ports[] = {
	{
+0 −5
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;
#endif
extern struct platform_device mxc_w1_master_device;
extern struct platform_device mx3_ipu;
extern struct platform_device mx3_fb;
+3 −3
Original line number Diff line number Diff line
@@ -34,12 +34,12 @@

#include <mach/hardware.h>
#include <mach/common.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx35.h>

#include "devices-imx35.h"
#include "devices.h"

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

@@ -92,7 +92,7 @@ static void __init mxc_board_init(void)

	platform_add_devices(devices, ARRAY_SIZE(devices));

	mxc_register_device(&mxc_uart_device0, &uart_pdata);
	imx35_add_imx_uart0(&uart_pdata);

	mxc_register_device(&mxc_otg_udc_device, &usb_pdata);
}
Loading