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

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

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
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ config MACH_MX31ADS_WM1133_EV1
config MACH_PCM037
	bool "Support Phytec pcm037 (i.MX31) platforms"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_MXC_NAND
	select MXC_ULPI if USB_ULPI
	help
	  Include support for Phytec pcm037 platform. This includes
@@ -51,6 +52,7 @@ config MACH_MX31LITE
	bool "Support MX31 LITEKIT (LogicPD)"
	select ARCH_MX31
	select MXC_ULPI if USB_ULPI
	select IMX_HAVE_PLATFORM_MXC_NAND
	help
	  Include support for MX31 LITEKIT platform. This includes specific
	  configurations for the board and its peripherals.
@@ -58,6 +60,7 @@ config MACH_MX31LITE
config MACH_MX31_3DS
	bool "Support MX31PDK (3DS)"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_MXC_NAND
	help
	  Include support for MX31PDK (3DS) platform. This includes specific
	  configurations for the board and its peripherals.
@@ -105,6 +108,7 @@ config MACH_PCM043
config MACH_ARMADILLO5X0
	bool "Support Atmark Armadillo-500 Development Base Board"
	select ARCH_MX31
	select IMX_HAVE_PLATFORM_MXC_NAND
	select MXC_ULPI if USB_ULPI
	help
	  Include support for Atmark Armadillo-500 platform. This includes
+13 −0
Original line number Diff line number Diff line
/*
 * 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)
+6 −2
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ struct platform_device mxc_w1_master_device = {
	.resource = mxc_w1_master_resources,
};

#if defined(CONFIG_ARCH_MX35)
static struct resource mxc_nand_resources[] = {
	{
		.start	= 0, /* runtime dependent */
@@ -185,6 +186,7 @@ struct platform_device mxc_nand_device = {
	.num_resources = ARRAY_SIZE(mxc_nand_resources),
	.resource = mxc_nand_resources,
};
#endif

static struct resource mxc_i2c0_resources[] = {
	{
@@ -628,13 +630,14 @@ struct platform_device imx_kpp_device = {

static int __init mx3_devices_init(void)
{
#if defined(CONFIG_ARCH_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].end = MX31_WDOG_BASE_ADDR + 0x3fff;
		mxc_register_device(&mxc_rnga_device, NULL);
	}
#endif
#if defined(CONFIG_ARCH_MX35)
	if (cpu_is_mx35()) {
		mxc_nand_resources[0].start = MX35_NFC_BASE_ADDR;
		mxc_nand_resources[0].end = MX35_NFC_BASE_ADDR + 0x1fff;
@@ -653,6 +656,7 @@ static int __init mx3_devices_init(void)
		imx_wdt_resources[0].start = MX35_WDOG_BASE_ADDR;
		imx_wdt_resources[0].end = MX35_WDOG_BASE_ADDR + 0x3fff;
	}
#endif

	return 0;
}
+2 −0
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@ extern struct platform_device mxc_uart_device2;
extern struct platform_device mxc_uart_device3;
extern struct platform_device mxc_uart_device4;
extern struct platform_device mxc_w1_master_device;
#if defined(CONFIG_ARCH_MX35)
extern struct platform_device mxc_nand_device;
#endif
extern struct platform_device mxc_i2c_device0;
extern struct platform_device mxc_i2c_device1;
extern struct platform_device mxc_i2c_device2;
+4 −3
Original line number Diff line number Diff line
@@ -53,10 +53,10 @@
#include <mach/mmc.h>
#include <mach/ipu.h>
#include <mach/mx3fb.h>
#include <mach/mxc_nand.h>
#include <mach/mxc_ehci.h>
#include <mach/ulpi.h>

#include "devices-imx31.h"
#include "devices.h"
#include "crm_regs.h"

@@ -300,7 +300,8 @@ static struct platform_device armadillo5x0_button_device = {
/*
 * 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,
	.hw_ecc		= 1,
};
@@ -531,7 +532,7 @@ static void __init armadillo5x0_init(void)
			    &armadillo5x0_nor_flash_pdata);

	/* 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 */
	__raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR);
Loading