[PATCH 6/9] ARM: OMAP2+: gpmc-smsc911x: Adapt to use gpmc driver
Mohammed, Afzal
afzal at ti.com
Thu Jun 14 05:07:43 EDT 2012
Hi Tony,
On Thu, Jun 14, 2012 at 14:26:52, Tony Lindgren wrote:
> * Afzal Mohammed <afzal at ti.com> [120611 08:20]:
> > +__init gpmc_smsc911x_update(struct omap_smsc911x_platform_data *gpmc_cfg)
> > +{
> > + int ret;
> > + struct gpmc_device_pdata *gpmc_pdev;
> > + struct gpmc_cs_data *gpmc_cs;
> > +
> > + gpmc_pdev = kzalloc(sizeof(*gpmc_pdev), GFP_KERNEL);
> > + if (gpmc_pdev == NULL)
> > + return gpmc_pdev;
> > +
> > + gpmc_cs = kzalloc(sizeof(*gpmc_cs), GFP_KERNEL);
> > + if (gpmc_pdev == NULL) {
> > + kfree(gpmc_pdev);
> > + return NULL;
> > + }
>
> Here your should check for if (!gpmc_cs), not gpmc_cs. Might
My mistake, I will correct it
> Where do gpmc_pdev and gpmc_cs get used? Where are they
> stored to the pdata?
It is done in board file, as in [1]
Regards
Afzal
[1]
ARM: OMAP2+: board omap3evm: use gpmc driver
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 639bd07..aa9429d 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -43,6 +43,7 @@
#include <plat/board.h>
#include <plat/usb.h>
+#include <plat/gpmc.h>
#include "common.h"
#include <plat/mcspi.h>
#include <video/omapdss.h>
@@ -102,6 +103,12 @@ static void __init omap3_evm_get_revision(void)
}
}
+static struct gpmc_device_pdata *gpmc_device_data[2];
+
+static struct gpmc_pdata gpmc_data = {
+ .device_pdata = gpmc_device_data,
+};
+
#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
#include <plat/gpmc-smsc911x.h>
@@ -122,7 +129,9 @@ static inline void __init omap3evm_init_smsc911x(void)
smsc911x_cfg.gpio_reset = OMAP3EVM_GEN2_ETHR_GPIO_RST;
}
- gpmc_smsc911x_init(&smsc911x_cfg);
+ *gpmc_device_data = gpmc_smsc911x_update(&smsc911x_cfg);
+ if (!*gpmc_device_data)
+ pr_err("error: unable to initilaize gpmc smsc911x\n");
}
#else
@@ -658,6 +667,7 @@ static void __init omap3_evm_init(void)
usbhs_init(&usbhs_bdata);
omap_ads7846_init(1, OMAP3_EVM_TS_GPIO, 310, NULL);
omap3evm_init_smsc911x();
+ omap_gpmc_init(&gpmc_data);
omap3_evm_display_init();
omap3_evm_wl12xx_init();
}
More information about the linux-arm-kernel
mailing list