Helpers for populating given resource structure with memory & interrupt information. Signed-off-by: Afzal Mohammed <afzal@xxxxxx> --- arch/arm/mach-omap2/gpmc.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 08fc5df..e427ff4 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -950,6 +950,51 @@ static void __devinit gpmc_mem_init(void) } } +static __devinit int gpmc_setup_cs_mem(struct gpmc_cs_data *cs, + struct resource *res) +{ + unsigned long start; + int ret; + + ret = gpmc_cs_request(cs->cs, cs->mem_size, &start); + if (IS_ERR_VALUE(ret)) { + dev_err(gpmc_dev, "error: gpmc request on CS: %d\n", cs->cs); + return ret; + } + + res->start = start + cs->mem_offset; + res->end = res->start + cs->mem_size - 1; + res->flags = IORESOURCE_MEM; + + dev_info(gpmc_dev, "memory 0x%x-0x%x on CS %d\n", res->start, + res->end, cs->cs); + + return 0; +} + +static __devinit int gpmc_setup_cs_irq(struct gpmc_cs_data *cs, + struct resource *res) +{ + int i, n; + + if (!gpmc_irq || !gpmc_irq_start) { + if (cs->irq_config) + dev_err(gpmc_dev, "gpmc not able to configure irq\n"); + return 0; + } + + for (i = 0, n = 0; i < GPMC_NR_IRQ; i++) + if (gpmc_client_irq[i].bitmask & cs->irq_config) { + res[n].start = res[n].end = gpmc_client_irq[i].irq; + res[n].flags = IORESOURCE_IRQ; + dev_info(gpmc_dev, "irq %u on CS %d\n", + res[n].start, cs->cs); + n++; + } + + return n; +} + static __devinit int gpmc_probe(struct platform_device *pdev) { u32 l; -- 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