This is also include the gpio controller as the IP share both. Each soc will have to describe the SoC limitation and pin configuration via DT. This will allow to do not need to touch the C code when adding new SoC if the IP version is supported. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
/*
|
|
* 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>
|
|
#include <linux/of.h>
|
|
#include <linux/of_irq.h>
|
|
#include <linux/of_platform.h>
|
|
|
|
#include <mach/board.h>
|
|
#include <mach/at91_aic.h>
|
|
|
|
#include <asm/setup.h>
|
|
#include <asm/irq.h>
|
|
#include <asm/mach/arch.h>
|
|
#include <asm/mach/map.h>
|
|
#include <asm/mach/irq.h>
|
|
|
|
#include "generic.h"
|
|
|
|
|
|
static const struct of_device_id irq_of_match[] __initconst = {
|
|
|
|
{ .compatible = "atmel,at91rm9200-aic", .data = at91_aic_of_init },
|
|
{ /*sentinel*/ }
|
|
};
|
|
|
|
static void __init at91_dt_init_irq(void)
|
|
{
|
|
of_irq_init(irq_of_match);
|
|
}
|
|
|
|
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 = {
|
|
"atmel,at91sam9",
|
|
NULL
|
|
};
|
|
|
|
DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)")
|
|
/* Maintainer: Atmel */
|
|
.timer = &at91sam926x_timer,
|
|
.map_io = at91_map_io,
|
|
.handle_irq = at91_aic_handle_irq,
|
|
.init_early = at91_dt_initialize,
|
|
.init_irq = at91_dt_init_irq,
|
|
.init_machine = at91_dt_device_init,
|
|
.dt_compat = at91_dt_board_compat,
|
|
MACHINE_END
|