Create API for platforms to adapt gpmc to HWMOD gpmc clk is stored as timing calculation for platform code require its rate so that GPMC timing values (platform data for gpmc driver) can be calculated. Signed-off-by: Afzal Mohammed <afzal@xxxxxx> --- arch/arm/mach-omap2/gpmc.c | 31 +++++++++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/gpmc.h | 2 ++ 2 files changed, 33 insertions(+) diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 8b0978f..f8131f8 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -27,6 +27,7 @@ #include <asm/mach-types.h> #include <plat/gpmc.h> +#include <plat/omap_device.h> #include <plat/sdrc.h> @@ -937,6 +938,36 @@ static int __init gpmc_init(void) } postcore_initcall(gpmc_init); +__init int omap_gpmc_init(struct gpmc_pdata *pdata) +{ + struct omap_hwmod *oh; + struct platform_device *pdev; + char *name = "omap-gpmc"; + char *oh_name = "gpmc"; + + oh = omap_hwmod_lookup(oh_name); + if (!oh) { + pr_err("Could not look up %s\n", oh_name); + return -ENODEV; + } + + gpmc_l3_clk = oh->_clk; + if (!gpmc_l3_clk) { + pr_err("Could not get GPMC clock\n"); + return -EINVAL; + } + + pdev = omap_device_build(name, -1, oh, pdata, + sizeof(*pdata), NULL, 0, 0); + if (IS_ERR(pdev)) { + WARN(1, "Can't build omap_device for %s:%s.\n", + name, oh->name); + return PTR_ERR(pdev); + } + + return 0; +} + static irqreturn_t gpmc_handle_irq(int irq, void *dev) { int i; diff --git a/arch/arm/plat-omap/include/plat/gpmc.h b/arch/arm/plat-omap/include/plat/gpmc.h index 4e799b1..157753ab 100644 --- a/arch/arm/plat-omap/include/plat/gpmc.h +++ b/arch/arm/plat-omap/include/plat/gpmc.h @@ -208,6 +208,8 @@ struct gpmc_nand_regs { extern void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs); extern int gpmc_get_client_irq(unsigned irq_config); +extern int omap_gpmc_init(struct gpmc_pdata *pdata); + extern unsigned int gpmc_ns_to_ticks(unsigned int time_ns); extern unsigned int gpmc_ps_to_ticks(unsigned int time_ps); extern unsigned int gpmc_ticks_to_ns(unsigned int ticks); -- 1.7.10.2 -- 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