2012-10-29 02:31:09 +08:00
|
|
|
/*
|
2015-01-27 23:41:55 +08:00
|
|
|
* Setup code for AT91RM9200
|
2012-10-29 02:31:09 +08:00
|
|
|
*
|
|
|
|
* Copyright (C) 2011 Atmel,
|
|
|
|
* 2011 Nicolas Ferre <nicolas.ferre@atmel.com>
|
|
|
|
* 2012 Joachim Eastwood <manabian@gmail.com>
|
|
|
|
*
|
|
|
|
* Licensed under GPLv2 or later.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/of.h>
|
2015-01-15 22:59:27 +08:00
|
|
|
#include <linux/of_platform.h>
|
2012-10-29 02:31:09 +08:00
|
|
|
|
|
|
|
#include <asm/mach/arch.h>
|
2015-01-27 02:02:54 +08:00
|
|
|
#include <asm/system_misc.h>
|
|
|
|
|
2012-10-29 02:31:09 +08:00
|
|
|
#include "generic.h"
|
2015-03-12 22:54:28 +08:00
|
|
|
#include "soc.h"
|
|
|
|
|
|
|
|
static const struct at91_soc rm9200_socs[] = {
|
|
|
|
AT91_SOC(AT91RM9200_CIDR_MATCH, 0, "at91rm9200 BGA", "at91rm9200"),
|
|
|
|
{ /* sentinel */ },
|
|
|
|
};
|
2012-10-29 02:31:09 +08:00
|
|
|
|
2015-01-28 01:41:33 +08:00
|
|
|
static void __init at91rm9200_dt_device_init(void)
|
2015-01-15 22:59:27 +08:00
|
|
|
{
|
2015-03-12 22:54:28 +08:00
|
|
|
struct soc_device *soc;
|
|
|
|
struct device *soc_dev = NULL;
|
|
|
|
|
|
|
|
soc = at91_soc_init(rm9200_socs);
|
|
|
|
if (soc != NULL)
|
|
|
|
soc_dev = soc_device_to_device(soc);
|
|
|
|
|
|
|
|
of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev);
|
2015-01-23 18:47:37 +08:00
|
|
|
|
2015-01-27 02:02:54 +08:00
|
|
|
arm_pm_idle = at91rm9200_idle;
|
2015-01-28 01:41:33 +08:00
|
|
|
at91rm9200_pm_init();
|
2015-01-15 22:59:27 +08:00
|
|
|
}
|
|
|
|
|
2015-07-28 06:27:52 +08:00
|
|
|
static const char *const at91rm9200_dt_board_compat[] __initconst = {
|
2012-10-29 02:31:09 +08:00
|
|
|
"atmel,at91rm9200",
|
|
|
|
NULL
|
|
|
|
};
|
|
|
|
|
2015-01-28 01:41:33 +08:00
|
|
|
DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200")
|
|
|
|
.init_machine = at91rm9200_dt_device_init,
|
2012-10-29 02:31:09 +08:00
|
|
|
.dt_compat = at91rm9200_dt_board_compat,
|
|
|
|
MACHINE_END
|