1 /* 2 * Setup code for AT91RM9200 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/clk-provider.h> 12 #include <linux/of.h> 13 #include <linux/of_platform.h> 14 15 #include <asm/mach/arch.h> 16 #include <asm/system_misc.h> 17 18 #include "generic.h" 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 }; 25 26 static void __init at91rm9200_dt_device_init(void) 27 { 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); 36 37 arm_pm_idle = at91rm9200_idle; 38 at91rm9200_pm_init(); 39 } 40 41 static const char *at91rm9200_dt_board_compat[] __initconst = { 42 "atmel,at91rm9200", 43 NULL 44 }; 45 46 DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200") 47 .init_machine = at91rm9200_dt_device_init, 48 .dt_compat = at91rm9200_dt_board_compat, 49 MACHINE_END 50