host_reg_init.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. /*
  2. * Copyright (c) 2016 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. #ifndef HOST_REG_INIT_H
  19. #define HOST_REG_INIT_H
  20. #include "reg_struct.h"
  21. #include "targaddrs.h"
  22. #if defined(MY_HOST_DEF)
  23. #if !defined(FW_IND_HOST_READY)
  24. #define FW_IND_HOST_READY 0
  25. #endif
  26. #if !defined(PCIE_LOCAL_BASE_ADDRESS)
  27. #define PCIE_LOCAL_BASE_ADDRESS 0
  28. #define PCIE_SOC_WAKE_RESET 0
  29. #define PCIE_SOC_WAKE_ADDRESS 0
  30. #define PCIE_SOC_WAKE_V_MASK 0
  31. #define RTC_STATE_ADDRESS 0
  32. #define RTC_STATE_COLD_RESET_MASK 0
  33. #define RTC_STATE_V_MASK 0
  34. #define RTC_STATE_V_LSB 0
  35. #define RTC_STATE_V_ON 0
  36. #define SOC_GLOBAL_RESET_ADDRESS 0
  37. #endif
  38. #if !defined(CE_COUNT)
  39. #define CE_COUNT 0
  40. #endif
  41. #if !defined(TRANSACTION_ID_MASK)
  42. #define TRANSACTION_ID_MASK 0xfff
  43. #endif
  44. static struct hostdef_s my_host_def = {
  45. .d_INT_STATUS_ENABLE_ERROR_LSB = INT_STATUS_ENABLE_ERROR_LSB,
  46. .d_INT_STATUS_ENABLE_ERROR_MASK = INT_STATUS_ENABLE_ERROR_MASK,
  47. .d_INT_STATUS_ENABLE_CPU_LSB = INT_STATUS_ENABLE_CPU_LSB,
  48. .d_INT_STATUS_ENABLE_CPU_MASK = INT_STATUS_ENABLE_CPU_MASK,
  49. .d_INT_STATUS_ENABLE_COUNTER_LSB = INT_STATUS_ENABLE_COUNTER_LSB,
  50. .d_INT_STATUS_ENABLE_COUNTER_MASK = INT_STATUS_ENABLE_COUNTER_MASK,
  51. .d_INT_STATUS_ENABLE_MBOX_DATA_LSB = INT_STATUS_ENABLE_MBOX_DATA_LSB,
  52. .d_INT_STATUS_ENABLE_MBOX_DATA_MASK = INT_STATUS_ENABLE_MBOX_DATA_MASK,
  53. .d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB
  54. = ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB,
  55. .d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK
  56. = ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK,
  57. .d_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB
  58. = ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB,
  59. .d_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK
  60. = ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK,
  61. .d_COUNTER_INT_STATUS_ENABLE_BIT_LSB
  62. = COUNTER_INT_STATUS_ENABLE_BIT_LSB,
  63. .d_COUNTER_INT_STATUS_ENABLE_BIT_MASK
  64. = COUNTER_INT_STATUS_ENABLE_BIT_MASK,
  65. .d_INT_STATUS_ENABLE_ADDRESS = INT_STATUS_ENABLE_ADDRESS,
  66. .d_CPU_INT_STATUS_ENABLE_BIT_LSB = CPU_INT_STATUS_ENABLE_BIT_LSB,
  67. .d_CPU_INT_STATUS_ENABLE_BIT_MASK = CPU_INT_STATUS_ENABLE_BIT_MASK,
  68. .d_HOST_INT_STATUS_ADDRESS = HOST_INT_STATUS_ADDRESS,
  69. .d_CPU_INT_STATUS_ADDRESS = CPU_INT_STATUS_ADDRESS,
  70. .d_ERROR_INT_STATUS_ADDRESS = ERROR_INT_STATUS_ADDRESS,
  71. .d_ERROR_INT_STATUS_WAKEUP_MASK = ERROR_INT_STATUS_WAKEUP_MASK,
  72. .d_ERROR_INT_STATUS_WAKEUP_LSB = ERROR_INT_STATUS_WAKEUP_LSB,
  73. .d_ERROR_INT_STATUS_RX_UNDERFLOW_MASK
  74. = ERROR_INT_STATUS_RX_UNDERFLOW_MASK,
  75. .d_ERROR_INT_STATUS_RX_UNDERFLOW_LSB
  76. = ERROR_INT_STATUS_RX_UNDERFLOW_LSB,
  77. .d_ERROR_INT_STATUS_TX_OVERFLOW_MASK
  78. = ERROR_INT_STATUS_TX_OVERFLOW_MASK,
  79. .d_ERROR_INT_STATUS_TX_OVERFLOW_LSB = ERROR_INT_STATUS_TX_OVERFLOW_LSB,
  80. .d_COUNT_DEC_ADDRESS = COUNT_DEC_ADDRESS,
  81. .d_HOST_INT_STATUS_CPU_MASK = HOST_INT_STATUS_CPU_MASK,
  82. .d_HOST_INT_STATUS_CPU_LSB = HOST_INT_STATUS_CPU_LSB,
  83. .d_HOST_INT_STATUS_ERROR_MASK = HOST_INT_STATUS_ERROR_MASK,
  84. .d_HOST_INT_STATUS_ERROR_LSB = HOST_INT_STATUS_ERROR_LSB,
  85. .d_HOST_INT_STATUS_COUNTER_MASK = HOST_INT_STATUS_COUNTER_MASK,
  86. .d_HOST_INT_STATUS_COUNTER_LSB = HOST_INT_STATUS_COUNTER_LSB,
  87. .d_RX_LOOKAHEAD_VALID_ADDRESS = RX_LOOKAHEAD_VALID_ADDRESS,
  88. .d_WINDOW_DATA_ADDRESS = WINDOW_DATA_ADDRESS,
  89. .d_WINDOW_READ_ADDR_ADDRESS = WINDOW_READ_ADDR_ADDRESS,
  90. .d_WINDOW_WRITE_ADDR_ADDRESS = WINDOW_WRITE_ADDR_ADDRESS,
  91. .d_SOC_GLOBAL_RESET_ADDRESS = SOC_GLOBAL_RESET_ADDRESS,
  92. .d_RTC_STATE_ADDRESS = RTC_STATE_ADDRESS,
  93. .d_RTC_STATE_COLD_RESET_MASK = RTC_STATE_COLD_RESET_MASK,
  94. .d_PCIE_LOCAL_BASE_ADDRESS = PCIE_LOCAL_BASE_ADDRESS,
  95. .d_PCIE_SOC_WAKE_RESET = PCIE_SOC_WAKE_RESET,
  96. .d_PCIE_SOC_WAKE_ADDRESS = PCIE_SOC_WAKE_ADDRESS,
  97. .d_PCIE_SOC_WAKE_V_MASK = PCIE_SOC_WAKE_V_MASK,
  98. .d_RTC_STATE_V_MASK = RTC_STATE_V_MASK,
  99. .d_RTC_STATE_V_LSB = RTC_STATE_V_LSB,
  100. .d_FW_IND_EVENT_PENDING = FW_IND_EVENT_PENDING,
  101. .d_FW_IND_INITIALIZED = FW_IND_INITIALIZED,
  102. .d_RTC_STATE_V_ON = RTC_STATE_V_ON,
  103. #if defined(SDIO_3_0)
  104. .d_HOST_INT_STATUS_MBOX_DATA_MASK = HOST_INT_STATUS_MBOX_DATA_MASK,
  105. .d_HOST_INT_STATUS_MBOX_DATA_LSB = HOST_INT_STATUS_MBOX_DATA_LSB,
  106. #endif
  107. .d_FW_IND_HOST_READY = FW_IND_HOST_READY,
  108. .d_HOST_CE_COUNT = CE_COUNT,
  109. .d_TRANSACTION_ID_MASK = TRANSACTION_ID_MASK,
  110. };
  111. struct hostdef_s *MY_HOST_DEF = &my_host_def;
  112. #else /* MY_HOST_DEF */
  113. #endif /* MY_HOST_DEF */
  114. #if defined(MY_HOST_SHADOW_REGS)
  115. struct host_shadow_regs_s my_host_shadow_regs = {
  116. .d_A_LOCAL_SHADOW_REG_VALUE_0 = A_LOCAL_SHADOW_REG_VALUE_0;
  117. .d_A_LOCAL_SHADOW_REG_VALUE_1 = A_LOCAL_SHADOW_REG_VALUE_1;
  118. .d_A_LOCAL_SHADOW_REG_VALUE_2 = A_LOCAL_SHADOW_REG_VALUE_2;
  119. .d_A_LOCAL_SHADOW_REG_VALUE_3 = A_LOCAL_SHADOW_REG_VALUE_3;
  120. .d_A_LOCAL_SHADOW_REG_VALUE_4 = A_LOCAL_SHADOW_REG_VALUE_4;
  121. .d_A_LOCAL_SHADOW_REG_VALUE_5 = A_LOCAL_SHADOW_REG_VALUE_5;
  122. .d_A_LOCAL_SHADOW_REG_VALUE_6 = A_LOCAL_SHADOW_REG_VALUE_6;
  123. .d_A_LOCAL_SHADOW_REG_VALUE_7 = A_LOCAL_SHADOW_REG_VALUE_7;
  124. .d_A_LOCAL_SHADOW_REG_VALUE_8 = A_LOCAL_SHADOW_REG_VALUE_8;
  125. .d_A_LOCAL_SHADOW_REG_VALUE_9 = A_LOCAL_SHADOW_REG_VALUE_9;
  126. .d_A_LOCAL_SHADOW_REG_VALUE_10 = A_LOCAL_SHADOW_REG_VALUE_10;
  127. .d_A_LOCAL_SHADOW_REG_VALUE_11 = A_LOCAL_SHADOW_REG_VALUE_11;
  128. .d_A_LOCAL_SHADOW_REG_VALUE_12 = A_LOCAL_SHADOW_REG_VALUE_12;
  129. .d_A_LOCAL_SHADOW_REG_VALUE_13 = A_LOCAL_SHADOW_REG_VALUE_13;
  130. .d_A_LOCAL_SHADOW_REG_VALUE_14 = A_LOCAL_SHADOW_REG_VALUE_14;
  131. .d_A_LOCAL_SHADOW_REG_VALUE_15 = A_LOCAL_SHADOW_REG_VALUE_15;
  132. .d_A_LOCAL_SHADOW_REG_VALUE_16 = A_LOCAL_SHADOW_REG_VALUE_16;
  133. .d_A_LOCAL_SHADOW_REG_VALUE_17 = A_LOCAL_SHADOW_REG_VALUE_17;
  134. .d_A_LOCAL_SHADOW_REG_VALUE_18 = A_LOCAL_SHADOW_REG_VALUE_18;
  135. .d_A_LOCAL_SHADOW_REG_VALUE_19 = A_LOCAL_SHADOW_REG_VALUE_19;
  136. .d_A_LOCAL_SHADOW_REG_VALUE_20 = A_LOCAL_SHADOW_REG_VALUE_20;
  137. .d_A_LOCAL_SHADOW_REG_VALUE_21 = A_LOCAL_SHADOW_REG_VALUE_21;
  138. .d_A_LOCAL_SHADOW_REG_VALUE_22 = A_LOCAL_SHADOW_REG_VALUE_22;
  139. .d_A_LOCAL_SHADOW_REG_VALUE_23 = A_LOCAL_SHADOW_REG_VALUE_23;
  140. .d_A_LOCAL_SHADOW_REG_ADDRESS_0 = A_LOCAL_SHADOW_REG_ADDRESS_0;
  141. .d_A_LOCAL_SHADOW_REG_ADDRESS_1 = A_LOCAL_SHADOW_REG_ADDRESS_1;
  142. .d_A_LOCAL_SHADOW_REG_ADDRESS_2 = A_LOCAL_SHADOW_REG_ADDRESS_2;
  143. .d_A_LOCAL_SHADOW_REG_ADDRESS_3 = A_LOCAL_SHADOW_REG_ADDRESS_3;
  144. .d_A_LOCAL_SHADOW_REG_ADDRESS_4 = A_LOCAL_SHADOW_REG_ADDRESS_4;
  145. .d_A_LOCAL_SHADOW_REG_ADDRESS_5 = A_LOCAL_SHADOW_REG_ADDRESS_5;
  146. .d_A_LOCAL_SHADOW_REG_ADDRESS_6 = A_LOCAL_SHADOW_REG_ADDRESS_6;
  147. .d_A_LOCAL_SHADOW_REG_ADDRESS_7 = A_LOCAL_SHADOW_REG_ADDRESS_7;
  148. .d_A_LOCAL_SHADOW_REG_ADDRESS_8 = A_LOCAL_SHADOW_REG_ADDRESS_8;
  149. .d_A_LOCAL_SHADOW_REG_ADDRESS_9 = A_LOCAL_SHADOW_REG_ADDRESS_9;
  150. .d_A_LOCAL_SHADOW_REG_ADDRESS_10 = A_LOCAL_SHADOW_REG_ADDRESS_10;
  151. .d_A_LOCAL_SHADOW_REG_ADDRESS_11 = A_LOCAL_SHADOW_REG_ADDRESS_11;
  152. .d_A_LOCAL_SHADOW_REG_ADDRESS_12 = A_LOCAL_SHADOW_REG_ADDRESS_12;
  153. .d_A_LOCAL_SHADOW_REG_ADDRESS_13 = A_LOCAL_SHADOW_REG_ADDRESS_13;
  154. .d_A_LOCAL_SHADOW_REG_ADDRESS_14 = A_LOCAL_SHADOW_REG_ADDRESS_14;
  155. .d_A_LOCAL_SHADOW_REG_ADDRESS_15 = A_LOCAL_SHADOW_REG_ADDRESS_15;
  156. .d_A_LOCAL_SHADOW_REG_ADDRESS_16 = A_LOCAL_SHADOW_REG_ADDRESS_16;
  157. .d_A_LOCAL_SHADOW_REG_ADDRESS_17 = A_LOCAL_SHADOW_REG_ADDRESS_17;
  158. .d_A_LOCAL_SHADOW_REG_ADDRESS_18 = A_LOCAL_SHADOW_REG_ADDRESS_18;
  159. .d_A_LOCAL_SHADOW_REG_ADDRESS_19 = A_LOCAL_SHADOW_REG_ADDRESS_19;
  160. .d_A_LOCAL_SHADOW_REG_ADDRESS_20 = A_LOCAL_SHADOW_REG_ADDRESS_20;
  161. .d_A_LOCAL_SHADOW_REG_ADDRESS_21 = A_LOCAL_SHADOW_REG_ADDRESS_21;
  162. .d_A_LOCAL_SHADOW_REG_ADDRESS_22 = A_LOCAL_SHADOW_REG_ADDRESS_22;
  163. .d_A_LOCAL_SHADOW_REG_ADDRESS_23 = A_LOCAL_SHADOW_REG_ADDRESS_23;
  164. };
  165. struct hostdef_s *MY_HOST_SHADOW_REGS = &my_host_shadow_regs;
  166. #else /* MY_HOST_SHADOW_REGS */
  167. #endif /* MY_HOST_SHADOW_REGS */
  168. #endif /* HOST_REG_INIT_H */