root/arch/mips/include/asm/mach-rc32434/irq.h
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_RC32434_IRQ_H
#define __ASM_RC32434_IRQ_H

#define NR_IRQS 256

#include <asm/mach-generic/irq.h>
#include <asm/mach-rc32434/rb.h>

/* Interrupt Controller */
#define IC_GROUP0_PEND          (REGBASE + 0x38000)
#define IC_GROUP0_MASK          (REGBASE + 0x38008)
#define IC_GROUP_OFFSET         0x0C

#define NUM_INTR_GROUPS         5

/* 16550 UARTs */
#define GROUP0_IRQ_BASE         8       /* GRP2 IRQ numbers start here */
                                        /* GRP3 IRQ numbers start here */
#define GROUP1_IRQ_BASE         (GROUP0_IRQ_BASE + 32)
                                        /* GRP4 IRQ numbers start here */
#define GROUP2_IRQ_BASE         (GROUP1_IRQ_BASE + 32)
                                        /* GRP5 IRQ numbers start here */
#define GROUP3_IRQ_BASE         (GROUP2_IRQ_BASE + 32)
#define GROUP4_IRQ_BASE         (GROUP3_IRQ_BASE + 32)

#define UART0_IRQ               (GROUP3_IRQ_BASE + 0)

#define ETH0_DMA_RX_IRQ         (GROUP1_IRQ_BASE + 0)
#define ETH0_DMA_TX_IRQ         (GROUP1_IRQ_BASE + 1)
#define ETH0_RX_OVR_IRQ         (GROUP3_IRQ_BASE + 9)
#define ETH0_TX_UND_IRQ         (GROUP3_IRQ_BASE + 10)

#define GPIO_MAPPED_IRQ_BASE    GROUP4_IRQ_BASE
#define GPIO_MAPPED_IRQ_GROUP   4

#endif  /* __ASM_RC32434_IRQ_H */