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: Tony Lindgren <tony@atomide.com>
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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
include/asm-arm/arch-omap/nand.h
Normal file
24
include/asm-arm/arch-omap/nand.h
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
};
|
Reference in New Issue
Block a user