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

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
...@@ -30,6 +30,7 @@ ...@@ -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 = { ...@@ -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 = { ...@@ -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);
} }
......
...@@ -39,6 +39,7 @@ ...@@ -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 = { ...@@ -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[] = { ...@@ -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 = { ...@@ -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 = { ...@@ -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,
...@@ -409,15 +407,15 @@ static struct omap_lcd_config h2_lcd_config __initdata = { ...@@ -409,15 +407,15 @@ static struct omap_lcd_config h2_lcd_config __initdata = {
}; };
static struct omap_board_config_kernel h2_config[] __initdata = { static struct omap_board_config_kernel h2_config[] __initdata = {
{ OMAP_TAG_USB, &h2_usb_config }, { OMAP_TAG_USB, &h2_usb_config },
{ OMAP_TAG_MMC, &h2_mmc_config }, { OMAP_TAG_MMC, &h2_mmc_config },
{ OMAP_TAG_UART, &h2_uart_config }, { OMAP_TAG_UART, &h2_uart_config },
{ OMAP_TAG_LCD, &h2_lcd_config }, { OMAP_TAG_LCD, &h2_lcd_config },
}; };
#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) ...@@ -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);
......
...@@ -42,6 +42,7 @@ ...@@ -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[] = { ...@@ -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[] = { ...@@ -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);
} }
......
...@@ -30,6 +30,7 @@ ...@@ -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 = { ...@@ -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 = { ...@@ -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);
} }
......
/*
* 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;
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment