aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/mach-imx6q.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/mach-imx6q.c')
-rw-r--r--arch/arm/mach-imx/mach-imx6q.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
index d69f99f63dc..70be6a93085 100644
--- a/arch/arm/mach-imx/mach-imx6q.c
+++ b/arch/arm/mach-imx/mach-imx6q.c
@@ -10,6 +10,7 @@
* http://www.gnu.org/copyleft/gpl.html
*/
+#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
@@ -20,6 +21,7 @@
#include <linux/micrel_phy.h>
#include <asm/hardware/cache-l2x0.h>
#include <asm/hardware/gic.h>
+#include <asm/mach/map.h>
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
#include <mach/common.h>
@@ -54,11 +56,27 @@ static void __init imx6q_init_machine(void)
imx6q_pm_init();
}
+static struct map_desc imx_mx6q_iomux_desc[] = {
+ {
+ .virtual = MX6Q_IO_P2V(MX6Q_IOMUXC_BASE_ADDR),
+ .pfn = __phys_to_pfn(MX6Q_IOMUXC_BASE_ADDR),
+ .length = MX6Q_IOMUXC_SIZE,
+ .type = MT_DEVICE,
+ },
+};
+
+static void __init imx6q_iomux_map_io(void)
+{
+ iotable_init(imx_mx6q_iomux_desc, ARRAY_SIZE(imx_mx6q_iomux_desc));
+ mxc_iomux_v3_init(MX6Q_IO_ADDRESS(MX6Q_IOMUXC_BASE_ADDR));
+}
+
static void __init imx6q_map_io(void)
{
imx_lluart_map_io();
imx_scu_map_io();
imx6q_clock_map_io();
+ imx6q_iomux_map_io();
}
static int __init imx6q_gpio_add_irq_domain(struct device_node *np,