diff options
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-clps711x/devices.c | 16 | ||||
-rw-r--r-- | drivers/mfd/syscon.c | 3 |
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 { } }; |