From e67ae6be734de909954e20317c38472af983b92c Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Fri, 2 Nov 2012 01:31:10 +0100 Subject: ARM: integrator: hook the AP into the SoC bus This hooks the Integrator/AP into the SoC bus when booting from device tree, by mapping the AP controller registers first, then registering the SoC device, and then populating the device tree with the SoC device as parent. Introduce some helpers in the core to provide sysfs files detailing the use of the SoC ID which will later be reused by the Integrator/CP patch for the same bus grouping. Cc: Lee Jones Acked-by: Arnd Bergmann Signed-off-by: Linus Walleij --- arch/arm/mach-integrator/common.h | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/arm/mach-integrator/common.h') diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h index c3ff21b5ea24..fc9f47d289f4 100644 --- a/arch/arm/mach-integrator/common.h +++ b/arch/arm/mach-integrator/common.h @@ -4,3 +4,4 @@ void integrator_init_early(void); int integrator_init(bool is_cp); void integrator_reserve(void); void integrator_restart(char, const char *); +void integrator_init_sysfs(struct device *parent, u32 id); -- cgit v1.2.3 From 379df2793efdca18e91cb8570f844ad1f83eb609 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Sat, 17 Nov 2012 19:24:23 +0100 Subject: ARM: integrator: push down SC dependencies This pushes the dependencies on the Integrator/AP system controller (SC) down into the PCI V3 driver and the AP-specific board file. First, the platform data for the PL010 UART is moved into the integrator_ap.c board file, and the Integrator/CP is assigned with NULL pdata. This way the callback functions can reference the dynamically remapped AP syscon address in both the ATAG and DT boot path, and this remapping is localized to the board file. Second the PCIv3 driver is making its own dynamic remapping of the SC for the few registers it is using. When we convert the PCIv3 driver over to using device tree having a dynamically assigned base address will be useful, but we will have to use the definition from for now, the only improvement is that it's done dynamically. Signed-off-by: Linus Walleij --- arch/arm/mach-integrator/common.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'arch/arm/mach-integrator/common.h') diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h index fc9f47d289f4..79197d8b34aa 100644 --- a/arch/arm/mach-integrator/common.h +++ b/arch/arm/mach-integrator/common.h @@ -1,5 +1,10 @@ #include -extern struct amba_pl010_data integrator_uart_data; +#ifdef CONFIG_ARCH_INTEGRATOR_AP +extern struct amba_pl010_data ap_uart_data; +#else +/* Not used without Integrator/AP support anyway */ +struct amba_pl010_data ap_uart_data {}; +#endif void integrator_init_early(void); int integrator_init(bool is_cp); void integrator_reserve(void); -- cgit v1.2.3