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

Make use of new mechanism to register a nand device.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
Uwe Kleine-König 2010-06-16 11:17:45 +02:00
parent 66384eedd9
commit 1f8d721cd3
5 changed files with 18 additions and 9 deletions

View file

@ -68,6 +68,7 @@ comment "MX21 platforms:"
config MACH_MX21ADS config MACH_MX21ADS
bool "MX21ADS platform" bool "MX21ADS platform"
select IMX_HAVE_PLATFORM_MXC_NAND
help help
Include support for MX21ADS platform. This includes specific Include support for MX21ADS platform. This includes specific
configurations for the board and its peripherals. configurations for the board and its peripherals.

View file

@ -0,0 +1,13 @@
/*
* 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/mx21.h>
#include <mach/devices-common.h>
#define imx21_add_mxc_nand(pdata) \
imx_add_mxc_nand_v1(MX21_NFC_BASE_ADDR, MX21_INT_NANDFC, pdata)

View file

@ -357,10 +357,6 @@ struct platform_device mxc_w1_master_device = {
.resource = pfx ## _nand_resources, \ .resource = pfx ## _nand_resources, \
} }
#ifdef CONFIG_MACH_MX21
DEFINE_MXC_NAND_DEVICE(imx21, MX21_NFC_BASE_ADDR, MX21_INT_NANDFC);
#endif
#ifdef CONFIG_MACH_MX27 #ifdef CONFIG_MACH_MX27
DEFINE_MXC_NAND_DEVICE(imx27, MX27_NFC_BASE_ADDR, MX27_INT_NANDFC); DEFINE_MXC_NAND_DEVICE(imx27, MX27_NFC_BASE_ADDR, MX27_INT_NANDFC);
#endif #endif

View file

@ -26,9 +26,6 @@ extern struct platform_device imx2x_uart_device4;
extern struct platform_device imx2x_uart_device5; extern struct platform_device imx2x_uart_device5;
#endif #endif
extern struct platform_device mxc_w1_master_device; extern struct platform_device mxc_w1_master_device;
#ifdef CONFIG_MACH_MX21
extern struct platform_device imx21_nand_device;
#endif
#ifdef CONFIG_MACH_MX27 #ifdef CONFIG_MACH_MX27
extern struct platform_device imx27_nand_device; extern struct platform_device imx27_nand_device;
#endif #endif

View file

@ -30,6 +30,7 @@
#include <mach/mxc_nand.h> #include <mach/mxc_nand.h>
#include <mach/mmc.h> #include <mach/mmc.h>
#include "devices-imx21.h"
#include "devices.h" #include "devices.h"
/* /*
@ -257,7 +258,8 @@ static struct imxmmc_platform_data mx21ads_sdhc_pdata = {
.exit = mx21ads_sdhc_exit, .exit = mx21ads_sdhc_exit,
}; };
static struct mxc_nand_platform_data mx21ads_nand_board_info = { static const struct mxc_nand_platform_data
mx21ads_nand_board_info __initconst = {
.width = 1, .width = 1,
.hw_ecc = 1, .hw_ecc = 1,
}; };
@ -298,7 +300,7 @@ static void __init mx21ads_board_init(void)
mxc_register_device(&imx2x_uart_device3, &uart_pdata); mxc_register_device(&imx2x_uart_device3, &uart_pdata);
mxc_register_device(&mxc_fb_device, &mx21ads_fb_data); mxc_register_device(&mxc_fb_device, &mx21ads_fb_data);
mxc_register_device(&mxc_sdhc_device0, &mx21ads_sdhc_pdata); mxc_register_device(&mxc_sdhc_device0, &mx21ads_sdhc_pdata);
mxc_register_device(&imx21_nand_device, &mx21ads_nand_board_info); imx21_add_mxc_nand(&mx21ads_nand_board_info);
platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
} }