Commit | Line | Data |
---|---|---|
49fe2ba3 NF |
1 | /* |
2 | * Setup code for AT91SAM Evaluation Kits with Device Tree support | |
3 | * | |
4 | * Covers: * AT91SAM9G45-EKES board | |
5 | * * AT91SAM9M10-EKES board | |
6 | * * AT91SAM9M10G45-EK board | |
7 | * | |
8 | * Copyright (C) 2011 Atmel, | |
9 | * 2011 Nicolas Ferre <nicolas.ferre@atmel.com> | |
10 | * | |
11 | * Licensed under GPLv2 or later. | |
12 | */ | |
13 | ||
14 | #include <linux/types.h> | |
15 | #include <linux/init.h> | |
16 | #include <linux/module.h> | |
17 | #include <linux/gpio.h> | |
8014d6f4 NF |
18 | #include <linux/of.h> |
19 | #include <linux/of_irq.h> | |
49fe2ba3 NF |
20 | #include <linux/of_platform.h> |
21 | ||
49fe2ba3 | 22 | #include <mach/board.h> |
49fe2ba3 NF |
23 | |
24 | #include <asm/setup.h> | |
25 | #include <asm/irq.h> | |
26 | #include <asm/mach/arch.h> | |
27 | #include <asm/mach/map.h> | |
28 | #include <asm/mach/irq.h> | |
29 | ||
49fe2ba3 NF |
30 | #include "generic.h" |
31 | ||
32 | ||
33 | static void __init ek_init_early(void) | |
34 | { | |
35 | /* Initialize processor: 12.000 MHz crystal */ | |
36 | at91_initialize(12000000); | |
49fe2ba3 NF |
37 | } |
38 | ||
8014d6f4 NF |
39 | static const struct of_device_id irq_of_match[] __initconst = { |
40 | ||
41 | { .compatible = "atmel,at91rm9200-aic", .data = at91_aic_of_init }, | |
42 | { .compatible = "atmel,at91rm9200-gpio", .data = at91_gpio_of_irq_setup }, | |
582d5fbd | 43 | { .compatible = "atmel,at91sam9x5-gpio", .data = at91_gpio_of_irq_setup }, |
8014d6f4 NF |
44 | { /*sentinel*/ } |
45 | }; | |
46 | ||
49fe2ba3 NF |
47 | static void __init at91_dt_init_irq(void) |
48 | { | |
8014d6f4 | 49 | of_irq_init(irq_of_match); |
49fe2ba3 NF |
50 | } |
51 | ||
52 | static void __init at91_dt_device_init(void) | |
53 | { | |
54 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | |
49fe2ba3 NF |
55 | } |
56 | ||
57 | static const char *at91_dt_board_compat[] __initdata = { | |
58 | "atmel,at91sam9m10g45ek", | |
2b9ccf3c | 59 | "atmel,at91sam9x5ek", |
fea3158c | 60 | "calao,usb-a9g20", |
49fe2ba3 NF |
61 | NULL |
62 | }; | |
63 | ||
64 | DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)") | |
65 | /* Maintainer: Atmel */ | |
66 | .timer = &at91sam926x_timer, | |
67 | .map_io = at91_map_io, | |
68 | .init_early = ek_init_early, | |
69 | .init_irq = at91_dt_init_irq, | |
70 | .init_machine = at91_dt_device_init, | |
71 | .dt_compat = at91_dt_board_compat, | |
72 | MACHINE_END |