Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / arm / mach-tegra / io.c
diff --git a/kernel/arch/arm/mach-tegra/io.c b/kernel/arch/arm/mach-tegra/io.c
new file mode 100644 (file)
index 0000000..352de15
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * arch/arm/mach-tegra/io.c
+ *
+ * Copyright (C) 2010 Google, Inc.
+ *
+ * Author:
+ *     Colin Cross <ccross@google.com>
+ *     Erik Gilling <konkers@google.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/module.h>
+
+#include <asm/mach/map.h>
+#include <asm/page.h>
+
+#include "board.h"
+#include "iomap.h"
+
+static struct map_desc tegra_io_desc[] __initdata = {
+       {
+               .virtual = (unsigned long)IO_PPSB_VIRT,
+               .pfn = __phys_to_pfn(IO_PPSB_PHYS),
+               .length = IO_PPSB_SIZE,
+               .type = MT_DEVICE,
+       },
+       {
+               .virtual = (unsigned long)IO_APB_VIRT,
+               .pfn = __phys_to_pfn(IO_APB_PHYS),
+               .length = IO_APB_SIZE,
+               .type = MT_DEVICE,
+       },
+       {
+               .virtual = (unsigned long)IO_CPU_VIRT,
+               .pfn = __phys_to_pfn(IO_CPU_PHYS),
+               .length = IO_CPU_SIZE,
+               .type = MT_DEVICE,
+       },
+       {
+               .virtual = (unsigned long)IO_IRAM_VIRT,
+               .pfn = __phys_to_pfn(IO_IRAM_PHYS),
+               .length = IO_IRAM_SIZE,
+               .type = MT_DEVICE,
+       },
+};
+
+void __init tegra_map_common_io(void)
+{
+       debug_ll_io_init();
+       iotable_init(tegra_io_desc, ARRAY_SIZE(tegra_io_desc));
+}