[PATCH 4/4] ARM: mmp: support sparse irq

Eric Miao eric.y.miao at gmail.com
Tue Sep 14 02:29:48 EDT 2010


On Wed, Sep 8, 2010 at 9:42 PM, Haojian Zhuang <haojian.zhuang at gmail.com> wrote:
> Add sparse IRQ support in ARCH_MMP.
>
> Signed-off-by: Haojian Zhuang <haojian.zhuang at marvell.com>
> Cc: Eric Miao <eric.y.miao at gmail.com>

Applied to 'devel'.

> ---
>  arch/arm/Kconfig                      |    1 +
>  arch/arm/mach-mmp/aspenite.c          |    3 +++
>  arch/arm/mach-mmp/flint.c             |    4 ++++
>  arch/arm/mach-mmp/include/mach/irqs.h |    4 +---
>  arch/arm/mach-mmp/jasper.c            |    5 ++++-
>  arch/arm/mach-mmp/ttc_dkb.c           |    4 ++++
>  6 files changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 45f93e1..eb1d43d 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -511,6 +511,7 @@ config ARCH_MMP
>        select GENERIC_CLOCKEVENTS
>        select TICK_ONESHOT
>        select PLAT_PXA
> +       select SPARSE_IRQ
>        help
>          Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
>
> diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c
> index 9e1bd6b..9b1ef76 100644
> --- a/arch/arm/mach-mmp/aspenite.c
> +++ b/arch/arm/mach-mmp/aspenite.c
> @@ -16,6 +16,7 @@
>  #include <linux/mtd/mtd.h>
>  #include <linux/mtd/partitions.h>
>  #include <linux/mtd/nand.h>
> +#include <linux/interrupt.h>
>
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -212,6 +213,7 @@ MACHINE_START(ASPENITE, "PXA168-based Aspenite Development Platform")
>        .phys_io        = APB_PHYS_BASE,
>        .io_pg_offst    = (APB_VIRT_BASE >> 18) & 0xfffc,
>        .map_io         = mmp_map_io,
> +       .nr_irqs        = IRQ_BOARD_START,
>        .init_irq       = pxa168_init_irq,
>        .timer          = &pxa168_timer,
>        .init_machine   = common_init,
> @@ -221,6 +223,7 @@ MACHINE_START(ZYLONITE2, "PXA168-based Zylonite2 Development Platform")
>        .phys_io        = APB_PHYS_BASE,
>        .io_pg_offst    = (APB_VIRT_BASE >> 18) & 0xfffc,
>        .map_io         = mmp_map_io,
> +       .nr_irqs        = IRQ_BOARD_START,
>        .init_irq       = pxa168_init_irq,
>        .timer          = &pxa168_timer,
>        .init_machine   = common_init,
> diff --git a/arch/arm/mach-mmp/flint.c b/arch/arm/mach-mmp/flint.c
> index e4312d2..c558425 100644
> --- a/arch/arm/mach-mmp/flint.c
> +++ b/arch/arm/mach-mmp/flint.c
> @@ -16,6 +16,7 @@
>  #include <linux/smc91x.h>
>  #include <linux/io.h>
>  #include <linux/gpio.h>
> +#include <linux/interrupt.h>
>
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -25,6 +26,8 @@
>
>  #include "common.h"
>
> +#define FLINT_NR_IRQS  (IRQ_BOARD_START + 48)
> +
>  static unsigned long flint_pin_config[] __initdata = {
>        /* UART1 */
>        GPIO45_UART1_RXD,
> @@ -116,6 +119,7 @@ MACHINE_START(FLINT, "Flint Development Platform")
>        .phys_io        = APB_PHYS_BASE,
>        .io_pg_offst    = (APB_VIRT_BASE >> 18) & 0xfffc,
>        .map_io         = mmp_map_io,
> +       .nr_irqs        = FLINT_NR_IRQS,
>        .init_irq       = mmp2_init_irq,
>        .timer          = &mmp2_timer,
>        .init_machine   = flint_init,
> diff --git a/arch/arm/mach-mmp/include/mach/irqs.h b/arch/arm/mach-mmp/include/mach/irqs.h
> index b379cde..a09d328 100644
> --- a/arch/arm/mach-mmp/include/mach/irqs.h
> +++ b/arch/arm/mach-mmp/include/mach/irqs.h
> @@ -222,10 +222,8 @@
>  #define IRQ_GPIO_NUM                   192
>  #define IRQ_GPIO(x)                    (IRQ_GPIO_START + (x))
>
> -/* Board IRQ - 64 by default, increase if not enough */
>  #define IRQ_BOARD_START                        (IRQ_GPIO_START + IRQ_GPIO_NUM)
> -#define IRQ_BOARD_END                  (IRQ_BOARD_START + 64)
>
> -#define NR_IRQS                                (IRQ_BOARD_END)
> +#define NR_IRQS                                (IRQ_BOARD_START)
>
>  #endif /* __ASM_MACH_IRQS_H */
> diff --git a/arch/arm/mach-mmp/jasper.c b/arch/arm/mach-mmp/jasper.c
> index 80c3e7a..940ee03 100644
> --- a/arch/arm/mach-mmp/jasper.c
> +++ b/arch/arm/mach-mmp/jasper.c
> @@ -18,16 +18,18 @@
>  #include <linux/regulator/machine.h>
>  #include <linux/regulator/max8649.h>
>  #include <linux/mfd/max8925.h>
> +#include <linux/interrupt.h>
>
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
>  #include <mach/addr-map.h>
>  #include <mach/mfp-mmp2.h>
>  #include <mach/mmp2.h>
> -#include <mach/irqs.h>
>
>  #include "common.h"
>
> +#define JASPER_NR_IRQS         (IRQ_BOARD_START + 48)
> +
>  static unsigned long jasper_pin_config[] __initdata = {
>        /* UART1 */
>        GPIO29_UART1_RXD,
> @@ -137,6 +139,7 @@ MACHINE_START(MARVELL_JASPER, "Jasper Development Platform")
>        .phys_io        = APB_PHYS_BASE,
>        .io_pg_offst    = (APB_VIRT_BASE >> 18) & 0xfffc,
>        .map_io         = mmp_map_io,
> +       .nr_irqs        = JASPER_NR_IRQS,
>        .init_irq       = mmp2_init_irq,
>        .timer          = &mmp2_timer,
>        .init_machine   = jasper_init,
> diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c
> index ee65e05..5457113 100644
> --- a/arch/arm/mach-mmp/ttc_dkb.c
> +++ b/arch/arm/mach-mmp/ttc_dkb.c
> @@ -14,6 +14,7 @@
>  #include <linux/mtd/mtd.h>
>  #include <linux/mtd/partitions.h>
>  #include <linux/mtd/onenand.h>
> +#include <linux/interrupt.h>
>
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -24,6 +25,8 @@
>
>  #include "common.h"
>
> +#define TTCDKB_NR_IRQS         (IRQ_BOARD_START + 24)
> +
>  static unsigned long ttc_dkb_pin_config[] __initdata = {
>        /* UART2 */
>        GPIO47_UART2_RXD,
> @@ -125,6 +128,7 @@ MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform")
>        .phys_io        = APB_PHYS_BASE,
>        .io_pg_offst    = (APB_VIRT_BASE >> 18) & 0xfffc,
>        .map_io         = mmp_map_io,
> +       .nr_irqs        = TTCDKB_NR_IRQS,
>        .init_irq       = pxa910_init_irq,
>        .timer          = &pxa910_timer,
>        .init_machine   = ttc_dkb_init,
> --
> 1.5.6.5
>
>



More information about the linux-arm-kernel mailing list