2012-10-28 22:31:09 +04:00
/*
* Setup code for AT91RM9200 Evaluation Kits with Device Tree support
*
* Copyright ( C ) 2011 Atmel ,
* 2011 Nicolas Ferre < nicolas . ferre @ atmel . com >
* 2012 Joachim Eastwood < manabian @ gmail . com >
*
* Licensed under GPLv2 or later .
*/
# include <linux/types.h>
# include <linux/init.h>
# include <linux/module.h>
# include <linux/gpio.h>
# include <linux/of.h>
# include <linux/of_irq.h>
2015-01-15 17:59:27 +03:00
# include <linux/of_platform.h>
2014-09-05 18:15:33 +04:00
# include <linux/clk-provider.h>
2012-10-28 22:31:09 +04:00
# include <asm/setup.h>
# include <asm/irq.h>
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
# include <asm/mach/irq.h>
2015-01-26 21:02:54 +03:00
# include <asm/system_misc.h>
# include <mach/at91_st.h>
2012-10-28 22:31:09 +04:00
# include "generic.h"
2015-01-26 21:02:54 +03:00
static void at91rm9200_restart ( enum reboot_mode reboot_mode , const char * cmd )
{
/*
* Perform a hardware reset with the use of the Watchdog timer .
*/
at91_st_write ( AT91_ST_WDMR , AT91_ST_RSTEN | AT91_ST_EXTEN | 1 ) ;
at91_st_write ( AT91_ST_CR , AT91_ST_WDRST ) ;
}
2014-09-05 18:15:33 +04:00
static void __init at91rm9200_dt_timer_init ( void )
{
of_clk_init ( NULL ) ;
at91rm9200_timer_init ( ) ;
}
2015-01-15 17:59:27 +03:00
static void __init rm9200_dt_device_init ( void )
{
of_platform_populate ( NULL , of_default_bus_match_table , NULL , NULL ) ;
2015-01-23 13:47:37 +03:00
2015-01-26 21:02:54 +03:00
arm_pm_idle = at91rm9200_idle ;
arm_pm_restart = at91rm9200_restart ;
2015-01-23 13:47:37 +03:00
at91_rm9200_pm_init ( ) ;
2015-01-15 17:59:27 +03:00
}
2015-01-22 19:19:04 +03:00
static const char * at91rm9200_dt_board_compat [ ] __initconst = {
2012-10-28 22:31:09 +04:00
" atmel,at91rm9200 " ,
NULL
} ;
DT_MACHINE_START ( at91rm9200_dt , " Atmel AT91RM9200 (Device Tree) " )
2014-09-05 18:15:33 +04:00
. init_time = at91rm9200_dt_timer_init ,
2012-10-28 22:31:09 +04:00
. map_io = at91_map_io ,
2015-01-12 21:42:15 +03:00
. init_early = at91_dt_initialize ,
2015-01-15 17:59:27 +03:00
. init_machine = rm9200_dt_device_init ,
2012-10-28 22:31:09 +04:00
. dt_compat = at91rm9200_dt_board_compat ,
MACHINE_END