/**
 * @file hv_chip_irq.h
 * @brief define irq number
 * @details anyware
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2022-09-05
 * @copyright 版权信息
*/

#ifndef _HV_CHIP_IRQ_H
#define _HV_CHIP_IRQ_H

/**
 * @brief 8 risc interruptt \n
 * @details int0 is forrisc count timer. gic is attatched to int5 \n
 */
#define HV_CHIP_IRQ_SW_INT0 0
#define HV_CHIP_IRQ_SW_INT1 1
#define HV_CHIP_IRQ_FDC     4
#define HV_CHIP_IRQ_GLOBAL  5
#define HV_CHIP_IRQ_PC      6
#define HV_CHIP_IRQ_TIMER   7


/**
 * @brief 64 gic interruptt \n
 * @details gic is attatched to int5, and is base at 8 \n
 */
#define HV_CHIP_IRQ_BASE 8
#define HV_CHIP_INT(x) (HV_CHIP_IRQ_BASE + x)

typedef enum _HS_BOARD_IRQ {
    HV_CHIP_IRQ_PM51           = HV_CHIP_INT(0),
    HV_CHIP_IRQ_DPRX0          = HV_CHIP_INT(1),
    HV_CHIP_IRQ_AUDIO          = HV_CHIP_INT(2),
    HV_CHIP_IRQ_DPRX1          = HV_CHIP_INT(3),
    HV_CHIP_IRQ_RX_HDCP_0      = HV_CHIP_INT(4),
    HV_CHIP_IRQ_RX_HDMI_0      = HV_CHIP_INT(5),
    HV_CHIP_IRQ_RX_HDMI_1      = HV_CHIP_INT(6),
    HV_CHIP_IRQ_RX_PHY         = HV_CHIP_INT(7),
    HV_CHIP_IRQ_TYPC0          = HV_CHIP_INT(8),
    HV_CHIP_IRQ_TYPC1          = HV_CHIP_INT(9),
    HV_CHIP_IRQ_DIMMER         = HV_CHIP_INT(10),
    HV_CHIP_IRQ_OSD_INT        = HV_CHIP_INT(11),
    HV_CHIP_IRQ_DPU            = HV_CHIP_INT(12),
    HV_CHIP_IRQ_RESV13         = HV_CHIP_INT(13),
    HV_CHIP_IRQ_SYSPLL_LOCKED  = HV_CHIP_INT(14),
    HV_CHIP_IRQ_MI2C_INTR      = HV_CHIP_INT(15),
    HV_CHIP_IRQ_FRAMERATE      = HV_CHIP_INT(16),
    HV_CHIP_IRQ_DTC_OVER       = HV_CHIP_INT(17),
    HV_CHIP_IRQ_DTC_UNDER      = HV_CHIP_INT(18),
    HV_CHIP_IRQ_P2P_TX         = HV_CHIP_INT(19),
    HV_CHIP_IRQ_TX_LOCK_OUT    = HV_CHIP_INT(20),
    HV_CHIP_IRQ_EDPTX_00_HPD   = HV_CHIP_INT(21),
    HV_CHIP_IRQ_EDPTX_01_HPD   = HV_CHIP_INT(22),
    HV_CHIP_IRQ_SH12_0         = HV_CHIP_INT(23),
    HV_CHIP_IRQ_SH12_1         = HV_CHIP_INT(24),
    HV_CHIP_IRQ_HS_IP0         = HV_CHIP_INT(25),
    HV_CHIP_IRQ_HS_IP1         = HV_CHIP_INT(26),
    HV_CHIP_IRQ_HS_DISP        = HV_CHIP_INT(27),
    HV_CHIP_IRQ_RX_CABLE0      = HV_CHIP_INT(28),
    HV_CHIP_IRQ_RX_CABLE1      = HV_CHIP_INT(29),
    HV_CHIP_IRQ_RX_CABLE2      = HV_CHIP_INT(30),
    HV_CHIP_IRQ_RX_CABLE3      = HV_CHIP_INT(31),
    HV_CHIP_IRQ_USB            = HV_CHIP_INT(32),
    HV_CHIP_IRQ_RESV33         = HV_CHIP_INT(33),
    HV_CHIP_IRQ_RESV34         = HV_CHIP_INT(34),
    HV_CHIP_IRQ_RESV35         = HV_CHIP_INT(35),
    HV_CHIP_IRQ_GDMAC_CH7      = HV_CHIP_INT(36),
    HV_CHIP_IRQ_GDMAC_CH6      = HV_CHIP_INT(37),
    HV_CHIP_IRQ_GDMAC_CH5      = HV_CHIP_INT(38),
    HV_CHIP_IRQ_GDMAC_CH4      = HV_CHIP_INT(39),
    HV_CHIP_IRQ_GDMAC_CH3      = HV_CHIP_INT(40),
    HV_CHIP_IRQ_GDMAC_CH2      = HV_CHIP_INT(41),
    HV_CHIP_IRQ_GDMAC_CH1      = HV_CHIP_INT(42),
    HV_CHIP_IRQ_GDMAC_CH0      = HV_CHIP_INT(43),
    HV_CHIP_IRQ_SPI0           = HV_CHIP_INT(44),
    HV_CHIP_IRQ_UART1          = HV_CHIP_INT(45),
    HV_CHIP_IRQ_UART0          = HV_CHIP_INT(46),
    HV_CHIP_IRQ_QSPI0          = HV_CHIP_INT(47),
    HV_CHIP_IRQ_I2C0           = HV_CHIP_INT(48),
    HV_CHIP_IRQ_I2C1           = HV_CHIP_INT(49),
    HV_CHIP_IRQ_SPI1           = HV_CHIP_INT(50),
    HV_CHIP_IRQ_GPIO_CH5       = HV_CHIP_INT(51),
    HV_CHIP_IRQ_GPIO_CH4       = HV_CHIP_INT(52),
    HV_CHIP_IRQ_GPIO_CH3       = HV_CHIP_INT(53),
    HV_CHIP_IRQ_GPIO_CH2       = HV_CHIP_INT(54),
    HV_CHIP_IRQ_GPIO_CH1       = HV_CHIP_INT(55),
    HV_CHIP_IRQ_GPIO_CH0       = HV_CHIP_INT(56),
    HV_CHIP_IRQ_TIMER0_CH0     = HV_CHIP_INT(57),
    HV_CHIP_IRQ_WDG            = HV_CHIP_INT(58),
    HV_CHIP_IRQ_PDMAC_CH3      = HV_CHIP_INT(59),
    HV_CHIP_IRQ_PDMAC_CH2      = HV_CHIP_INT(60),
    HV_CHIP_IRQ_PDMAC_CH1      = HV_CHIP_INT(61),
    HV_CHIP_IRQ_PDMAC_CH0      = HV_CHIP_INT(62),
    HV_CHIP_IRQ_TIMER1_CH0     = HV_CHIP_INT(63),
} HS_BOARD_IRQ;

/**
 * @brief some common peripheral irq define \n
 * @details some common peripheral irq define\n
 */
#define HV_CHIP_IRQ_QSPI    HV_CHIP_IRQ_QSPI0
#define HV_CHIP_IRQ_DMAC    HV_CHIP_IRQ_GDMAC_CH0
#define HV_CHIP_IRQ_GPIO00  HV_CHIP_IRQ_GPIO_CH0
#define HV_CHIP_IRQ_GPIO01  HV_CHIP_IRQ_GPIO_CH1
#define HV_CHIP_IRQ_GPIO10  HV_CHIP_IRQ_GPIO_CH2
#define HV_CHIP_IRQ_GPIO11  HV_CHIP_IRQ_GPIO_CH3
#define HV_CHIP_IRQ_UART2   HV_CHIP_IRQ_UART0
#define HV_CHIP_IRQ_UART3   HV_CHIP_IRQ_UART0

#endif
