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:
		
							parent
							
								
									85d05fb3fd
								
							
						
					
					
						commit
						78be63252b
					
				| @ -30,6 +30,7 @@ | ||||
| #include <asm/arch/gpio.h> | ||||
| #include <asm/arch/mux.h> | ||||
| #include <asm/arch/fpga.h> | ||||
| #include <asm/arch/nand.h> | ||||
| #include <asm/arch/keypad.h> | ||||
| #include <asm/arch/common.h> | ||||
| #include <asm/arch/board.h> | ||||
| @ -134,7 +135,7 @@ static struct platform_device nor_device = { | ||||
| 	.resource	= &nor_resource, | ||||
| }; | ||||
| 
 | ||||
| static struct nand_platform_data nand_data = { | ||||
| static struct omap_nand_platform_data nand_data = { | ||||
| 	.options	= NAND_SAMSUNG_LP_OPTIONS, | ||||
| }; | ||||
| 
 | ||||
| @ -202,7 +203,7 @@ static struct platform_device *devices[] __initdata = { | ||||
| 
 | ||||
| #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); | ||||
| } | ||||
|  | ||||
| @ -39,6 +39,7 @@ | ||||
| 
 | ||||
| #include <asm/arch/mux.h> | ||||
| #include <asm/arch/tc.h> | ||||
| #include <asm/arch/nand.h> | ||||
| #include <asm/arch/irda.h> | ||||
| #include <asm/arch/usb.h> | ||||
| #include <asm/arch/keypad.h> | ||||
| @ -140,8 +141,6 @@ static struct platform_device h2_nor_device = { | ||||
| 	.resource	= &h2_nor_resource, | ||||
| }; | ||||
| 
 | ||||
| #if 0	/* REVISIT: Enable when nand_platform_data is applied */
 | ||||
| 
 | ||||
| static struct mtd_partition h2_nand_partitions[] = { | ||||
| #if 0 | ||||
| 	/* 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 */ | ||||
| static struct nand_platform_data h2_nand_data = { | ||||
| static struct omap_nand_platform_data h2_nand_data = { | ||||
| 	.options	= NAND_SAMSUNG_LP_OPTIONS, | ||||
| 	.parts		= h2_nand_partitions, | ||||
| 	.nr_parts	= ARRAY_SIZE(h2_nand_partitions), | ||||
| @ -198,7 +197,6 @@ static struct platform_device h2_nand_device = { | ||||
| 	.num_resources	= 1, | ||||
| 	.resource	= &h2_nand_resource, | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| static struct resource h2_smc91x_resources[] = { | ||||
| 	[0] = { | ||||
| @ -335,7 +333,7 @@ static struct platform_device h2_mcbsp1_device = { | ||||
| 
 | ||||
| static struct platform_device *h2_devices[] __initdata = { | ||||
| 	&h2_nor_device, | ||||
| 	//&h2_nand_device,
 | ||||
| 	&h2_nand_device, | ||||
| 	&h2_smc91x_device, | ||||
| 	&h2_irda_device, | ||||
| 	&h2_kp_device, | ||||
| @ -409,15 +407,15 @@ static struct omap_lcd_config h2_lcd_config __initdata = { | ||||
| }; | ||||
| 
 | ||||
| static struct omap_board_config_kernel h2_config[] __initdata = { | ||||
| 	{ OMAP_TAG_USB,           &h2_usb_config }, | ||||
| 	{ OMAP_TAG_MMC,           &h2_mmc_config }, | ||||
| 	{ OMAP_TAG_USB,		&h2_usb_config }, | ||||
| 	{ OMAP_TAG_MMC,		&h2_mmc_config }, | ||||
| 	{ OMAP_TAG_UART,	&h2_uart_config }, | ||||
| 	{ OMAP_TAG_LCD,		&h2_lcd_config }, | ||||
| }; | ||||
| 
 | ||||
| #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); | ||||
| } | ||||
| @ -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 += 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 += SZ_4K - 1; | ||||
| 	if (!(omap_request_gpio(H2_NAND_RB_GPIO_PIN))) | ||||
| 		h2_nand_data.dev_ready = h2_nand_dev_ready; | ||||
| #endif | ||||
| 
 | ||||
| 	omap_cfg_reg(L3_1610_FLASH_CS2B_OE); | ||||
| 	omap_cfg_reg(M8_1610_FLASH_CS2B_WE); | ||||
|  | ||||
| @ -42,6 +42,7 @@ | ||||
| #include <asm/arch/irqs.h> | ||||
| #include <asm/arch/mux.h> | ||||
| #include <asm/arch/tc.h> | ||||
| #include <asm/arch/nand.h> | ||||
| #include <asm/arch/irda.h> | ||||
| #include <asm/arch/usb.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 */ | ||||
| static struct nand_platform_data nand_data = { | ||||
| static struct omap_nand_platform_data nand_data = { | ||||
| 	.options	= NAND_SAMSUNG_LP_OPTIONS, | ||||
| 	.parts		= 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 | ||||
| 
 | ||||
| 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); | ||||
| } | ||||
|  | ||||
| @ -30,6 +30,7 @@ | ||||
| #include <asm/arch/gpio.h> | ||||
| #include <asm/arch/mux.h> | ||||
| #include <asm/arch/fpga.h> | ||||
| #include <asm/arch/nand.h> | ||||
| #include <asm/arch/keypad.h> | ||||
| #include <asm/arch/common.h> | ||||
| #include <asm/arch/board.h> | ||||
| @ -133,7 +134,7 @@ static struct platform_device nor_device = { | ||||
| 	.resource	= &nor_resource, | ||||
| }; | ||||
| 
 | ||||
| static struct nand_platform_data nand_data = { | ||||
| static struct omap_nand_platform_data nand_data = { | ||||
| 	.options	= NAND_SAMSUNG_LP_OPTIONS, | ||||
| }; | ||||
| 
 | ||||
| @ -202,7 +203,7 @@ static struct platform_device *devices[] __initdata = { | ||||
| 
 | ||||
| #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); | ||||
| } | ||||
|  | ||||
							
								
								
									
										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; | ||||
| }; | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user