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

Commit 9c1db1a1 authored by Eric Miao's avatar Eric Miao Committed by Russell King
Browse files

[ARM] pxa: add pxa3xx NAND support for littleton



Signed-off-by: default avatarEric Miao <eric.miao@marvell.com>
Cc: Sergey Podstavin <spodstavin@ru.mvista.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 481b5526
Loading
Loading
Loading
Loading
+53 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@
#include <asm/arch/pxafb.h>
#include <asm/arch/pxafb.h>
#include <asm/arch/ssp.h>
#include <asm/arch/ssp.h>
#include <asm/arch/pxa27x_keypad.h>
#include <asm/arch/pxa27x_keypad.h>
#include <asm/arch/pxa3xx_nand.h>
#include <asm/arch/littleton.h>
#include <asm/arch/littleton.h>


#include "generic.h"
#include "generic.h"
@@ -361,6 +362,57 @@ static void __init littleton_init_keypad(void)
static inline void littleton_init_keypad(void) {}
static inline void littleton_init_keypad(void) {}
#endif
#endif


#if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE)
static struct mtd_partition littleton_nand_partitions[] = {
	[0] = {
		.name        = "Bootloader",
		.offset      = 0,
		.size        = 0x060000,
		.mask_flags  = MTD_WRITEABLE, /* force read-only */
	},
	[1] = {
		.name        = "Kernel",
		.offset      = 0x060000,
		.size        = 0x200000,
		.mask_flags  = MTD_WRITEABLE, /* force read-only */
	},
	[2] = {
		.name        = "Filesystem",
		.offset      = 0x0260000,
		.size        = 0x3000000,     /* 48M - rootfs */
	},
	[3] = {
		.name        = "MassStorage",
		.offset      = 0x3260000,
		.size        = 0x3d40000,
	},
	[4] = {
		.name        = "BBT",
		.offset      = 0x6FA0000,
		.size        = 0x80000,
		.mask_flags  = MTD_WRITEABLE,  /* force read-only */
	},
	/* NOTE: we reserve some blocks at the end of the NAND flash for
	 * bad block management, and the max number of relocation blocks
	 * differs on different platforms. Please take care with it when
	 * defining the partition table.
	 */
};

static struct pxa3xx_nand_platform_data littleton_nand_info = {
	.enable_arbiter	= 1,
	.parts		= littleton_nand_partitions,
	.nr_parts	= ARRAY_SIZE(littleton_nand_partitions),
};

static void __init littleton_init_nand(void)
{
	pxa3xx_set_nand_info(&littleton_nand_info);
}
#else
static inline void littleton_init_nand(void) {}
#endif /* CONFIG_MTD_NAND_PXA3xx || CONFIG_MTD_NAND_PXA3xx_MODULE */

static void __init littleton_init(void)
static void __init littleton_init(void)
{
{
	/* initialize MFP configurations */
	/* initialize MFP configurations */
@@ -374,6 +426,7 @@ static void __init littleton_init(void)


	littleton_init_lcd();
	littleton_init_lcd();
	littleton_init_keypad();
	littleton_init_keypad();
	littleton_init_nand();
}
}


MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)")
MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)")