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

ARM: imx: Change the way nand devices are registered (imx31)

Make use of new mechanism to register a nand device.
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent 0e7a29a8
...@@ -34,6 +34,7 @@ config MACH_MX31ADS_WM1133_EV1 ...@@ -34,6 +34,7 @@ config MACH_MX31ADS_WM1133_EV1
config MACH_PCM037 config MACH_PCM037
bool "Support Phytec pcm037 (i.MX31) platforms" bool "Support Phytec pcm037 (i.MX31) platforms"
select ARCH_MX31 select ARCH_MX31
select IMX_HAVE_PLATFORM_MXC_NAND
select MXC_ULPI if USB_ULPI select MXC_ULPI if USB_ULPI
help help
Include support for Phytec pcm037 platform. This includes Include support for Phytec pcm037 platform. This includes
...@@ -51,6 +52,7 @@ config MACH_MX31LITE ...@@ -51,6 +52,7 @@ config MACH_MX31LITE
bool "Support MX31 LITEKIT (LogicPD)" bool "Support MX31 LITEKIT (LogicPD)"
select ARCH_MX31 select ARCH_MX31
select MXC_ULPI if USB_ULPI select MXC_ULPI if USB_ULPI
select IMX_HAVE_PLATFORM_MXC_NAND
help help
Include support for MX31 LITEKIT platform. This includes specific Include support for MX31 LITEKIT platform. This includes specific
configurations for the board and its peripherals. configurations for the board and its peripherals.
...@@ -58,6 +60,7 @@ config MACH_MX31LITE ...@@ -58,6 +60,7 @@ config MACH_MX31LITE
config MACH_MX31_3DS config MACH_MX31_3DS
bool "Support MX31PDK (3DS)" bool "Support MX31PDK (3DS)"
select ARCH_MX31 select ARCH_MX31
select IMX_HAVE_PLATFORM_MXC_NAND
help help
Include support for MX31PDK (3DS) platform. This includes specific Include support for MX31PDK (3DS) platform. This includes specific
configurations for the board and its peripherals. configurations for the board and its peripherals.
...@@ -105,6 +108,7 @@ config MACH_PCM043 ...@@ -105,6 +108,7 @@ config MACH_PCM043
config MACH_ARMADILLO5X0 config MACH_ARMADILLO5X0
bool "Support Atmark Armadillo-500 Development Base Board" bool "Support Atmark Armadillo-500 Development Base Board"
select ARCH_MX31 select ARCH_MX31
select IMX_HAVE_PLATFORM_MXC_NAND
select MXC_ULPI if USB_ULPI select MXC_ULPI if USB_ULPI
help help
Include support for Atmark Armadillo-500 platform. This includes Include support for Atmark Armadillo-500 platform. This includes
......
/*
* Copyright (C) 2010 Pengutronix
* Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 2 as published by the
* Free Software Foundation.
*/
#include <mach/mx31.h>
#include <mach/devices-common.h>
#define imx31_add_mxc_nand(pdata) \
imx_add_mxc_nand_v1(MX31_NFC_BASE_ADDR, MX31_INT_NANDFC, pdata)
...@@ -167,6 +167,7 @@ struct platform_device mxc_w1_master_device = { ...@@ -167,6 +167,7 @@ struct platform_device mxc_w1_master_device = {
.resource = mxc_w1_master_resources, .resource = mxc_w1_master_resources,
}; };
#if defined(CONFIG_ARCH_MX35)
static struct resource mxc_nand_resources[] = { static struct resource mxc_nand_resources[] = {
{ {
.start = 0, /* runtime dependent */ .start = 0, /* runtime dependent */
...@@ -185,6 +186,7 @@ struct platform_device mxc_nand_device = { ...@@ -185,6 +186,7 @@ struct platform_device mxc_nand_device = {
.num_resources = ARRAY_SIZE(mxc_nand_resources), .num_resources = ARRAY_SIZE(mxc_nand_resources),
.resource = mxc_nand_resources, .resource = mxc_nand_resources,
}; };
#endif
static struct resource mxc_i2c0_resources[] = { static struct resource mxc_i2c0_resources[] = {
{ {
...@@ -628,13 +630,14 @@ struct platform_device imx_kpp_device = { ...@@ -628,13 +630,14 @@ struct platform_device imx_kpp_device = {
static int __init mx3_devices_init(void) static int __init mx3_devices_init(void)
{ {
#if defined(CONFIG_ARCH_MX31)
if (cpu_is_mx31()) { if (cpu_is_mx31()) {
mxc_nand_resources[0].start = MX31_NFC_BASE_ADDR;
mxc_nand_resources[0].end = MX31_NFC_BASE_ADDR + 0xfff;
imx_wdt_resources[0].start = MX31_WDOG_BASE_ADDR; imx_wdt_resources[0].start = MX31_WDOG_BASE_ADDR;
imx_wdt_resources[0].end = MX31_WDOG_BASE_ADDR + 0x3fff; imx_wdt_resources[0].end = MX31_WDOG_BASE_ADDR + 0x3fff;
mxc_register_device(&mxc_rnga_device, NULL); mxc_register_device(&mxc_rnga_device, NULL);
} }
#endif
#if defined(CONFIG_ARCH_MX35)
if (cpu_is_mx35()) { if (cpu_is_mx35()) {
mxc_nand_resources[0].start = MX35_NFC_BASE_ADDR; mxc_nand_resources[0].start = MX35_NFC_BASE_ADDR;
mxc_nand_resources[0].end = MX35_NFC_BASE_ADDR + 0x1fff; mxc_nand_resources[0].end = MX35_NFC_BASE_ADDR + 0x1fff;
...@@ -653,6 +656,7 @@ static int __init mx3_devices_init(void) ...@@ -653,6 +656,7 @@ static int __init mx3_devices_init(void)
imx_wdt_resources[0].start = MX35_WDOG_BASE_ADDR; imx_wdt_resources[0].start = MX35_WDOG_BASE_ADDR;
imx_wdt_resources[0].end = MX35_WDOG_BASE_ADDR + 0x3fff; imx_wdt_resources[0].end = MX35_WDOG_BASE_ADDR + 0x3fff;
} }
#endif
return 0; return 0;
} }
......
...@@ -5,7 +5,9 @@ extern struct platform_device mxc_uart_device2; ...@@ -5,7 +5,9 @@ extern struct platform_device mxc_uart_device2;
extern struct platform_device mxc_uart_device3; extern struct platform_device mxc_uart_device3;
extern struct platform_device mxc_uart_device4; extern struct platform_device mxc_uart_device4;
extern struct platform_device mxc_w1_master_device; extern struct platform_device mxc_w1_master_device;
#if defined(CONFIG_ARCH_MX35)
extern struct platform_device mxc_nand_device; extern struct platform_device mxc_nand_device;
#endif
extern struct platform_device mxc_i2c_device0; extern struct platform_device mxc_i2c_device0;
extern struct platform_device mxc_i2c_device1; extern struct platform_device mxc_i2c_device1;
extern struct platform_device mxc_i2c_device2; extern struct platform_device mxc_i2c_device2;
......
...@@ -53,10 +53,10 @@ ...@@ -53,10 +53,10 @@
#include <mach/mmc.h> #include <mach/mmc.h>
#include <mach/ipu.h> #include <mach/ipu.h>
#include <mach/mx3fb.h> #include <mach/mx3fb.h>
#include <mach/mxc_nand.h>
#include <mach/mxc_ehci.h> #include <mach/mxc_ehci.h>
#include <mach/ulpi.h> #include <mach/ulpi.h>
#include "devices-imx31.h"
#include "devices.h" #include "devices.h"
#include "crm_regs.h" #include "crm_regs.h"
...@@ -300,7 +300,8 @@ static struct platform_device armadillo5x0_button_device = { ...@@ -300,7 +300,8 @@ static struct platform_device armadillo5x0_button_device = {
/* /*
* NAND Flash * NAND Flash
*/ */
static struct mxc_nand_platform_data armadillo5x0_nand_flash_pdata = { static const struct mxc_nand_platform_data
armadillo5x0_nand_board_info __initconst = {
.width = 1, .width = 1,
.hw_ecc = 1, .hw_ecc = 1,
}; };
...@@ -531,7 +532,7 @@ static void __init armadillo5x0_init(void) ...@@ -531,7 +532,7 @@ static void __init armadillo5x0_init(void)
&armadillo5x0_nor_flash_pdata); &armadillo5x0_nor_flash_pdata);
/* Register NAND Flash */ /* Register NAND Flash */
mxc_register_device(&mxc_nand_device, &armadillo5x0_nand_flash_pdata); imx31_add_mxc_nand(&armadillo5x0_nand_board_info);
/* set NAND page size to 2k if not configured via boot mode pins */ /* set NAND page size to 2k if not configured via boot mode pins */
__raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR); __raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR);
......
...@@ -35,8 +35,9 @@ ...@@ -35,8 +35,9 @@
#include <mach/common.h> #include <mach/common.h>
#include <mach/imx-uart.h> #include <mach/imx-uart.h>
#include <mach/iomux-mx3.h> #include <mach/iomux-mx3.h>
#include <mach/mxc_nand.h>
#include <mach/spi.h> #include <mach/spi.h>
#include "devices-imx31.h"
#include "devices.h" #include "devices.h"
/* Definitions for components on the Debug board */ /* Definitions for components on the Debug board */
...@@ -189,7 +190,8 @@ static struct spi_board_info mx31_3ds_spi_devs[] __initdata = { ...@@ -189,7 +190,8 @@ static struct spi_board_info mx31_3ds_spi_devs[] __initdata = {
/* /*
* NAND Flash * NAND Flash
*/ */
static struct mxc_nand_platform_data imx31_3ds_nand_flash_pdata = { static const struct mxc_nand_platform_data
mx31_3ds_nand_board_info __initconst = {
.width = 1, .width = 1,
.hw_ecc = 1, .hw_ecc = 1,
#ifdef MACH_MX31_3DS_MXC_NAND_USE_BBT #ifdef MACH_MX31_3DS_MXC_NAND_USE_BBT
...@@ -415,7 +417,7 @@ static void __init mxc_board_init(void) ...@@ -415,7 +417,7 @@ static void __init mxc_board_init(void)
"mx31_3ds"); "mx31_3ds");
mxc_register_device(&mxc_uart_device0, &uart_pdata); mxc_register_device(&mxc_uart_device0, &uart_pdata);
mxc_register_device(&mxc_nand_device, &imx31_3ds_nand_flash_pdata); imx31_add_mxc_nand(&mx31_3ds_nand_board_info);
mxc_register_device(&mxc_spi_device1, &spi1_pdata); mxc_register_device(&mxc_spi_device1, &spi1_pdata);
spi_register_board_info(mx31_3ds_spi_devs, spi_register_board_info(mx31_3ds_spi_devs,
......
...@@ -41,11 +41,11 @@ ...@@ -41,11 +41,11 @@
#include <mach/imx-uart.h> #include <mach/imx-uart.h>
#include <mach/iomux-mx3.h> #include <mach/iomux-mx3.h>
#include <mach/irqs.h> #include <mach/irqs.h>
#include <mach/mxc_nand.h>
#include <mach/spi.h> #include <mach/spi.h>
#include <mach/mxc_ehci.h> #include <mach/mxc_ehci.h>
#include <mach/ulpi.h> #include <mach/ulpi.h>
#include "devices-imx31.h"
#include "devices.h" #include "devices.h"
/* /*
...@@ -65,7 +65,8 @@ static unsigned int mx31lite_pins[] = { ...@@ -65,7 +65,8 @@ static unsigned int mx31lite_pins[] = {
MX31_PIN_CSPI2_SS2__SS2, MX31_PIN_CSPI2_SS2__SS2,
}; };
static struct mxc_nand_platform_data mx31lite_nand_board_info = { static const struct mxc_nand_platform_data
mx31lite_nand_board_info __initconst = {
.width = 1, .width = 1,
.hw_ecc = 1, .hw_ecc = 1,
}; };
...@@ -249,7 +250,7 @@ static void __init mxc_board_init(void) ...@@ -249,7 +250,7 @@ static void __init mxc_board_init(void)
/* NOR and NAND flash */ /* NOR and NAND flash */
platform_device_register(&physmap_flash_device); platform_device_register(&physmap_flash_device);
mxc_register_device(&mxc_nand_device, &mx31lite_nand_board_info); imx31_add_mxc_nand(&mx31lite_nand_board_info);
mxc_register_device(&mxc_spi_device1, &spi1_pdata); mxc_register_device(&mxc_spi_device1, &spi1_pdata);
spi_register_board_info(&mc13783_spi_dev, 1); spi_register_board_info(&mc13783_spi_dev, 1);
......
...@@ -48,10 +48,10 @@ ...@@ -48,10 +48,10 @@
#include <mach/mmc.h> #include <mach/mmc.h>
#include <mach/mx3_camera.h> #include <mach/mx3_camera.h>
#include <mach/mx3fb.h> #include <mach/mx3fb.h>
#include <mach/mxc_nand.h>
#include <mach/mxc_ehci.h> #include <mach/mxc_ehci.h>
#include <mach/ulpi.h> #include <mach/ulpi.h>
#include "devices-imx31.h"
#include "devices.h" #include "devices.h"
#include "pcm037.h" #include "pcm037.h"
...@@ -274,7 +274,8 @@ static struct platform_device pcm037_sram_device = { ...@@ -274,7 +274,8 @@ static struct platform_device pcm037_sram_device = {
.resource = &pcm038_sram_resource, .resource = &pcm038_sram_resource,
}; };
static struct mxc_nand_platform_data pcm037_nand_board_info = { static const struct mxc_nand_platform_data
pcm037_nand_board_info __initconst = {
.width = 1, .width = 1,
.hw_ecc = 1, .hw_ecc = 1,
}; };
...@@ -632,7 +633,7 @@ static void __init mxc_board_init(void) ...@@ -632,7 +633,7 @@ static void __init mxc_board_init(void)
mxc_register_device(&mxc_i2c_device1, &pcm037_i2c_1_data); mxc_register_device(&mxc_i2c_device1, &pcm037_i2c_1_data);
mxc_register_device(&mxc_i2c_device2, &pcm037_i2c_2_data); mxc_register_device(&mxc_i2c_device2, &pcm037_i2c_2_data);
mxc_register_device(&mxc_nand_device, &pcm037_nand_board_info); imx31_add_mxc_nand(&pcm037_nand_board_info);
mxc_register_device(&mxcsdhc_device0, &sdhc_pdata); mxc_register_device(&mxcsdhc_device0, &sdhc_pdata);
mxc_register_device(&mx3_ipu, &mx3_ipu_data); mxc_register_device(&mx3_ipu, &mx3_ipu_data);
mxc_register_device(&mx3_fb, &mx3fb_pdata); mxc_register_device(&mx3_fb, &mx3fb_pdata);
......
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