[PATCH] pxa/vpac270: Add OneNAND support
Eric Miao
eric.y.miao at gmail.com
Tue May 4 10:44:58 EDT 2010
On Sat, May 1, 2010 at 12:54 PM, Marek Vasut <marek.vasut at gmail.com> wrote:
> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
Applied.
> ---
> arch/arm/mach-pxa/vpac270.c | 51 ++++++++++++++++++++++++++++++++++++++++--
> 1 files changed, 48 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c
> index a87bad5..8da22d4 100644
> --- a/arch/arm/mach-pxa/vpac270.c
> +++ b/arch/arm/mach-pxa/vpac270.c
> @@ -21,6 +21,7 @@
> #include <linux/mtd/mtd.h>
> #include <linux/mtd/partitions.h>
> #include <linux/mtd/physmap.h>
> +#include <linux/mtd/onenand.h>
> #include <linux/dm9000.h>
> #include <linux/ucb1400.h>
> #include <linux/ata_platform.h>
> @@ -149,7 +150,7 @@ static unsigned long vpac270_pin_config[] __initdata = {
> * NOR Flash
> ******************************************************************************/
> #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
> -static struct mtd_partition vpac270_partitions[] = {
> +static struct mtd_partition vpac270_nor_partitions[] = {
> {
> .name = "Flash",
> .offset = 0x00000000,
> @@ -160,8 +161,8 @@ static struct mtd_partition vpac270_partitions[] = {
> static struct physmap_flash_data vpac270_flash_data[] = {
> {
> .width = 2, /* bankwidth in bytes */
> - .parts = vpac270_partitions,
> - .nr_parts = ARRAY_SIZE(vpac270_partitions)
> + .parts = vpac270_nor_partitions,
> + .nr_parts = ARRAY_SIZE(vpac270_nor_partitions)
> }
> };
>
> @@ -189,6 +190,49 @@ static inline void vpac270_nor_init(void) {}
> #endif
>
> /******************************************************************************
> + * OneNAND Flash
> + ******************************************************************************/
> +#if defined(CONFIG_MTD_ONENAND) || defined(CONFIG_MTD_ONENAND_MODULE)
> +static struct mtd_partition vpac270_onenand_partitions[] = {
> + {
> + .name = "Flash",
> + .offset = 0x00000000,
> + .size = MTDPART_SIZ_FULL,
> + }
> +};
> +
> +static struct onenand_platform_data vpac270_onenand_info = {
> + .parts = vpac270_onenand_partitions,
> + .nr_parts = ARRAY_SIZE(vpac270_onenand_partitions),
> +};
> +
> +static struct resource vpac270_onenand_resources[] = {
> + [0] = {
> + .start = PXA_CS0_PHYS,
> + .end = PXA_CS0_PHYS + SZ_1M,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +static struct platform_device vpac270_onenand = {
> + .name = "onenand-flash",
> + .id = -1,
> + .resource = vpac270_onenand_resources,
> + .num_resources = ARRAY_SIZE(vpac270_onenand_resources),
> + .dev = {
> + .platform_data = &vpac270_onenand_info,
> + },
> +};
> +
> +static void __init vpac270_onenand_init(void)
> +{
> + platform_device_register(&vpac270_onenand);
> +}
> +#else
> +static void __init vpac270_onenand_init(void) {}
> +#endif
> +
> +/******************************************************************************
> * SD/MMC card controller
> ******************************************************************************/
> #if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
> @@ -549,6 +593,7 @@ static void __init vpac270_init(void)
> vpac270_lcd_init();
> vpac270_mmc_init();
> vpac270_nor_init();
> + vpac270_onenand_init();
> vpac270_leds_init();
> vpac270_keys_init();
> vpac270_uhc_init();
> --
> 1.7.0
>
>
More information about the linux-arm-kernel
mailing list