2011-10-10 18:29:24 +02:00
/*
* Setup code for AT91SAM Evaluation Kits with Device Tree support
*
* Copyright ( C ) 2011 Atmel ,
* 2011 Nicolas Ferre < nicolas . ferre @ atmel . com >
*
* Licensed under GPLv2 or later .
*/
# include <linux/types.h>
# include <linux/init.h>
# include <linux/module.h>
# include <linux/gpio.h>
2012-02-14 18:08:14 +01:00
# include <linux/of.h>
# include <linux/of_irq.h>
2011-10-10 18:29:24 +02:00
# include <linux/of_platform.h>
# include <asm/setup.h>
# include <asm/irq.h>
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
# include <asm/mach/irq.h>
2012-10-30 06:41:28 +08:00
# include "at91_aic.h"
2012-10-30 05:14:17 +08:00
# include "board.h"
2011-10-10 18:29:24 +02:00
# include "generic.h"
2012-02-14 18:08:14 +01:00
static const struct of_device_id irq_of_match [ ] __initconst = {
{ . compatible = " atmel,at91rm9200-aic " , . data = at91_aic_of_init } ,
{ /*sentinel*/ }
} ;
2011-10-10 18:29:24 +02:00
static void __init at91_dt_init_irq ( void )
{
2012-02-14 18:08:14 +01:00
of_irq_init ( irq_of_match ) ;
2011-10-10 18:29:24 +02:00
}
static void __init at91_dt_device_init ( void )
{
of_platform_populate ( NULL , of_default_bus_match_table , NULL , NULL ) ;
}
static const char * at91_dt_board_compat [ ] __initdata = {
2012-03-01 14:47:44 +08:00
" atmel,at91sam9 " ,
2011-10-10 18:29:24 +02:00
NULL
} ;
DT_MACHINE_START ( at91sam_dt , " Atmel AT91SAM (Device Tree) " )
/* Maintainer: Atmel */
2012-11-08 12:40:59 -07:00
. init_time = at91sam926x_pit_init ,
2011-10-10 18:29:24 +02:00
. map_io = at91_map_io ,
2012-06-11 15:38:03 +02:00
. handle_irq = at91_aic_handle_irq ,
2012-02-28 13:57:51 +08:00
. init_early = at91_dt_initialize ,
2011-10-10 18:29:24 +02:00
. init_irq = at91_dt_init_irq ,
. init_machine = at91_dt_device_init ,
. dt_compat = at91_dt_board_compat ,
MACHINE_END