ARM: imx: dynamically register imx-uart devices (imx1)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
parent
2db6823773
commit
d112f4e4e5
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
#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;
|
||||||
|
|
|
@ -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,
|
};
|
||||||
}, {
|
|
||||||
.flags = IMXUART_HAVE_RTSCTS,
|
static const struct imxuart_platform_data uart1_pdata __initconst = {
|
||||||
},
|
.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);
|
||||||
|
|
|
@ -22,9 +22,9 @@
|
||||||
#include <mach/common.h>
|
#include <mach/common.h>
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <mach/irqs.h>
|
#include <mach/irqs.h>
|
||||||
#include <mach/imx-uart.h>
|
|
||||||
#include <mach/iomux-mx1.h>
|
#include <mach/iomux-mx1.h>
|
||||||
|
|
||||||
|
#include "devices-imx1.h"
|
||||||
#include "devices.h"
|
#include "devices.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -114,7 +114,7 @@ static void uart1_mxc_exit(struct platform_device *pdev)
|
||||||
ARRAY_SIZE(mxc_uart1_pins));
|
ARRAY_SIZE(mxc_uart1_pins));
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct imxuart_platform_data uart_pdata = {
|
static const struct imxuart_platform_data uart_pdata __initconst = {
|
||||||
.init = uart1_mxc_init,
|
.init = uart1_mxc_init,
|
||||||
.exit = uart1_mxc_exit,
|
.exit = uart1_mxc_exit,
|
||||||
.flags = IMXUART_HAVE_RTSCTS,
|
.flags = IMXUART_HAVE_RTSCTS,
|
||||||
|
@ -130,7 +130,7 @@ static struct platform_device *devices[] __initdata = {
|
||||||
*/
|
*/
|
||||||
static void __init scb9328_init(void)
|
static void __init scb9328_init(void)
|
||||||
{
|
{
|
||||||
mxc_register_device(&imx1_uart_device0, &uart_pdata);
|
imx1_add_imx_uart0(&uart_pdata);
|
||||||
|
|
||||||
printk(KERN_INFO"Scb9328: Adding devices\n");
|
printk(KERN_INFO"Scb9328: Adding devices\n");
|
||||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||||
|
|
|
@ -91,18 +91,18 @@
|
||||||
#define MX1_SIM_DATA_INT 16
|
#define MX1_SIM_DATA_INT 16
|
||||||
#define MX1_RTC_INT 17
|
#define MX1_RTC_INT 17
|
||||||
#define MX1_RTC_SAMINT 18
|
#define MX1_RTC_SAMINT 18
|
||||||
#define MX1_UART2_MINT_PFERR 19
|
#define MX1_INT_UART2PFERR 19
|
||||||
#define MX1_UART2_MINT_RTS 20
|
#define MX1_INT_UART2RTS 20
|
||||||
#define MX1_UART2_MINT_DTR 21
|
#define MX1_INT_UART2DTR 21
|
||||||
#define MX1_UART2_MINT_UARTC 22
|
#define MX1_INT_UART2UARTC 22
|
||||||
#define MX1_UART2_MINT_TX 23
|
#define MX1_INT_UART2TX 23
|
||||||
#define MX1_UART2_MINT_RX 24
|
#define MX1_INT_UART2RX 24
|
||||||
#define MX1_UART1_MINT_PFERR 25
|
#define MX1_INT_UART1PFERR 25
|
||||||
#define MX1_UART1_MINT_RTS 26
|
#define MX1_INT_UART1RTS 26
|
||||||
#define MX1_UART1_MINT_DTR 27
|
#define MX1_INT_UART1DTR 27
|
||||||
#define MX1_UART1_MINT_UARTC 28
|
#define MX1_INT_UART1UARTC 28
|
||||||
#define MX1_UART1_MINT_TX 29
|
#define MX1_INT_UART1TX 29
|
||||||
#define MX1_UART1_MINT_RX 30
|
#define MX1_INT_UART1RX 30
|
||||||
#define MX1_VOICE_DAC_INT 31
|
#define MX1_VOICE_DAC_INT 31
|
||||||
#define MX1_VOICE_ADC_INT 32
|
#define MX1_VOICE_ADC_INT 32
|
||||||
#define MX1_PEN_DATA_INT 33
|
#define MX1_PEN_DATA_INT 33
|
||||||
|
|
Loading…
Reference in New Issue