summaryrefslogtreecommitdiff
path: root/bsp/gd32vf103v-eval/libraries/n22/drivers/n22_eclic.h
blob: a91c3aafc45447208b6f6f518f1e3bc1e88abfef (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
47
// See LICENSE file for licence details

#ifndef N22_ECLIC_H
#define N22_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