|
22 | 22 | #include <linux/gpio_keys.h>
|
23 | 23 | #include <linux/input.h>
|
24 | 24 | #include <linux/interrupt.h>
|
| 25 | +#include <linux/irqchip.h> |
| 26 | +#include <linux/irqchip/arm-gic.h> |
25 | 27 | #include <linux/kernel.h>
|
26 | 28 | #include <linux/mfd/tmio.h>
|
27 | 29 | #include <linux/mmc/host.h>
|
@@ -277,14 +279,32 @@ static void __init ape6evm_add_standard_devices(void)
|
277 | 279 | sizeof(ape6evm_leds_pdata));
|
278 | 280 | }
|
279 | 281 |
|
| 282 | +static void __init ape6evm_legacy_init_time(void) |
| 283 | +{ |
| 284 | + /* Do not invoke DT-based timers via clocksource_of_init() */ |
| 285 | +} |
| 286 | + |
| 287 | +static void __init ape6evm_legacy_init_irq(void) |
| 288 | +{ |
| 289 | + void __iomem *gic_dist_base = ioremap_nocache(0xf1001000, 0x1000); |
| 290 | + void __iomem *gic_cpu_base = ioremap_nocache(0xf1002000, 0x1000); |
| 291 | + |
| 292 | + gic_init(0, 29, gic_dist_base, gic_cpu_base); |
| 293 | + |
| 294 | + /* Do not invoke DT-based interrupt code via irqchip_init() */ |
| 295 | +} |
| 296 | + |
| 297 | + |
280 | 298 | static const char *ape6evm_boards_compat_dt[] __initdata = {
|
281 | 299 | "renesas,ape6evm",
|
282 | 300 | NULL,
|
283 | 301 | };
|
284 | 302 |
|
285 | 303 | DT_MACHINE_START(APE6EVM_DT, "ape6evm")
|
286 | 304 | .init_early = shmobile_init_delay,
|
| 305 | + .init_irq = ape6evm_legacy_init_irq, |
287 | 306 | .init_machine = ape6evm_add_standard_devices,
|
288 | 307 | .init_late = shmobile_init_late,
|
289 | 308 | .dt_compat = ape6evm_boards_compat_dt,
|
| 309 | + .init_time = ape6evm_legacy_init_time, |
290 | 310 | MACHINE_END
|
0 commit comments