gpmc code has been converted to driver. Modify the board code to provide gpmc driver with required information. Signed-off-by: Afzal Mohammed <afzal@xxxxxx> --- arch/arm/mach-omap2/board-igep0020.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 6d171ca..91de8ce 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c @@ -36,6 +36,7 @@ #include <video/omapdss.h> #include <video/omap-panel-dvi.h> #include <plat/onenand.h> +#include <plat/nand.h> #include "mux.h" #include "hsmmc.h" @@ -118,6 +119,13 @@ static void __init igep2_get_revision(void) gpio_free(IGEP2_GPIO_LED1_RED); } +static struct gpmc_device_pdata *gpmc_device_data[2]; +static struct gpmc_device_pdata **gpmc_cur = gpmc_device_data; + +static struct gpmc_pdata gpmc_data = { + .device_pdata = gpmc_device_data, +}; + #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) || \ defined(CONFIG_MTD_NAND_OMAP2) || \ @@ -172,14 +180,26 @@ static void __init igep_flash_init(void) mux = igep_get_sysboot_value(); if (mux == IGEP_SYSBOOT_NAND) { + struct omap_nand_platform_data *nand_data; + pr_info("IGEP: initializing NAND memory device\n"); - board_nand_init(igep_flash_partitions, + nand_data = board_nand_init(igep_flash_partitions, ARRAY_SIZE(igep_flash_partitions), - 0, NAND_BUSWIDTH_16, NULL); + 0, NAND_BUSWIDTH_16, nand_default_timings); + if (nand_data != NULL) { + *gpmc_cur++ = gpmc_nand_init(nand_data); + gpmc_data.num_device++; + } } else if (mux == IGEP_SYSBOOT_ONENAND) { + struct omap_onenand_platform_data *onenand_data; + pr_info("IGEP: initializing OneNAND memory device\n"); - board_onenand_init(igep_flash_partitions, + onenand_data = board_onenand_init(igep_flash_partitions, ARRAY_SIZE(igep_flash_partitions), 0); + if (onenand_data != NULL) { + *gpmc_cur++ = gpmc_onenand_init(onenand_data); + gpmc_data.num_device++; + } } else pr_err("IGEP: Flash: unsupported sysboot sequence found\n"); } @@ -202,7 +222,11 @@ static struct omap_smsc911x_platform_data smsc911x_cfg = { static inline void __init igep2_init_smsc911x(void) { - gpmc_smsc911x_init(&smsc911x_cfg); + *gpmc_cur = gpmc_smsc911x_init(&smsc911x_cfg); + if (*gpmc_cur) + gpmc_data.num_device++, gpmc_cur++; + else + pr_err("error: gpmc smsc911x setup\n"); } #else -- 1.7.10 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html