devapc.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #ifndef _DAPC_H
  2. #define _DAPC_H
  3. #include <linux/types.h>
  4. #define MOD_NO_IN_1_DEVAPC 16
  5. #define DEVAPC_TAG "DEVAPC"
  6. #if defined(CONFIG_ARCH_MT6735)
  7. /*For EMI API DEVAPC0_D0_VIO_STA_3, idx:124*/
  8. #define ABORT_EMI 0x10000000
  9. #elif defined(CONFIG_ARCH_MT6735M)
  10. /*For EMI API DEVAPC0_D0_VIO_STA_3, idx:115*/
  11. #define ABORT_EMI 0x80000
  12. #elif defined(CONFIG_ARCH_MT6753)
  13. /*For EMI API DEVAPC0_D0_VIO_STA_3, idx:125*/
  14. #define ABORT_EMI 0x20000000
  15. #else
  16. #error "Wrong Config type"
  17. #endif
  18. /*Define constants*/
  19. #define DEVAPC_DEVICE_NUMBER 140 /* This number must be bigger than total slave */
  20. #define DEVAPC_DOMAIN_AP 0
  21. #define DEVAPC_DOMAIN_MD1 1
  22. #define DEVAPC_DOMAIN_CONN 2
  23. #define DEVAPC_DOMAIN_MD32 3
  24. #if defined(CONFIG_ARCH_MT6735)
  25. #define DEVAPC_DOMAIN_MM 4
  26. #define DEVAPC_DOMAIN_MD3 5
  27. #define DEVAPC_DOMAIN_MFG 6
  28. #define VIO_DBG_MSTID 0x0003FFF
  29. #define VIO_DBG_DMNID 0x000C000
  30. #define VIO_DBG_RW 0x3000000
  31. #define VIO_DBG_CLR 0x80000000
  32. #elif defined(CONFIG_ARCH_MT6735M)
  33. #define VIO_DBG_MSTID 0x0003FFF
  34. #define VIO_DBG_DMNID 0x000C000
  35. #define VIO_DBG_RW 0x3000000
  36. #define VIO_DBG_CLR 0x80000000
  37. #elif defined(CONFIG_ARCH_MT6753)
  38. #define DEVAPC_DOMAIN_MM 4
  39. #define DEVAPC_DOMAIN_MD3 5
  40. #define DEVAPC_DOMAIN_MFG 6
  41. #define VIO_DBG_MSTID 0x00000FFF
  42. #define VIO_DBG_DMNID 0x0000F000
  43. #define VIO_DBG_RW 0x30000000
  44. #define VIO_DBG_CLR 0x80000000
  45. #else
  46. #error "Wrong MACH type"
  47. #endif
  48. /******************************************************************************
  49. *REGISTER ADDRESS DEFINATION
  50. ******************************************************************************/
  51. #define DEVAPC0_D0_APC_0 (devapc_ao_base+0x0000)
  52. #define DEVAPC0_D1_APC_0 (devapc_ao_base+0x0100)
  53. #define DEVAPC0_D2_APC_0 (devapc_ao_base+0x0200)
  54. #define DEVAPC0_D3_APC_0 (devapc_ao_base+0x0300)
  55. #if defined(CONFIG_ARCH_MT6735)
  56. #define DEVAPC0_D4_APC_0 (devapc_ao_base+0x0400)
  57. #define DEVAPC0_D5_APC_0 (devapc_ao_base+0x0500)
  58. #define DEVAPC0_D6_APC_0 (devapc_ao_base+0x0600)
  59. #define DEVAPC0_D7_APC_0 (devapc_ao_base+0x0700)
  60. #elif defined(CONFIG_ARCH_MT6735M)
  61. #elif defined(CONFIG_ARCH_MT6753)
  62. #define DEVAPC0_D4_APC_0 (devapc_ao_base+0x0400)
  63. #define DEVAPC0_D5_APC_0 (devapc_ao_base+0x0500)
  64. #define DEVAPC0_D6_APC_0 (devapc_ao_base+0x0600)
  65. #define DEVAPC0_D7_APC_0 (devapc_ao_base+0x0700)
  66. #else
  67. #error "Wrong Config type"
  68. #endif
  69. #define DEVAPC0_APC_CON ((unsigned int *)(devapc_ao_base+0x0F00))
  70. #define DEVAPC0_APC_LOCK_0 ((unsigned int *)(devapc_ao_base+0x0F04))
  71. #define DEVAPC0_APC_LOCK_1 ((unsigned int *)(devapc_ao_base+0x0F08))
  72. #define DEVAPC0_APC_LOCK_2 ((unsigned int *)(devapc_ao_base+0x0F0C))
  73. #define DEVAPC0_APC_LOCK_3 ((unsigned int *)(devapc_ao_base+0x0F10))
  74. #define DEVAPC0_APC_LOCK_4 ((unsigned int *)(devapc_ao_base+0x0F14))
  75. #define DEVAPC0_PD_APC_CON ((unsigned int *)(devapc_pd_base+0x0F00))
  76. #define DEVAPC0_D0_VIO_MASK_0 ((unsigned int *)(devapc_pd_base+0x0000))
  77. #define DEVAPC0_D0_VIO_MASK_1 ((unsigned int *)(devapc_pd_base+0x0004))
  78. #define DEVAPC0_D0_VIO_MASK_2 ((unsigned int *)(devapc_pd_base+0x0008))
  79. #define DEVAPC0_D0_VIO_MASK_3 ((unsigned int *)(devapc_pd_base+0x000C))
  80. #define DEVAPC0_D0_VIO_MASK_4 ((unsigned int *)(devapc_pd_base+0x0010))
  81. #define DEVAPC0_D0_VIO_STA_0 ((unsigned int *)(devapc_pd_base+0x0400))
  82. #define DEVAPC0_D0_VIO_STA_1 ((unsigned int *)(devapc_pd_base+0x0404))
  83. #define DEVAPC0_D0_VIO_STA_2 ((unsigned int *)(devapc_pd_base+0x0408))
  84. #define DEVAPC0_D0_VIO_STA_3 ((unsigned int *)(devapc_pd_base+0x040C))
  85. #define DEVAPC0_D0_VIO_STA_4 ((unsigned int *)(devapc_pd_base+0x0410))
  86. #define DEVAPC0_VIO_DBG0 ((unsigned int *)(devapc_pd_base+0x0900))
  87. #define DEVAPC0_VIO_DBG1 ((unsigned int *)(devapc_pd_base+0x0904))
  88. #define DEVAPC0_DEC_ERR_CON ((unsigned int *)(devapc_pd_base+0x0F80))
  89. #define DEVAPC0_DEC_ERR_ADDR ((unsigned int *)(devapc_pd_base+0x0F84))
  90. #define DEVAPC0_DEC_ERR_ID ((unsigned int *)(devapc_pd_base+0x0F88))
  91. struct DEVICE_INFO {
  92. const char *device;
  93. };
  94. struct DOMAIN_INFO {
  95. const char *name;
  96. };
  97. #ifdef CONFIG_MTK_HIBERNATION
  98. extern void mt_irq_set_sens(unsigned int irq, unsigned int sens);
  99. extern void mt_irq_set_polarity(unsigned int irq, unsigned int polarity);
  100. #endif
  101. #endif