summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/mach-clps711x/devices.c16
-rw-r--r--drivers/mfd/syscon.c3
3 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ed0b453ba6..61283221bc 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -43,6 +43,7 @@ config ARCH_CLPS711X
select COMMON_CLK
select CPU_32v4T
select GPIOLIB
+ select MFD_SYSCON
config ARCH_EP93XX
bool "Cirrus Logic EP93xx"
diff --git a/arch/arm/mach-clps711x/devices.c b/arch/arm/mach-clps711x/devices.c
index 4cc53fab57..b36013fa0d 100644
--- a/arch/arm/mach-clps711x/devices.c
+++ b/arch/arm/mach-clps711x/devices.c
@@ -121,3 +121,19 @@ static __init int clps711x_gpio_init(void)
return 0;
}
coredevice_initcall(clps711x_gpio_init);
+
+static __init int clps711x_syscon_init(void)
+{
+ /* SYSCON1, SYSFLG1 */
+ add_generic_device("clps711x-syscon", 1, NULL, SYSCON1, SZ_128,
+ IORESOURCE_MEM, NULL);
+ /* SYSCON2, SYSFLG2 */
+ add_generic_device("clps711x-syscon", 2, NULL, SYSCON2, SZ_128,
+ IORESOURCE_MEM, NULL);
+ /* SYSCON3 */
+ add_generic_device("clps711x-syscon", 3, NULL, SYSCON3, SZ_64,
+ IORESOURCE_MEM, NULL);
+
+ return 0;
+}
+postcore_initcall(clps711x_syscon_init);
diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
index 87d2f7c8ff..b628ab7c6a 100644
--- a/drivers/mfd/syscon.c
+++ b/drivers/mfd/syscon.c
@@ -72,6 +72,9 @@ static int syscon_probe(struct device_d *dev)
static struct platform_device_id syscon_ids[] = {
{ "syscon", },
+#ifdef CONFIG_ARCH_CLPS711X
+ { "clps711x-syscon", },
+#endif
{ }
};