Commit e34ca9de authored by Linus Walleij's avatar Linus Walleij

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: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent e3f94b38
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 = { ...@@ -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 = { ...@@ -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) ...@@ -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);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment