Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 1 | /* |
Nicolas Ferre | cac0172 | 2015-01-27 16:41:55 +0100 | [diff] [blame] | 2 | * Setup code for AT91RM9200 |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 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 | |
Alexandre Belloni | 04ffc96 | 2014-09-05 16:15:33 +0200 | [diff] [blame] | 11 | #include <linux/clk-provider.h> |
Alexandre Belloni | 7735f03 | 2015-03-12 15:54:28 +0100 | [diff] [blame] | 12 | #include <linux/of.h> |
| 13 | #include <linux/of_platform.h> |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 14 | |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 15 | #include <asm/mach/arch.h> |
Alexandre Belloni | 7d7ffd7 | 2015-01-26 19:02:54 +0100 | [diff] [blame] | 16 | #include <asm/system_misc.h> |
| 17 | |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 18 | #include "generic.h" |
Alexandre Belloni | 7735f03 | 2015-03-12 15:54:28 +0100 | [diff] [blame] | 19 | #include "soc.h" |
| 20 | |
| 21 | static const struct at91_soc rm9200_socs[] = { |
| 22 | AT91_SOC(AT91RM9200_CIDR_MATCH, 0, "at91rm9200 BGA", "at91rm9200"), |
| 23 | { /* sentinel */ }, |
| 24 | }; |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 25 | |
Nicolas Ferre | ad3fc3e | 2015-01-27 18:41:33 +0100 | [diff] [blame] | 26 | static void __init at91rm9200_dt_device_init(void) |
Alexandre Belloni | 4db0ba2 | 2015-01-15 15:59:27 +0100 | [diff] [blame] | 27 | { |
Alexandre Belloni | 7735f03 | 2015-03-12 15:54:28 +0100 | [diff] [blame] | 28 | struct soc_device *soc; |
| 29 | struct device *soc_dev = NULL; |
| 30 | |
| 31 | soc = at91_soc_init(rm9200_socs); |
| 32 | if (soc != NULL) |
| 33 | soc_dev = soc_device_to_device(soc); |
| 34 | |
| 35 | of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev); |
Nicolas Ferre | ea69f99 | 2015-01-23 11:47:37 +0100 | [diff] [blame] | 36 | |
Alexandre Belloni | 7d7ffd7 | 2015-01-26 19:02:54 +0100 | [diff] [blame] | 37 | arm_pm_idle = at91rm9200_idle; |
Nicolas Ferre | ad3fc3e | 2015-01-27 18:41:33 +0100 | [diff] [blame] | 38 | at91rm9200_pm_init(); |
Alexandre Belloni | 4db0ba2 | 2015-01-15 15:59:27 +0100 | [diff] [blame] | 39 | } |
| 40 | |
Alexandre Belloni | 37e9c4d | 2015-01-22 17:19:04 +0100 | [diff] [blame] | 41 | static const char *at91rm9200_dt_board_compat[] __initconst = { |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 42 | "atmel,at91rm9200", |
| 43 | NULL |
| 44 | }; |
| 45 | |
Nicolas Ferre | ad3fc3e | 2015-01-27 18:41:33 +0100 | [diff] [blame] | 46 | DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200") |
Nicolas Ferre | ad3fc3e | 2015-01-27 18:41:33 +0100 | [diff] [blame] | 47 | .init_machine = at91rm9200_dt_device_init, |
Joachim Eastwood | 397f8c3 | 2012-10-28 18:31:09 +0000 | [diff] [blame] | 48 | .dt_compat = at91rm9200_dt_board_compat, |
| 49 | MACHINE_END |