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

Commit 78be6325 authored by Tony Lindgren's avatar Tony Lindgren
Browse files

ARM: OMAP1: Make omap1 boards to use omap_nand_platform_data



This patch adds omap_nand_platform data based on a patch
by Shahrom Sharif-Kashani <sshahrom@micron.com>, and makes
omap1 boards to use omap_nand_platform_data instead of
nand_platform_data used earlier.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 85d05fb3
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@
#include <asm/arch/gpio.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/mux.h>
#include <asm/arch/fpga.h>
#include <asm/arch/fpga.h>
#include <asm/arch/nand.h>
#include <asm/arch/keypad.h>
#include <asm/arch/keypad.h>
#include <asm/arch/common.h>
#include <asm/arch/common.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
@@ -134,7 +135,7 @@ static struct platform_device nor_device = {
	.resource	= &nor_resource,
	.resource	= &nor_resource,
};
};


static struct nand_platform_data nand_data = {
static struct omap_nand_platform_data nand_data = {
	.options	= NAND_SAMSUNG_LP_OPTIONS,
	.options	= NAND_SAMSUNG_LP_OPTIONS,
};
};


@@ -202,7 +203,7 @@ static struct platform_device *devices[] __initdata = {


#define P2_NAND_RB_GPIO_PIN	62
#define P2_NAND_RB_GPIO_PIN	62


static int nand_dev_ready(struct nand_platform_data *data)
static int nand_dev_ready(struct omap_nand_platform_data *data)
{
{
	return omap_get_gpio_datain(P2_NAND_RB_GPIO_PIN);
	return omap_get_gpio_datain(P2_NAND_RB_GPIO_PIN);
}
}
+6 −10
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@


#include <asm/arch/mux.h>
#include <asm/arch/mux.h>
#include <asm/arch/tc.h>
#include <asm/arch/tc.h>
#include <asm/arch/nand.h>
#include <asm/arch/irda.h>
#include <asm/arch/irda.h>
#include <asm/arch/usb.h>
#include <asm/arch/usb.h>
#include <asm/arch/keypad.h>
#include <asm/arch/keypad.h>
@@ -140,8 +141,6 @@ static struct platform_device h2_nor_device = {
	.resource	= &h2_nor_resource,
	.resource	= &h2_nor_resource,
};
};


#if 0	/* REVISIT: Enable when nand_platform_data is applied */

static struct mtd_partition h2_nand_partitions[] = {
static struct mtd_partition h2_nand_partitions[] = {
#if 0
#if 0
	/* REVISIT:  enable these partitions if you make NAND BOOT
	/* REVISIT:  enable these partitions if you make NAND BOOT
@@ -179,7 +178,7 @@ static struct mtd_partition h2_nand_partitions[] = {
};
};


/* dip switches control NAND chip access:  8 bit, 16 bit, or neither */
/* dip switches control NAND chip access:  8 bit, 16 bit, or neither */
static struct nand_platform_data h2_nand_data = {
static struct omap_nand_platform_data h2_nand_data = {
	.options	= NAND_SAMSUNG_LP_OPTIONS,
	.options	= NAND_SAMSUNG_LP_OPTIONS,
	.parts		= h2_nand_partitions,
	.parts		= h2_nand_partitions,
	.nr_parts	= ARRAY_SIZE(h2_nand_partitions),
	.nr_parts	= ARRAY_SIZE(h2_nand_partitions),
@@ -198,7 +197,6 @@ static struct platform_device h2_nand_device = {
	.num_resources	= 1,
	.num_resources	= 1,
	.resource	= &h2_nand_resource,
	.resource	= &h2_nand_resource,
};
};
#endif


static struct resource h2_smc91x_resources[] = {
static struct resource h2_smc91x_resources[] = {
	[0] = {
	[0] = {
@@ -335,7 +333,7 @@ static struct platform_device h2_mcbsp1_device = {


static struct platform_device *h2_devices[] __initdata = {
static struct platform_device *h2_devices[] __initdata = {
	&h2_nor_device,
	&h2_nor_device,
	//&h2_nand_device,
	&h2_nand_device,
	&h2_smc91x_device,
	&h2_smc91x_device,
	&h2_irda_device,
	&h2_irda_device,
	&h2_kp_device,
	&h2_kp_device,
@@ -417,7 +415,7 @@ static struct omap_board_config_kernel h2_config[] __initdata = {


#define H2_NAND_RB_GPIO_PIN	62
#define H2_NAND_RB_GPIO_PIN	62


static int h2_nand_dev_ready(struct nand_platform_data *data)
static int h2_nand_dev_ready(struct omap_nand_platform_data *data)
{
{
	return omap_get_gpio_datain(H2_NAND_RB_GPIO_PIN);
	return omap_get_gpio_datain(H2_NAND_RB_GPIO_PIN);
}
}
@@ -436,12 +434,10 @@ static void __init h2_init(void)
	h2_nor_resource.end = h2_nor_resource.start = omap_cs3_phys();
	h2_nor_resource.end = h2_nor_resource.start = omap_cs3_phys();
	h2_nor_resource.end += SZ_32M - 1;
	h2_nor_resource.end += SZ_32M - 1;


#if 0	/* REVISIT: Enable when nand_platform_data is applied */
	h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS;
	h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS;
	h2_nand_resource.end += SZ_4K - 1;
	h2_nand_resource.end += SZ_4K - 1;
	if (!(omap_request_gpio(H2_NAND_RB_GPIO_PIN)))
	if (!(omap_request_gpio(H2_NAND_RB_GPIO_PIN)))
		h2_nand_data.dev_ready = h2_nand_dev_ready;
		h2_nand_data.dev_ready = h2_nand_dev_ready;
#endif


	omap_cfg_reg(L3_1610_FLASH_CS2B_OE);
	omap_cfg_reg(L3_1610_FLASH_CS2B_OE);
	omap_cfg_reg(M8_1610_FLASH_CS2B_WE);
	omap_cfg_reg(M8_1610_FLASH_CS2B_WE);
+3 −2
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@
#include <asm/arch/irqs.h>
#include <asm/arch/irqs.h>
#include <asm/arch/mux.h>
#include <asm/arch/mux.h>
#include <asm/arch/tc.h>
#include <asm/arch/tc.h>
#include <asm/arch/nand.h>
#include <asm/arch/irda.h>
#include <asm/arch/irda.h>
#include <asm/arch/usb.h>
#include <asm/arch/usb.h>
#include <asm/arch/keypad.h>
#include <asm/arch/keypad.h>
@@ -179,7 +180,7 @@ static struct mtd_partition nand_partitions[] = {
};
};


/* dip switches control NAND chip access:  8 bit, 16 bit, or neither */
/* dip switches control NAND chip access:  8 bit, 16 bit, or neither */
static struct nand_platform_data nand_data = {
static struct omap_nand_platform_data nand_data = {
	.options	= NAND_SAMSUNG_LP_OPTIONS,
	.options	= NAND_SAMSUNG_LP_OPTIONS,
	.parts		= nand_partitions,
	.parts		= nand_partitions,
	.nr_parts	= ARRAY_SIZE(nand_partitions),
	.nr_parts	= ARRAY_SIZE(nand_partitions),
@@ -472,7 +473,7 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {


#define H3_NAND_RB_GPIO_PIN	10
#define H3_NAND_RB_GPIO_PIN	10


static int nand_dev_ready(struct nand_platform_data *data)
static int nand_dev_ready(struct omap_nand_platform_data *data)
{
{
	return omap_get_gpio_datain(H3_NAND_RB_GPIO_PIN);
	return omap_get_gpio_datain(H3_NAND_RB_GPIO_PIN);
}
}
+3 −2
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@
#include <asm/arch/gpio.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/mux.h>
#include <asm/arch/fpga.h>
#include <asm/arch/fpga.h>
#include <asm/arch/nand.h>
#include <asm/arch/keypad.h>
#include <asm/arch/keypad.h>
#include <asm/arch/common.h>
#include <asm/arch/common.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
@@ -133,7 +134,7 @@ static struct platform_device nor_device = {
	.resource	= &nor_resource,
	.resource	= &nor_resource,
};
};


static struct nand_platform_data nand_data = {
static struct omap_nand_platform_data nand_data = {
	.options	= NAND_SAMSUNG_LP_OPTIONS,
	.options	= NAND_SAMSUNG_LP_OPTIONS,
};
};


@@ -202,7 +203,7 @@ static struct platform_device *devices[] __initdata = {


#define P2_NAND_RB_GPIO_PIN	62
#define P2_NAND_RB_GPIO_PIN	62


static int nand_dev_ready(struct nand_platform_data *data)
static int nand_dev_ready(struct omap_nand_platform_data *data)
{
{
	return omap_get_gpio_datain(P2_NAND_RB_GPIO_PIN);
	return omap_get_gpio_datain(P2_NAND_RB_GPIO_PIN);
}
}
+24 −0
Original line number Original line Diff line number Diff line
/*
 * include/asm-arm/arch-omap/nand.h
 *
 * Copyright (C) 2006 Micron Technology Inc.
 *
 * 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 <linux/mtd/partitions.h>

struct omap_nand_platform_data {
	unsigned int		options;
	int			cs;
	int			gpio_irq;
	struct mtd_partition	*parts;
	int			nr_parts;
	int			(*nand_setup)(void __iomem *);
	int			(*dev_ready)(struct omap_nand_platform_data *);
	int			dma_channel;
	void __iomem		*gpmc_cs_baseaddr;
	void __iomem		*gpmc_baseaddr;
};