summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-versatile/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-versatile/core.c')
-rw-r--r--arch/arm/mach-versatile/core.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 5c75e11e98..8aca2a19e3 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -26,6 +26,7 @@
#include <init.h>
#include <clock.h>
#include <debug_ll.h>
+#include <sizes.h>
#include <linux/clkdev.h>
#include <linux/clk.h>
@@ -182,6 +183,12 @@ void versatile_register_uart(unsigned id)
amba_apb_device_add(NULL, "uart-pl011", id, start, 4096, NULL, 0);
}
+void versatile_register_i2c(void)
+{
+ add_generic_device("versatile-i2c", DEVICE_ID_DYNAMIC, NULL,
+ VERSATILE_I2C_BASE, SZ_4K, IORESOURCE_MEM, NULL);
+}
+
void __noreturn reset_cpu (unsigned long ignored)
{
u32 val;
@@ -196,3 +203,13 @@ void __noreturn reset_cpu (unsigned long ignored)
while(1);
}
EXPORT_SYMBOL(reset_cpu);
+
+static int versatile_init(void)
+{
+ amba_apb_device_add(NULL, "pl061_gpio", 0, 0x101e4000, 4096, NULL, 0);
+ amba_apb_device_add(NULL, "pl061_gpio", 1, 0x101e5000, 4096, NULL, 0);
+ amba_apb_device_add(NULL, "pl061_gpio", 2, 0x101e6000, 4096, NULL, 0);
+ amba_apb_device_add(NULL, "pl061_gpio", 3, 0x101e7000, 4096, NULL, 0);
+ return 0;
+}
+coredevice_initcall(versatile_init);