ARM: at91: make use of the new AIC driver for dt enabled boards
Remove selection of OLD_IRQ_AT91 when selecting dt boards. Select ATMEL_AIC_IRQ for sama5 SoCs (a kernel compiled for this SoC will always use ATMEL_AIC_IRQ driver). Select ATMEL_AIC_IRQ for at91rm9200 and at91sam9 SoCs only if OLD_IRQ_AT91 is not selected (which means we are compiling a pure DT kernel, without any legacy board support). Remove specific irq init code in all dt board files: this init procedure is automatically handled in of_irq_init which is called by the arm irq core code and is in charge of calling the appropriate aic init functions. Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
This commit is contained in:
Родитель
071926041e
Коммит
3b26f39b0a
|
@ -50,12 +50,14 @@ config HAVE_AT91_SMD
|
||||||
config SOC_AT91SAM9
|
config SOC_AT91SAM9
|
||||||
bool
|
bool
|
||||||
select AT91_SAM9_TIME
|
select AT91_SAM9_TIME
|
||||||
|
select ATMEL_AIC_IRQ if !OLD_IRQ_AT91
|
||||||
select CPU_ARM926T
|
select CPU_ARM926T
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
|
|
||||||
config SOC_SAMA5
|
config SOC_SAMA5
|
||||||
bool
|
bool
|
||||||
select AT91_SAM9_TIME
|
select AT91_SAM9_TIME
|
||||||
|
select ATMEL_AIC5_IRQ
|
||||||
select CPU_V7
|
select CPU_V7
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select USE_OF
|
select USE_OF
|
||||||
|
@ -108,6 +110,7 @@ endif
|
||||||
if SOC_SAM_V4_V5
|
if SOC_SAM_V4_V5
|
||||||
config SOC_AT91RM9200
|
config SOC_AT91RM9200
|
||||||
bool "AT91RM9200"
|
bool "AT91RM9200"
|
||||||
|
select ATMEL_AIC_IRQ if !OLD_IRQ_AT91
|
||||||
select CPU_ARM920T
|
select CPU_ARM920T
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select HAVE_AT91_DBGU0
|
select HAVE_AT91_DBGU0
|
||||||
|
@ -193,7 +196,6 @@ comment "Generic Board Type"
|
||||||
config MACH_AT91RM9200_DT
|
config MACH_AT91RM9200_DT
|
||||||
bool "Atmel AT91RM9200 Evaluation Kits with device-tree support"
|
bool "Atmel AT91RM9200 Evaluation Kits with device-tree support"
|
||||||
depends on SOC_AT91RM9200
|
depends on SOC_AT91RM9200
|
||||||
select OLD_IRQ_AT91
|
|
||||||
select USE_OF
|
select USE_OF
|
||||||
help
|
help
|
||||||
Select this if you want to experiment device-tree with
|
Select this if you want to experiment device-tree with
|
||||||
|
@ -202,7 +204,6 @@ config MACH_AT91RM9200_DT
|
||||||
config MACH_AT91SAM9_DT
|
config MACH_AT91SAM9_DT
|
||||||
bool "Atmel AT91SAM Evaluation Kits with device-tree support"
|
bool "Atmel AT91SAM Evaluation Kits with device-tree support"
|
||||||
depends on SOC_AT91SAM9
|
depends on SOC_AT91SAM9
|
||||||
select OLD_IRQ_AT91
|
|
||||||
select USE_OF
|
select USE_OF
|
||||||
help
|
help
|
||||||
Select this if you want to experiment device-tree with
|
Select this if you want to experiment device-tree with
|
||||||
|
@ -211,7 +212,6 @@ config MACH_AT91SAM9_DT
|
||||||
config MACH_SAMA5_DT
|
config MACH_SAMA5_DT
|
||||||
bool "Atmel SAMA5 Evaluation Kits with device-tree support"
|
bool "Atmel SAMA5 Evaluation Kits with device-tree support"
|
||||||
depends on SOC_SAMA5
|
depends on SOC_SAMA5
|
||||||
select OLD_IRQ_AT91
|
|
||||||
select USE_OF
|
select USE_OF
|
||||||
select PHYLIB if NETDEVICES
|
select PHYLIB if NETDEVICES
|
||||||
help
|
help
|
||||||
|
|
|
@ -24,17 +24,6 @@
|
||||||
#include "at91_aic.h"
|
#include "at91_aic.h"
|
||||||
#include "generic.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 at91rm9200_dt_init_irq(void)
|
|
||||||
{
|
|
||||||
of_irq_init(irq_of_match);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *at91rm9200_dt_board_compat[] __initdata = {
|
static const char *at91rm9200_dt_board_compat[] __initdata = {
|
||||||
"atmel,at91rm9200",
|
"atmel,at91rm9200",
|
||||||
NULL
|
NULL
|
||||||
|
@ -43,8 +32,6 @@ static const char *at91rm9200_dt_board_compat[] __initdata = {
|
||||||
DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200 (Device Tree)")
|
DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200 (Device Tree)")
|
||||||
.init_time = at91rm9200_timer_init,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
|
||||||
.init_early = at91rm9200_dt_initialize,
|
.init_early = at91rm9200_dt_initialize,
|
||||||
.init_irq = at91rm9200_dt_init_irq,
|
|
||||||
.dt_compat = at91rm9200_dt_board_compat,
|
.dt_compat = at91rm9200_dt_board_compat,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -34,17 +34,6 @@ static void __init sam9_dt_timer_init(void)
|
||||||
at91sam926x_pit_init();
|
at91sam926x_pit_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
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 const char *at91_dt_board_compat[] __initdata = {
|
static const char *at91_dt_board_compat[] __initdata = {
|
||||||
"atmel,at91sam9",
|
"atmel,at91sam9",
|
||||||
NULL
|
NULL
|
||||||
|
@ -54,8 +43,6 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.init_time = sam9_dt_timer_init,
|
.init_time = sam9_dt_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
|
||||||
.init_early = at91_dt_initialize,
|
.init_early = at91_dt_initialize,
|
||||||
.init_irq = at91_dt_init_irq,
|
|
||||||
.dt_compat = at91_dt_board_compat,
|
.dt_compat = at91_dt_board_compat,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -35,17 +35,6 @@ static void __init sama5_dt_timer_init(void)
|
||||||
at91sam926x_pit_init();
|
at91sam926x_pit_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct of_device_id irq_of_match[] __initconst = {
|
|
||||||
|
|
||||||
{ .compatible = "atmel,sama5d3-aic", .data = at91_aic5_of_init },
|
|
||||||
{ /*sentinel*/ }
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init at91_dt_init_irq(void)
|
|
||||||
{
|
|
||||||
of_irq_init(irq_of_match);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ksz9021rn_phy_fixup(struct phy_device *phy)
|
static int ksz9021rn_phy_fixup(struct phy_device *phy)
|
||||||
{
|
{
|
||||||
int value;
|
int value;
|
||||||
|
@ -82,9 +71,7 @@ DT_MACHINE_START(sama5_dt, "Atmel SAMA5 (Device Tree)")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.init_time = sama5_dt_timer_init,
|
.init_time = sama5_dt_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic5_handle_irq,
|
|
||||||
.init_early = at91_dt_initialize,
|
.init_early = at91_dt_initialize,
|
||||||
.init_irq = at91_dt_init_irq,
|
|
||||||
.init_machine = sama5_dt_device_init,
|
.init_machine = sama5_dt_device_init,
|
||||||
.dt_compat = sama5_dt_board_compat,
|
.dt_compat = sama5_dt_board_compat,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
Загрузка…
Ссылка в новой задаче