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

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

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent 7cc3c846
...@@ -86,6 +86,7 @@ comment "MX27 platforms:" ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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
......
...@@ -14,6 +14,19 @@ ...@@ -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)
......
...@@ -483,35 +483,6 @@ struct platform_device mxc_usbh2 = { ...@@ -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) \
{ \ { \
......
...@@ -14,14 +14,6 @@ extern struct platform_device mxc_gpt4; ...@@ -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;
......
...@@ -32,7 +32,6 @@ ...@@ -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 = { ...@@ -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) ...@@ -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);
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
#include <mach/common.h> #include <mach/common.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include <mach/imx-uart.h>
#include <mach/mxc_nand.h> #include <mach/mxc_nand.h>
#include "devices-imx27.h" #include "devices-imx27.h"
...@@ -111,12 +110,8 @@ static struct platform_device eukrea_cpuimx27_nor_mtd_device = { ...@@ -111,12 +110,8 @@ static struct platform_device eukrea_cpuimx27_nor_mtd_device = {
.resource = &eukrea_cpuimx27_flash_resource, .resource = &eukrea_cpuimx27_flash_resource,
}; };
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,
},
}; };
static const struct mxc_nand_platform_data static const struct mxc_nand_platform_data
...@@ -188,7 +183,7 @@ static void __init eukrea_cpuimx27_init(void) ...@@ -188,7 +183,7 @@ static void __init eukrea_cpuimx27_init(void)
mxc_gpio_setup_multiple_pins(eukrea_cpuimx27_pins, mxc_gpio_setup_multiple_pins(eukrea_cpuimx27_pins,
ARRAY_SIZE(eukrea_cpuimx27_pins), "CPUIMX27"); ARRAY_SIZE(eukrea_cpuimx27_pins), "CPUIMX27");
mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]); imx27_add_imx_uart0(&uart_pdata);
imx27_add_mxc_nand(&cpuimx27_nand_board_info); imx27_add_mxc_nand(&cpuimx27_nand_board_info);
...@@ -203,7 +198,7 @@ static void __init eukrea_cpuimx27_init(void) ...@@ -203,7 +198,7 @@ static void __init eukrea_cpuimx27_init(void)
/* SDHC2 can be used for Wifi */ /* SDHC2 can be used for Wifi */
mxc_register_device(&mxc_sdhc_device1, NULL); mxc_register_device(&mxc_sdhc_device1, NULL);
/* in which case UART4 is also used for Bluetooth */ /* in which case UART4 is also used for Bluetooth */
mxc_register_device(&imx2x_uart_device3, &uart_pdata[1]); imx27_add_imx_uart3(&uart_pdata);
#endif #endif
#if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE)
......
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include "devices-imx27.h"
#include "devices.h" #include "devices.h"
static unsigned int mx27lite_pins[] = { static unsigned int mx27lite_pins[] = {
...@@ -54,7 +54,7 @@ static unsigned int mx27lite_pins[] = { ...@@ -54,7 +54,7 @@ static unsigned int mx27lite_pins[] = {
PF23_AIN_FEC_TX_EN, PF23_AIN_FEC_TX_EN,
}; };
static struct imxuart_platform_data uart_pdata = { static const struct imxuart_platform_data uart_pdata __initconst = {
.flags = IMXUART_HAVE_RTSCTS, .flags = IMXUART_HAVE_RTSCTS,
}; };
...@@ -66,7 +66,7 @@ static void __init mx27lite_init(void) ...@@ -66,7 +66,7 @@ static void __init mx27lite_init(void)
{ {
mxc_gpio_setup_multiple_pins(mx27lite_pins, ARRAY_SIZE(mx27lite_pins), mxc_gpio_setup_multiple_pins(mx27lite_pins, ARRAY_SIZE(mx27lite_pins),
"imx27lite"); "imx27lite");
mxc_register_device(&imx2x_uart_device0, &uart_pdata); imx27_add_imx_uart0(&uart_pdata);
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
} }
......
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include "devices-imx27.h"
#include "devices.h" #include "devices.h"
static unsigned int mx27pdk_pins[] = { static unsigned int mx27pdk_pins[] = {
...@@ -59,7 +59,7 @@ static unsigned int mx27pdk_pins[] = { ...@@ -59,7 +59,7 @@ static unsigned int mx27pdk_pins[] = {
PF23_AIN_FEC_TX_EN, PF23_AIN_FEC_TX_EN,
}; };
static struct imxuart_platform_data uart_pdata = { static const struct imxuart_platform_data uart_pdata __initconst = {
.flags = IMXUART_HAVE_RTSCTS, .flags = IMXUART_HAVE_RTSCTS,
}; };
...@@ -71,7 +71,7 @@ static void __init mx27pdk_init(void) ...@@ -71,7 +71,7 @@ static void __init mx27pdk_init(void)
{ {
mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins), mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins),
"mx27pdk"); "mx27pdk");
mxc_register_device(&imx2x_uart_device0, &uart_pdata); imx27_add_imx_uart0(&uart_pdata);
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
} }
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/gpio.h> #include <mach/gpio.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include <mach/mxc_nand.h> #include <mach/mxc_nand.h>
#include <mach/imxfb.h> #include <mach/imxfb.h>
...@@ -289,20 +288,8 @@ static struct platform_device *platform_devices[] __initdata = { ...@@ -289,20 +288,8 @@ static struct platform_device *platform_devices[] __initdata = {
&mxc_w1_master_device, &mxc_w1_master_device,
}; };
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,
}, {
.flags = IMXUART_HAVE_RTSCTS,
}, {
.flags = IMXUART_HAVE_RTSCTS,
}, {
.flags = IMXUART_HAVE_RTSCTS,
}, {
.flags = IMXUART_HAVE_RTSCTS,
},
}; };
static void __init mx27ads_board_init(void) static void __init mx27ads_board_init(void)
...@@ -310,12 +297,12 @@ static void __init mx27ads_board_init(void) ...@@ -310,12 +297,12 @@ static void __init mx27ads_board_init(void)
mxc_gpio_setup_multiple_pins(mx27ads_pins, ARRAY_SIZE(mx27ads_pins), mxc_gpio_setup_multiple_pins(mx27ads_pins, ARRAY_SIZE(mx27ads_pins),
"mx27ads"); "mx27ads");
mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]); imx27_add_imx_uart0(&uart_pdata);
mxc_register_device(&imx2x_uart_device1, &uart_pdata[1]); imx27_add_imx_uart1(&uart_pdata);
mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]); imx27_add_imx_uart2(&uart_pdata);
mxc_register_device(&imx2x_uart_device3, &uart_pdata[3]); imx27_add_imx_uart3(&uart_pdata);
mxc_register_device(&imx2x_uart_device4, &uart_pdata[4]); imx27_add_imx_uart4(&uart_pdata);
mxc_register_device(&imx2x_uart_device5, &uart_pdata[5]); imx27_add_imx_uart5(&uart_pdata);
imx27_add_mxc_nand(&mx27ads_nand_board_info); imx27_add_mxc_nand(&mx27ads_nand_board_info);
/* only the i2c master 1 is used on this CPU card */ /* only the i2c master 1 is used on this CPU card */
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include <mach/mxc_nand.h> #include <mach/mxc_nand.h>
#include <linux/i2c/pca953x.h> #include <linux/i2c/pca953x.h>
...@@ -236,14 +235,8 @@ static struct platform_device *platform_devices[] __initdata = { ...@@ -236,14 +235,8 @@ static struct platform_device *platform_devices[] __initdata = {
&mxc_fec_device, &mxc_fec_device,
}; };
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,
}, {
.flags = IMXUART_HAVE_RTSCTS,
},
}; };
static void __init mxt_td60_board_init(void) static void __init mxt_td60_board_init(void)
...@@ -251,9 +244,9 @@ static void __init mxt_td60_board_init(void) ...@@ -251,9 +244,9 @@ static void __init mxt_td60_board_init(void)
mxc_gpio_setup_multiple_pins(mxt_td60_pins, ARRAY_SIZE(mxt_td60_pins), mxc_gpio_setup_multiple_pins(mxt_td60_pins, ARRAY_SIZE(mxt_td60_pins),
"MXT_TD60"); "MXT_TD60");
mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]); imx27_add_imx_uart0(&uart_pdata);
mxc_register_device(&imx2x_uart_device1, &uart_pdata[1]); imx27_add_imx_uart1(&uart_pdata);
mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]); imx27_add_imx_uart2(&uart_pdata);
imx27_add_mxc_nand(&mxt_td60_nand_board_info); imx27_add_mxc_nand(&mxt_td60_nand_board_info);
i2c_register_board_info(0, mxt_td60_i2c_devices, i2c_register_board_info(0, mxt_td60_i2c_devices,
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <mach/imx-uart.h>
#include <mach/audmux.h> #include <mach/audmux.h>
#include <mach/ssi.h> #include <mach/ssi.h>
#include <mach/mxc_nand.h> #include <mach/mxc_nand.h>
...@@ -130,7 +129,7 @@ static int pca100_pins[] = { ...@@ -130,7 +129,7 @@ static int pca100_pins[] = {
PD26_AF_USBH2_DATA5, PD26_AF_USBH2_DATA5,
}; };
static struct imxuart_platform_data uart_pdata = { static const struct imxuart_platform_data uart_pdata __initconst = {
.flags = IMXUART_HAVE_RTSCTS, .flags = IMXUART_HAVE_RTSCTS,
}; };
...@@ -318,7 +317,7 @@ static void __init pca100_init(void) ...@@ -318,7 +317,7 @@ static void __init pca100_init(void)
mxc_register_device(&imx_ssi_device0, &pca100_ssi_pdata); mxc_register_device(&imx_ssi_device0, &pca100_ssi_pdata);
mxc_register_device(&imx2x_uart_device0, &uart_pdata); imx27_add_imx_uart0(&uart_pdata);
mxc_gpio_mode(GPIO_PORTC | 29 | GPIO_GPIO | GPIO_IN); mxc_gpio_mode(GPIO_PORTC | 29 | GPIO_GPIO | GPIO_IN);
mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata); mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata);
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
#include <mach/common.h> #include <mach/common.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/iomux-mx27.h> #include <mach/iomux-mx27.h>
#include <mach/imx-uart.h>
#include <mach/mxc_nand.h> #include <mach/mxc_nand.h>
#include <mach/mxc_ehci.h> #include <mach/mxc_ehci.h>
#include <mach/ulpi.h> #include <mach/ulpi.h>
...@@ -161,14 +160,8 @@ static struct platform_device pcm038_nor_mtd_device = { ...@@ -161,14 +160,8 @@ static struct platform_device pcm038_nor_mtd_device = {
.resource = &pcm038_flash_resource, .resource = &pcm038_flash_resource,
}; };
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,
}, {
.flags = IMXUART_HAVE_RTSCTS,
},
}; };
static const struct mxc_nand_platform_data static const struct mxc_nand_platform_data
...@@ -305,9 +298,9 @@ static void __init pcm038_init(void) ...@@ -305,9 +298,9 @@ static void __init pcm038_init(void)
pcm038_init_sram(); pcm038_init_sram();
mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]); imx27_add_imx_uart0(&uart_pdata);
mxc_register_device(&imx2x_uart_device1, &uart_pdata[1]); imx27_add_imx_uart1(&uart_pdata);
mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]); imx27_add_imx_uart2(&uart_pdata);
mxc_gpio_mode(PE16_AF_OWIRE); mxc_gpio_mode(PE16_AF_OWIRE);
imx27_add_mxc_nand(&pcm038_nand_board_info); imx27_add_mxc_nand(&pcm038_nand_board_info);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment