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

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

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

parent 2db68237
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -17,11 +17,13 @@ config ARCH_MX1ADS
	bool "MX1ADS platform"
	bool "MX1ADS platform"
	select MACH_MXLADS
	select MACH_MXLADS
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_IMX_UART
	help
	help
	  Say Y here if you are using Motorola MX1ADS/MXLADS boards
	  Say Y here if you are using Motorola MX1ADS/MXLADS boards


config MACH_SCB9328
config MACH_SCB9328
	bool "Synertronixx scb9328"
	bool "Synertronixx scb9328"
	select IMX_HAVE_PLATFORM_IMX_UART
	help
	help
	  Say Y here if you are using a Synertronixx scb9328 board
	  Say Y here if you are using a Synertronixx scb9328 board


+5 −0
Original line number Original line Diff line number Diff line
@@ -11,3 +11,8 @@


#define imx1_add_i2c_imx(pdata)		\
#define imx1_add_i2c_imx(pdata)		\
	imx_add_imx_i2c(0, MX1_I2C_BASE_ADDR, SZ_4K, MX1_INT_I2C, pdata)
	imx_add_imx_i2c(0, MX1_I2C_BASE_ADDR, SZ_4K, MX1_INT_I2C, pdata)

#define imx1_add_imx_uart0(pdata)	\
	imx_add_imx_uart_3irq(0, MX1_UART1_BASE_ADDR, 0xd0, MX1_INT_UART1RX, MX1_INT_UART1TX, MX1_INT_UART1RTS, pdata)
#define imx1_add_imx_uart1(pdata)	\
	imx_add_imx_uart_3irq(0, MX1_UART2_BASE_ADDR, 0xd0, MX1_INT_UART2RX, MX1_INT_UART2TX, MX1_INT_UART2RTS, pdata)
+0 −31
Original line number Original line Diff line number Diff line
@@ -70,37 +70,6 @@ struct platform_device imx1_camera_device = {
	.num_resources  = ARRAY_SIZE(imx1_camera_resources),
	.num_resources  = ARRAY_SIZE(imx1_camera_resources),
};
};


#define DEFINE_IMX1_UART_DEVICE(n, baseaddr, irqrx, irqtx, irqrts)	\
	static struct resource imx1_uart_resources ## n[] = {		\
		{							\
			.start = baseaddr,				\
			.end = baseaddr + 0xd0,				\
			.flags = IORESOURCE_MEM,			\
		}, {							\
			.start = irqrx,					\
			.end = irqrx,					\
			.flags = IORESOURCE_IRQ,			\
		}, {							\
			.start = irqtx,					\
			.end = irqtx,					\
			.flags = IORESOURCE_IRQ,			\
		}, {							\
			.start = irqrts,				\
			.end = irqrts,					\
			.flags = IORESOURCE_IRQ,			\
		},							\
	};								\
									\
	struct platform_device imx1_uart_device ## n = {		\
		.name = "imx-uart",					\
		.id = n,						\
		.num_resources = ARRAY_SIZE(imx1_uart_resources ## n),	\
		.resource = imx1_uart_resources ## n,			\
	}

DEFINE_IMX1_UART_DEVICE(0, MX1_UART1_BASE_ADDR, MX1_UART1_MINT_RX, MX1_UART1_MINT_TX, MX1_UART1_MINT_RTS);
DEFINE_IMX1_UART_DEVICE(1, MX1_UART2_BASE_ADDR, MX1_UART2_MINT_RX, MX1_UART2_MINT_TX, MX1_UART2_MINT_RTS);

static struct resource imx_rtc_resources[] = {
static struct resource imx_rtc_resources[] = {
	{
	{
		.start  = 0x00204000,
		.start  = 0x00204000,
+0 −2
Original line number Original line Diff line number Diff line
#ifdef CONFIG_ARCH_MX1
#ifdef CONFIG_ARCH_MX1
extern struct platform_device imx1_camera_device;
extern struct platform_device imx1_camera_device;
extern struct platform_device imx1_uart_device0;
extern struct platform_device imx1_uart_device1;
extern struct platform_device imx_rtc_device;
extern struct platform_device imx_rtc_device;
extern struct platform_device imx_wdt_device;
extern struct platform_device imx_wdt_device;
extern struct platform_device imx_usb_device;
extern struct platform_device imx_usb_device;
+8 −9
Original line number Original line Diff line number Diff line
@@ -26,7 +26,6 @@
#include <mach/common.h>
#include <mach/common.h>
#include <mach/hardware.h>
#include <mach/hardware.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx1.h>
#include <mach/iomux-mx1.h>
#include <mach/irqs.h>
#include <mach/irqs.h>


@@ -59,12 +58,12 @@ static int mx1ads_pins[] = {
 * UARTs platform data
 * UARTs platform data
 */
 */


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


/*
/*
@@ -122,8 +121,8 @@ static void __init mx1ads_init(void)
		ARRAY_SIZE(mx1ads_pins), "mx1ads");
		ARRAY_SIZE(mx1ads_pins), "mx1ads");


	/* UART */
	/* UART */
	mxc_register_device(&imx1_uart_device0, &uart_pdata[0]);
	imx1_add_imx_uart0(&uart0_pdata);
	mxc_register_device(&imx1_uart_device1, &uart_pdata[1]);
	imx1_add_imx_uart1(&uart1_pdata);


	/* Physmap flash */
	/* Physmap flash */
	mxc_register_device(&flash_device, &mx1ads_flash_data);
	mxc_register_device(&flash_device, &mx1ads_flash_data);
Loading