1 /*
2  * Copyright (c) 2006-2020, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2020-06-21     bigmagic     Initial version
9  */
10 
11 #ifndef _DRV_INTERRUPT_H__
12 #define _DRV_INTERRUPT_H__
13 
14 #define LS2K_UART_0_1_2_3_IRQ       (0)
15 #define LS2K_UART_4_5_6_7_IRQ       (1)
16 #define LS2K_UART_8_9_10_11_IRQ     (2)
17 #define LS2K_EL_IRQ                 (3)
18 #define LS2K_HDA_IRQ                (4)
19 #define LS2K_I2S_IRQ                (5)
20 #define LS2K_RESERVED1_IRQ          (6)
21 #define LS2K_THSENS_IRQ             (7)
22 #define LS2K_TOY_TICK_IRQ           (8)
23 #define LS2K_RTC_TICK_IRQ           (9)
24 #define LS2K_CAM_TICK_IRQ           (10)
25 #define LS2K_RESERVED2_IRQ          (11)
26 #define LS2K_GMAC0_SBD_IRQ          (12)
27 #define LS2K_GMAC0_PMT_IRQ          (13)
28 #define LS2K_GMAC1_SBD_IRQ          (14)
29 #define LS2K_GMAC1_PMT_IRQ          (15)
30 #define LS2K_CANO_IRQ               (16)
31 #define LS2K_CAN1_IRQ               (17)
32 #define LS2K_BOOT_IRQ               (18)
33 #define LS2K_SATA_IRQ               (19)
34 #define LS2K_NAND_IRQ               (20)
35 #define LS2K_HPET_IRQ               (21)
36 #define LS2K_I2C0_IRQ               (21)
37 #define LS2K_I2C1_IRQ               (22)
38 #define LS2K_I2C2_IRQ               (23)
39 #define LS2K_PWM0_IRQ               (24)
40 #define LS2K_PWM1_IRQ               (25)
41 #define LS2K_PWM2_IRQ               (26)
42 #define LS2K_PWM3_IRQ               (27)
43 #define LS2K_DC_IRQ                 (28)
44 #define LS2K_GPU_IRQ                (29)
45 #define LS2K_VPU_IRQ                (30)
46 #define LS2K_SDIO_IRQ               (31)
47 //#define LS2K_PCIE0_IRQ              (32~35)
48 //#define LS2K_PCIE1_IRQ              (36~37)
49 #define LS2K_HPET1_IRQ              (38)
50 #define LS2K_HPET2_IRQ              (39)
51 //#define LS2K_TOY_IRQ                (40~43)
52 //#define LS2K_DMA_IRQ                (44~48)
53 #define LS2K_OTG_IRQ                (49)
54 #define LS2K_EHCI_IRQ               (50)
55 #define LS2K_OHCI_IRQ               (51)
56 //#define LS2K_RTC_IRQ                (52~54)
57 #define LS2K_RSA_IRQ                (55)
58 #define LS2K_AES_IRQ                (56)
59 #define LS2K_DES_IRQ                (57)
60 #define LS2K_GPIO_INTLO_IRQ         (58)
61 #define LS2K_GPIO_INTHI_IRQ         (59)
62 #define LS2K_GPIO0_INT_IRQ          (60)
63 #define LS2K_GPIO1_INT_IRQ          (61)
64 #define LS2K_GPIO2_INT_IRQ          (62)
65 #define LS2K_GPIO3_INT_IRQ          (63)
66 
67 #define MAX_INTR                    (64)
68 #define LIOINTC0_IRQBASE            (0)
69 #define LIOINTC1_IRQBASE            (32)
70 
71 #define LIOINTC_SHIFT_INTx          (4)
72 #define LIOINTC_COREx_INTy(x, y)    ((1 << x) | (1 << (y + LIOINTC_SHIFT_INTx)))
73 
74 #define LIOINTC_INTC_CHIP_START      0x20
75 
76 #define LIOINTC_REG_INTC_STATUS      (LIOINTC_INTC_CHIP_START + 0x00)
77 #define LIOINTC_REG_INTC_EN_STATUS   (LIOINTC_INTC_CHIP_START + 0x04)
78 #define LIOINTC_REG_INTC_ENABLE      (LIOINTC_INTC_CHIP_START + 0x08)
79 #define LIOINTC_REG_INTC_DISABLE     (LIOINTC_INTC_CHIP_START + 0x0c)
80 #define LIOINTC_REG_INTC_POL         (LIOINTC_INTC_CHIP_START + 0x10)
81 #define LIOINTC_REG_INTC_EDGE        (LIOINTC_INTC_CHIP_START + 0x14)
82 
83 void liointc_set_irq_mode(int irq, int mode);
84 
85 #endif
86