Commit 36f1a4ae authored by Arnd Bergmann's avatar Arnd Bergmann

ARM: ep93xx: enable SPARSE_IRQ

Without CONFIG_SPARSE_IRQ, we rely on mach/irqs.h to define NR_IRQS
globally. Do the minimal conversion by setting .nr_irqs in each
machine descriptor.

Only the vision_ep9307 machine has extra IRQs for GPIOs, so make
.nr_irqs the original value there, while using the plain NR_EP93XX_IRQS
everywhere else.

Cc: Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Hubert Feurstein <hubert.feurstein@contec.at>
Cc: Lukasz Majewski <lukma@denx.de>
Tested-by: default avatarAlexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 482c2727
...@@ -358,6 +358,8 @@ config ARCH_EP93XX ...@@ -358,6 +358,8 @@ config ARCH_EP93XX
select CPU_ARM920T select CPU_ARM920T
select GPIOLIB select GPIOLIB
select COMMON_CLK select COMMON_CLK
select IRQ_DOMAIN
select SPARSE_IRQ
help help
This enables support for the Cirrus EP93xx series of CPUs. This enables support for the Cirrus EP93xx series of CPUs.
......
...@@ -32,6 +32,7 @@ static void __init adssphere_init_machine(void) ...@@ -32,6 +32,7 @@ static void __init adssphere_init_machine(void)
MACHINE_START(ADSSPHERE, "ADS Sphere board") MACHINE_START(ADSSPHERE, "ADS Sphere board")
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include "soc.h" #include "soc.h"
#include "irqs.h"
/************************************************************************* /*************************************************************************
* Static I/O mappings that are needed for all EP93xx platforms * Static I/O mappings that are needed for all EP93xx platforms
......
...@@ -243,6 +243,7 @@ static void __init edb93xx_init_machine(void) ...@@ -243,6 +243,7 @@ static void __init edb93xx_init_machine(void)
MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
/* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -255,6 +256,7 @@ MACHINE_END ...@@ -255,6 +256,7 @@ MACHINE_END
MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
/* Maintainer: George Kashperko <george@chas.com.ua> */ /* Maintainer: George Kashperko <george@chas.com.ua> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -267,6 +269,7 @@ MACHINE_END ...@@ -267,6 +269,7 @@ MACHINE_END
MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -279,6 +282,7 @@ MACHINE_END ...@@ -279,6 +282,7 @@ MACHINE_END
MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
/* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -291,6 +295,7 @@ MACHINE_END ...@@ -291,6 +295,7 @@ MACHINE_END
MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
/* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -303,6 +308,7 @@ MACHINE_END ...@@ -303,6 +308,7 @@ MACHINE_END
MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
/* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -315,6 +321,7 @@ MACHINE_END ...@@ -315,6 +321,7 @@ MACHINE_END
MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -327,6 +334,7 @@ MACHINE_END ...@@ -327,6 +334,7 @@ MACHINE_END
MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
...@@ -32,6 +32,7 @@ static void __init gesbc9312_init_machine(void) ...@@ -32,6 +32,7 @@ static void __init gesbc9312_init_machine(void)
MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
/* SPDX-License-Identifier: GPL-2.0 */ /* SPDX-License-Identifier: GPL-2.0 */
/*
* arch/arm/mach-ep93xx/include/mach/irqs.h
*/
#ifndef __ASM_ARCH_IRQS_H #ifndef __ASM_ARCH_IRQS_H
#define __ASM_ARCH_IRQS_H #define __ASM_ARCH_IRQS_H
...@@ -77,7 +73,4 @@ ...@@ -77,7 +73,4 @@
#define EP93XX_BOARD_IRQ(x) (NR_EP93XX_IRQS + (x)) #define EP93XX_BOARD_IRQ(x) (NR_EP93XX_IRQS + (x))
#define EP93XX_BOARD_IRQS 32 #define EP93XX_BOARD_IRQS 32
#define NR_IRQS (NR_EP93XX_IRQS + EP93XX_BOARD_IRQS)
#endif #endif
...@@ -76,6 +76,7 @@ static void __init micro9_init_machine(void) ...@@ -76,6 +76,7 @@ static void __init micro9_init_machine(void)
MACHINE_START(MICRO9, "Contec Micro9-High") MACHINE_START(MICRO9, "Contec Micro9-High")
/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -88,6 +89,7 @@ MACHINE_END ...@@ -88,6 +89,7 @@ MACHINE_END
MACHINE_START(MICRO9M, "Contec Micro9-Mid") MACHINE_START(MICRO9M, "Contec Micro9-Mid")
/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -100,6 +102,7 @@ MACHINE_END ...@@ -100,6 +102,7 @@ MACHINE_END
MACHINE_START(MICRO9L, "Contec Micro9-Lite") MACHINE_START(MICRO9L, "Contec Micro9-Lite")
/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -112,6 +115,7 @@ MACHINE_END ...@@ -112,6 +115,7 @@ MACHINE_END
MACHINE_START(MICRO9S, "Contec Micro9-Slim") MACHINE_START(MICRO9S, "Contec Micro9-Slim")
/* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
...@@ -119,6 +119,7 @@ static void __init simone_init_machine(void) ...@@ -119,6 +119,7 @@ static void __init simone_init_machine(void)
MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board")
/* Maintainer: Ryan Mallon */ /* Maintainer: Ryan Mallon */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
...@@ -153,6 +153,7 @@ static void __init snappercl15_init_machine(void) ...@@ -153,6 +153,7 @@ static void __init snappercl15_init_machine(void)
MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15")
/* Maintainer: Ryan Mallon */ /* Maintainer: Ryan Mallon */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#define _EP93XX_SOC_H #define _EP93XX_SOC_H
#include <mach/ep93xx-regs.h> #include <mach/ep93xx-regs.h>
#include "irqs.h"
/* /*
* EP93xx Physical Memory Map: * EP93xx Physical Memory Map:
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include "gpio-ep93xx.h" #include "gpio-ep93xx.h"
#include "hardware.h" #include "hardware.h"
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -350,6 +349,7 @@ static void __init ts72xx_init_machine(void) ...@@ -350,6 +349,7 @@ static void __init ts72xx_init_machine(void)
MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ts72xx_map_io, .map_io = ts72xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
...@@ -413,6 +413,7 @@ static void __init bk3_init_machine(void) ...@@ -413,6 +413,7 @@ static void __init bk3_init_machine(void)
MACHINE_START(BK3, "Liebherr controller BK3.1") MACHINE_START(BK3, "Liebherr controller BK3.1")
/* Maintainer: Lukasz Majewski <lukma@denx.de> */ /* Maintainer: Lukasz Majewski <lukma@denx.de> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS,
.map_io = ts72xx_map_io, .map_io = ts72xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
...@@ -302,6 +302,7 @@ static void __init vision_init_machine(void) ...@@ -302,6 +302,7 @@ static void __init vision_init_machine(void)
MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307")
/* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.nr_irqs = NR_EP93XX_IRQS + EP93XX_BOARD_IRQS,
.map_io = vision_map_io, .map_io = vision_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment