ARM: plat-iop: pass physical base for GPIO
This alters the IOP platforms to pass a physical base for their GPIO blocks and alters the driver to remap it when probing instead of relying on the virtual addresses to be used. Cc: Lennert Buytenhek <kernel@wantstofly.org> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Mikael Pettersson <mikpe@it.uu.se> Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
e3f94b3857
commit
e34ca9de0b
|
@ -1,5 +1,5 @@
|
||||||
static struct resource iop32x_gpio_res[] = {
|
static struct resource iop32x_gpio_res[] = {
|
||||||
DEFINE_RES_MEM((IOP3XX_PERIPHERAL_VIRT_BASE + 0x07c4), 0x10),
|
DEFINE_RES_MEM((IOP3XX_PERIPHERAL_PHYS_BASE + 0x07c4), 0x10),
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void register_iop32x_gpio(void)
|
static inline void register_iop32x_gpio(void)
|
||||||
|
|
|
@ -123,7 +123,7 @@ static struct platform_device iq80331_flash_device = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource iq80331_gpio_res[] = {
|
static struct resource iq80331_gpio_res[] = {
|
||||||
DEFINE_RES_MEM((IOP3XX_PERIPHERAL_VIRT_BASE + 0x1780), 0x10),
|
DEFINE_RES_MEM((IOP3XX_PERIPHERAL_PHYS_BASE + 0x1780), 0x10),
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init iq80331_init_machine(void)
|
static void __init iq80331_init_machine(void)
|
||||||
|
|
|
@ -123,7 +123,7 @@ static struct platform_device iq80332_flash_device = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource iq80332_gpio_res[] = {
|
static struct resource iq80332_gpio_res[] = {
|
||||||
DEFINE_RES_MEM((IOP3XX_PERIPHERAL_VIRT_BASE + 0x1780), 0x10),
|
DEFINE_RES_MEM((IOP3XX_PERIPHERAL_PHYS_BASE + 0x1780), 0x10),
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init iq80332_init_machine(void)
|
static void __init iq80332_init_machine(void)
|
||||||
|
|
|
@ -110,7 +110,7 @@ static int iop3xx_gpio_probe(struct platform_device *pdev)
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
base = (void *) res->start;
|
base = devm_ioremap_resource(&pdev->dev, res);
|
||||||
|
|
||||||
return gpiochip_add(&iop3xx_chip);
|
return gpiochip_add(&iop3xx_chip);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue