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 Original line Diff line number Diff line
@@ -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
	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
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
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
+13 −0
Original line number Original line 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 Original line Diff line number Diff line
@@ -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 = {
	.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 = {


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)
		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;
}
}
+2 −0
Original line number Original line 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_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;
+4 −3
Original line number Original line Diff line number Diff line
@@ -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 = {
/*
/*
 * 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)
			    &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);
Loading