[PATCH v3 15/15] ARM: vexpress/dcscb: probe via device tree
From: Nicolas Pitre <hidden>
Date: 2013-01-29 21:41:49
On Tue, 29 Jan 2013, Rob Herring wrote:
On 01/29/2013 01:51 AM, Nicolas Pitre wrote:quoted
This allows for the DCSCB support to be compiled in and selected at run time.Shouldn't this just be rolled into the commit creating dcscb.c?
Probably, yes.
quoted
Signed-off-by: Nicolas Pitre <redacted> --- arch/arm/mach-vexpress/dcscb.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)diff --git a/arch/arm/mach-vexpress/dcscb.c b/arch/arm/mach-vexpress/dcscb.c index 58051ffafb..a724507cbc 100644 --- a/arch/arm/mach-vexpress/dcscb.c +++ b/arch/arm/mach-vexpress/dcscb.c@@ -14,6 +14,7 @@ #include <linux/io.h> #include <linux/spinlock.h> #include <linux/errno.h> +#include <linux/of_address.h> #include <linux/vexpress.h> #include <linux/arm-cci.h>@@ -24,8 +25,6 @@ #include <asm/cp15.h> -#define DCSCB_PHYS_BASE 0x60000000 - #define RST_HOLD0 0x0 #define RST_HOLD1 0x4 #define SYS_SWRESET 0x8@@ -215,10 +214,14 @@ extern void dcscb_power_up_setup(unsigned int affinity_level); static int __init dcscb_init(void) { + struct device_node *node; unsigned int cfg; int ret; - dcscb_base = ioremap(DCSCB_PHYS_BASE, 0x1000); + node = of_find_compatible_node(NULL, NULL, "arm,dcscb");This needs binding documentation and should be a more specific name. Not knowing what dcscb is, I don't have a suggestion.
Yes, I mentioned in the cover page that DT bindings are not yet documented. DCSCB stands for "Dual Cluster System Control Block". This is in fact a set of miscellaneous registers, mainly for reset control of individual CPUs and clusters.
Perhaps should include vexpress or specific core tile name it is part of.
/me hopes for some ARM dude more acquainted with their nomenclature to chime in with suggestions. Nicolas