summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/imx6.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-09-03 10:18:09 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-09-04 21:01:05 +0200
commitb395e8bfb08444a5dbc391e64e0b8e2358906093 (patch)
treea8c20a578efcc05bbe7cfd66c8a22166ae6ec397 /arch/arm/mach-imx/imx6.c
parent2f8fe263824151b55487f701718ac4467240ad7a (diff)
downloadbarebox-b395e8bfb08444a5dbc391e64e0b8e2358906093.tar.gz
barebox-b395e8bfb08444a5dbc391e64e0b8e2358906093.tar.xz
ARM i.MX: switch to gpiolib support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/imx6.c')
-rw-r--r--arch/arm/mach-imx/imx6.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/arch/arm/mach-imx/imx6.c b/arch/arm/mach-imx/imx6.c
index a443343853..c693724a51 100644
--- a/arch/arm/mach-imx/imx6.c
+++ b/arch/arm/mach-imx/imx6.c
@@ -21,20 +21,6 @@
#include <sizes.h>
#include <mach/imx6-regs.h>
-#include "gpio.h"
-
-void *imx_gpio_base[] = {
- (void *)MX6_GPIO1_BASE_ADDR,
- (void *)MX6_GPIO2_BASE_ADDR,
- (void *)MX6_GPIO3_BASE_ADDR,
- (void *)MX6_GPIO4_BASE_ADDR,
- (void *)MX6_GPIO5_BASE_ADDR,
- (void *)MX6_GPIO6_BASE_ADDR,
- (void *)MX6_GPIO7_BASE_ADDR,
-};
-
-int imx_gpio_count = ARRAY_SIZE(imx_gpio_base) * 32;
-
void imx6_init_lowlevel(void)
{
void __iomem *aips1 = (void *)MX6_AIPS1_ON_BASE_ADDR;
@@ -69,3 +55,17 @@ void imx6_init_lowlevel(void)
writel(0xffffffff, 0x020c407c);
writel(0xffffffff, 0x020c4080);
}
+
+static int imx6_init(void)
+{
+ add_generic_device("imx-gpio", 0, NULL, MX6_GPIO1_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+ add_generic_device("imx-gpio", 1, NULL, MX6_GPIO2_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+ add_generic_device("imx-gpio", 2, NULL, MX6_GPIO3_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+ add_generic_device("imx-gpio", 3, NULL, MX6_GPIO4_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+ add_generic_device("imx-gpio", 4, NULL, MX6_GPIO5_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+ add_generic_device("imx-gpio", 5, NULL, MX6_GPIO6_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+ add_generic_device("imx-gpio", 6, NULL, MX6_GPIO7_BASE_ADDR, 0x4000, IORESOURCE_MEM, NULL);
+
+ return 0;
+}
+coredevice_initcall(imx6_init);