162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __ASM_ARC_IRQ_H
762306a36Sopenharmony_ci#define __ASM_ARC_IRQ_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/*
1062306a36Sopenharmony_ci * ARCv2 can support 240 interrupts in the core interrupts controllers and
1162306a36Sopenharmony_ci * 128 interrupts in IDU. Thus 512 virtual IRQs must be enough for most
1262306a36Sopenharmony_ci * configurations of boards.
1362306a36Sopenharmony_ci * This doesnt affect ARCompact, but we change it to same value
1462306a36Sopenharmony_ci */
1562306a36Sopenharmony_ci#define NR_IRQS		512
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci/* Platform Independent IRQs */
1862306a36Sopenharmony_ci#ifdef CONFIG_ISA_ARCV2
1962306a36Sopenharmony_ci#define IPI_IRQ		19
2062306a36Sopenharmony_ci#define SOFTIRQ_IRQ	21
2162306a36Sopenharmony_ci#define FIRST_EXT_IRQ	24
2262306a36Sopenharmony_ci#endif
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#include <linux/interrupt.h>
2562306a36Sopenharmony_ci#include <asm-generic/irq.h>
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciextern void arc_init_IRQ(void);
2862306a36Sopenharmony_ciextern void arch_do_IRQ(unsigned int, struct pt_regs *);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#endif
31