1 /* See LICENSE file for licence details */
2 
3 #ifndef N200_ECLIC_H
4 #define N200_ECLIC_H
5 
6 #include <riscv_const.h>
7 
8 #define ECLICINTCTLBITS  4
9 
10 /*ECLIC memory map */
11 /* Offset */
12 /* 0x0000       1B          RW        ecliccfg */
13 #define ECLIC_CFG_OFFSET            0x0
14 /*  0x0004       4B          R         eclicinfo */
15 #define ECLIC_INFO_OFFSET           0x4
16 /*  0x000B       1B          RW        mintthresh */
17 #define ECLIC_MTH_OFFSET            0xB
18 
19 /* 0x1000+4*i   1B/input    RW        eclicintip[i] */
20 #define ECLIC_INT_IP_OFFSET            _AC(0x1000,UL)
21 /* 0x1001+4*i   1B/input    RW        eclicintie[i] */
22 #define ECLIC_INT_IE_OFFSET            _AC(0x1001,UL)
23 /* 0x1002+4*i   1B/input    RW        eclicintattr[i]*/
24 #define ECLIC_INT_ATTR_OFFSET          _AC(0x1002,UL)
25 
26 #define ECLIC_INT_ATTR_SHV              0x01
27 #define ECLIC_INT_ATTR_TRIG_LEVEL       0x00
28 #define ECLIC_INT_ATTR_TRIG_EDGE        0x02
29 #define ECLIC_INT_ATTR_TRIG_POS         0x00
30 #define ECLIC_INT_ATTR_TRIG_NEG         0x04
31 
32 /* 0x1003+4*i   1B/input    RW        eclicintctl[i] */
33 #define ECLIC_INT_CTRL_OFFSET          _AC(0x1003,UL)
34 
35 #define ECLIC_ADDR_BASE           0xd2000000
36 
37 
38 #define ECLIC_CFG_NLBITS_MASK          _AC(0x1E,UL)
39 #define ECLIC_CFG_NLBITS_LSB     (1u)
40 
41 #define MSIP_HANDLER    eclic_msip_handler
42 #define MTIME_HANDLER   eclic_mtip_handler
43 #define BWEI_HANDLER    eclic_bwei_handler
44 #define PMOVI_HANDLER   eclic_pmovi_handler
45 
46 #endif
47