diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2013-09-09 16:39:51 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-09-20 23:04:50 +0200 |
commit | 7b85b867b99044da93f83851c806d1e324d49ed5 (patch) | |
tree | 22fd6412f7d986b1d3720badd4d5fe60f3fd9a45 /arch/arm/mach-iop33x/iq80331.c | |
parent | ARM: plat-iop: remove custom complex GPIO implementation (diff) | |
download | linux-7b85b867b99044da93f83851c806d1e324d49ed5.tar.xz linux-7b85b867b99044da93f83851c806d1e324d49ed5.zip |
ARM: plat-iop: instantiate GPIO from platform device
This converts the IOP32x and IOP33x platforms to pass their
base address offset by a resource attached to a platform device
instead of using static offset macros implicitly passed
through <linux/gpio.h> including <mach/gpio.h>. Delete the
local <mach/gpio.h> and <asm/hardware/iop3xx-gpio.h> headers
and remove the selection of NEED_MACH_GPIO_H.
Pass the virtual address as a resource in the platform device
at this point for bisectability, next patch will pass the
physical address as is custom.
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>
Diffstat (limited to 'arch/arm/mach-iop33x/iq80331.c')
-rw-r--r-- | arch/arm/mach-iop33x/iq80331.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c index c43304a10fa7..25741c4c92de 100644 --- a/arch/arm/mach-iop33x/iq80331.c +++ b/arch/arm/mach-iop33x/iq80331.c @@ -122,8 +122,15 @@ static struct platform_device iq80331_flash_device = { .resource = &iq80331_flash_resource, }; +static struct resource iq80331_gpio_res[] = { + DEFINE_RES_MEM((IOP3XX_PERIPHERAL_VIRT_BASE + 0x1780), 0x10), +}; + static void __init iq80331_init_machine(void) { + platform_device_register_simple("gpio-iop", 0, + iq80331_gpio_res, + ARRAY_SIZE(iq80331_gpio_res)); platform_device_register(&iop3xx_i2c0_device); platform_device_register(&iop3xx_i2c1_device); platform_device_register(&iop33x_uart0_device); |