summaryrefslogtreecommitdiff
path: root/bsp/gd32/risc-v/libraries/GD32VF103_Firmware_Library/RISCV/drivers/n200_eclic.h
blob: a7b3240a5ea378e841e9739d97a833a872d87d0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* See LICENSE file for licence details */

#ifndef N200_ECLIC_H
#define N200_ECLIC_H

#include <riscv_const.h>

#define ECLICINTCTLBITS  4

/*ECLIC memory map */
/* Offset */
/* 0x0000       1B          RW        ecliccfg */
#define ECLIC_CFG_OFFSET            0x0
/*  0x0004       4B          R         eclicinfo */
#define ECLIC_INFO_OFFSET           0x4
/*  0x000B       1B          RW        mintthresh */
#define ECLIC_MTH_OFFSET            0xB

/* 0x1000+4*i   1B/input    RW        eclicintip[i] */
#define ECLIC_INT_IP_OFFSET            _AC(0x1000,UL)
/* 0x1001+4*i   1B/input    RW        eclicintie[i] */
#define ECLIC_INT_IE_OFFSET            _AC(0x1001,UL)
/* 0x1002+4*i   1B/input    RW        eclicintattr[i]*/
#define ECLIC_INT_ATTR_OFFSET          _AC(0x1002,UL)

#define ECLIC_INT_ATTR_SHV              0x01
#define ECLIC_INT_ATTR_TRIG_LEVEL       0x00
#define ECLIC_INT_ATTR_TRIG_EDGE        0x02
#define ECLIC_INT_ATTR_TRIG_POS         0x00
#define ECLIC_INT_ATTR_TRIG_NEG         0x04

/* 0x1003+4*i   1B/input    RW        eclicintctl[i] */
#define ECLIC_INT_CTRL_OFFSET          _AC(0x1003,UL)

#define ECLIC_ADDR_BASE           0xd2000000


#define ECLIC_CFG_NLBITS_MASK          _AC(0x1E,UL)
#define ECLIC_CFG_NLBITS_LSB     (1u)

#define MSIP_HANDLER    eclic_msip_handler
#define MTIME_HANDLER   eclic_mtip_handler
#define BWEI_HANDLER    eclic_bwei_handler
#define PMOVI_HANDLER   eclic_pmovi_handler

#endif