n22_eclic.h 1.4 KB

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