gpio/nomadik: use ioremap() instead of static mappings
We were using a custom io_p2v() (physical-to-virtual) translation macro, but it's fully possible to just ioremap() this memory now, so skip use of static addresses altogether. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
ebc6178dab
commit
8d91771ca4
|
@ -28,8 +28,6 @@
|
|||
|
||||
#include <plat/pincfg.h>
|
||||
#include <plat/gpio-nomadik.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
/*
|
||||
* The GPIO module in the Nomadik family of Systems-on-Chip is an
|
||||
|
@ -1139,6 +1137,7 @@ static int __devinit nmk_gpio_probe(struct platform_device *dev)
|
|||
struct resource *res;
|
||||
struct clk *clk;
|
||||
int secondary_irq;
|
||||
void __iomem *base;
|
||||
int irq;
|
||||
int ret;
|
||||
|
||||
|
@ -1169,10 +1168,16 @@ static int __devinit nmk_gpio_probe(struct platform_device *dev)
|
|||
goto out;
|
||||
}
|
||||
|
||||
base = ioremap(res->start, resource_size(res));
|
||||
if (!base) {
|
||||
ret = -ENOMEM;
|
||||
goto out_release;
|
||||
}
|
||||
|
||||
clk = clk_get(&dev->dev, NULL);
|
||||
if (IS_ERR(clk)) {
|
||||
ret = PTR_ERR(clk);
|
||||
goto out_release;
|
||||
goto out_unmap;
|
||||
}
|
||||
|
||||
nmk_chip = kzalloc(sizeof(*nmk_chip), GFP_KERNEL);
|
||||
|
@ -1186,7 +1191,7 @@ static int __devinit nmk_gpio_probe(struct platform_device *dev)
|
|||
*/
|
||||
nmk_chip->bank = dev->id;
|
||||
nmk_chip->clk = clk;
|
||||
nmk_chip->addr = io_p2v(res->start);
|
||||
nmk_chip->addr = base;
|
||||
nmk_chip->chip = nmk_gpio_template;
|
||||
nmk_chip->parent_irq = irq;
|
||||
nmk_chip->secondary_parent_irq = secondary_irq;
|
||||
|
@ -1226,6 +1231,8 @@ out_free:
|
|||
out_clk:
|
||||
clk_disable(clk);
|
||||
clk_put(clk);
|
||||
out_unmap:
|
||||
iounmap(base);
|
||||
out_release:
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
out:
|
||||
|
|
Loading…
Reference in a new issue