@@ -357,10 +357,12 @@ config ARCH_CLPS711X
select ARCH_REQUIRE_GPIOLIB
select AUTO_ZRELADDR
select CLKSRC_MMIO
+ select CLKSRC_OF if OF
select COMMON_CLK
select CPU_ARM720T
select GENERIC_CLOCKEVENTS
select MFD_SYSCON
+ select OF_IRQ if OF
select SOC_BUS
help
Support for Cirrus Logic 711x/721x/731x based boards.
@@ -2,6 +2,13 @@ if ARCH_CLPS711X
menu "CLPS711X/EP721X/EP731X Implementations"
+config MACH_CLPS711X_DT
+ bool "Device-tree support"
+ select USE_OF
+ help
+ Select this if you want to experiment device-tree with
+ ARMv4T Cirrus Logic chips.
+
config ARCH_AUTCPU12
bool "AUTCPU12"
help
@@ -23,12 +23,14 @@
#include <linux/init.h>
#include <linux/sizes.h>
+#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/system_misc.h>
#include <mach/hardware.h>
#include "common.h"
+#include "devices.h"
/*
* This maps the generic CLPS711x registers
@@ -63,3 +65,15 @@ void clps711x_restart(enum reboot_mode mode, const char *cmd)
{
soft_restart(0);
}
+
+static const char *clps711x_dt_compat[] __initconst = {
+ "cirrus,clps711x",
+ NULL
+};
+
+DT_MACHINE_START(CLPS711X_DT, "Cirrus Logic CLPS711X (Device Tree Support)")
+ .dt_compat = clps711x_dt_compat,
+ .map_io = clps711x_map_io,
+ .init_late = clps711x_devices_init_dt,
+ .restart = clps711x_restart,
+MACHINE_END
@@ -147,3 +147,9 @@ void __init clps711x_devices_init(void)
clps711x_add_uart();
clps711x_soc_init();
}
+
+void __init clps711x_devices_init_dt(void)
+{
+ clps711x_add_cpuidle();
+ clps711x_soc_init();
+};
@@ -10,3 +10,4 @@
*/
void clps711x_devices_init(void);
+void clps711x_devices_init_dt(void);
This patch adds basic support to run Cirrus Logic ARMv4T CPUs with device-tree support. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> --- arch/arm/Kconfig | 2 ++ arch/arm/mach-clps711x/Kconfig | 7 +++++++ arch/arm/mach-clps711x/common.c | 14 ++++++++++++++ arch/arm/mach-clps711x/devices.c | 6 ++++++ arch/arm/mach-clps711x/devices.h | 1 + 5 files changed, 30 insertions(+)