Commit | Line | Data |
---|---|---|
397f8c3c JE |
1 | /* |
2 | * Setup code for AT91RM9200 Evaluation Kits with Device Tree support | |
3 | * | |
4 | * Copyright (C) 2011 Atmel, | |
5 | * 2011 Nicolas Ferre <nicolas.ferre@atmel.com> | |
6 | * 2012 Joachim Eastwood <manabian@gmail.com> | |
7 | * | |
8 | * Licensed under GPLv2 or later. | |
9 | */ | |
10 | ||
11 | #include <linux/types.h> | |
12 | #include <linux/init.h> | |
13 | #include <linux/module.h> | |
14 | #include <linux/gpio.h> | |
15 | #include <linux/of.h> | |
16 | #include <linux/of_irq.h> | |
17 | #include <linux/of_platform.h> | |
18 | ||
19 | #include <mach/board.h> | |
20 | #include <mach/at91_aic.h> | |
21 | ||
22 | #include <asm/setup.h> | |
23 | #include <asm/irq.h> | |
24 | #include <asm/mach/arch.h> | |
25 | #include <asm/mach/map.h> | |
26 | #include <asm/mach/irq.h> | |
27 | ||
28 | #include "generic.h" | |
29 | ||
30 | ||
31 | static const struct of_device_id irq_of_match[] __initconst = { | |
32 | { .compatible = "atmel,at91rm9200-aic", .data = at91_aic_of_init }, | |
33 | { /*sentinel*/ } | |
34 | }; | |
35 | ||
36 | static void __init at91rm9200_dt_init_irq(void) | |
37 | { | |
38 | of_irq_init(irq_of_match); | |
39 | } | |
40 | ||
41 | static void __init at91rm9200_dt_device_init(void) | |
42 | { | |
43 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | |
44 | } | |
45 | ||
46 | static const char *at91rm9200_dt_board_compat[] __initdata = { | |
47 | "atmel,at91rm9200", | |
48 | NULL | |
49 | }; | |
50 | ||
51 | DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200 (Device Tree)") | |
52 | .timer = &at91rm9200_timer, | |
53 | .map_io = at91_map_io, | |
54 | .handle_irq = at91_aic_handle_irq, | |
55 | .init_early = at91rm9200_dt_initialize, | |
56 | .init_irq = at91rm9200_dt_init_irq, | |
57 | .init_machine = at91rm9200_dt_device_init, | |
58 | .dt_compat = at91rm9200_dt_board_compat, | |
59 | MACHINE_END |