![Linus Walleij](/assets/img/avatar_default.png)
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 <mach/platform.h> for now, the only improvement is that it's done dynamically. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
13 lines
415 B
C
13 lines
415 B
C
#include <linux/amba/serial.h>
|
|
#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);
|
|
void integrator_restart(char, const char *);
|
|
void integrator_init_sysfs(struct device *parent, u32 id);
|