efuse_reg.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. /*
  2. * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved.
  3. *
  4. * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  5. *
  6. *
  7. * Permission to use, copy, modify, and/or distribute this software for
  8. * any purpose with or without fee is hereby granted, provided that the
  9. * above copyright notice and this permission notice appear in all
  10. * copies.
  11. *
  12. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  13. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  14. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  15. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  16. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  17. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  18. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  19. * PERFORMANCE OF THIS SOFTWARE.
  20. */
  21. /*
  22. * This file was originally distributed by Qualcomm Atheros, Inc.
  23. * under proprietary terms before Copyright ownership was assigned
  24. * to the Linux Foundation.
  25. */
  26. #ifndef _EFUSE_REG_REG_H_
  27. #define _EFUSE_REG_REG_H_
  28. #define EFUSE_WR_ENABLE_REG_ADDRESS 0x00000000
  29. #define EFUSE_WR_ENABLE_REG_OFFSET 0x00000000
  30. #define EFUSE_WR_ENABLE_REG_V_MSB 0
  31. #define EFUSE_WR_ENABLE_REG_V_LSB 0
  32. #define EFUSE_WR_ENABLE_REG_V_MASK 0x00000001
  33. #define EFUSE_WR_ENABLE_REG_V_GET(x) (((x) & EFUSE_WR_ENABLE_REG_V_MASK) >> EFUSE_WR_ENABLE_REG_V_LSB)
  34. #define EFUSE_WR_ENABLE_REG_V_SET(x) (((x) << EFUSE_WR_ENABLE_REG_V_LSB) & EFUSE_WR_ENABLE_REG_V_MASK)
  35. #define EFUSE_INT_ENABLE_REG_ADDRESS 0x00000004
  36. #define EFUSE_INT_ENABLE_REG_OFFSET 0x00000004
  37. #define EFUSE_INT_ENABLE_REG_V_MSB 0
  38. #define EFUSE_INT_ENABLE_REG_V_LSB 0
  39. #define EFUSE_INT_ENABLE_REG_V_MASK 0x00000001
  40. #define EFUSE_INT_ENABLE_REG_V_GET(x) (((x) & EFUSE_INT_ENABLE_REG_V_MASK) >> EFUSE_INT_ENABLE_REG_V_LSB)
  41. #define EFUSE_INT_ENABLE_REG_V_SET(x) (((x) << EFUSE_INT_ENABLE_REG_V_LSB) & EFUSE_INT_ENABLE_REG_V_MASK)
  42. #define EFUSE_INT_STATUS_REG_ADDRESS 0x00000008
  43. #define EFUSE_INT_STATUS_REG_OFFSET 0x00000008
  44. #define EFUSE_INT_STATUS_REG_V_MSB 0
  45. #define EFUSE_INT_STATUS_REG_V_LSB 0
  46. #define EFUSE_INT_STATUS_REG_V_MASK 0x00000001
  47. #define EFUSE_INT_STATUS_REG_V_GET(x) (((x) & EFUSE_INT_STATUS_REG_V_MASK) >> EFUSE_INT_STATUS_REG_V_LSB)
  48. #define EFUSE_INT_STATUS_REG_V_SET(x) (((x) << EFUSE_INT_STATUS_REG_V_LSB) & EFUSE_INT_STATUS_REG_V_MASK)
  49. #define BITMASK_WR_REG_ADDRESS 0x0000000c
  50. #define BITMASK_WR_REG_OFFSET 0x0000000c
  51. #define BITMASK_WR_REG_V_MSB 31
  52. #define BITMASK_WR_REG_V_LSB 0
  53. #define BITMASK_WR_REG_V_MASK 0xffffffff
  54. #define BITMASK_WR_REG_V_GET(x) (((x) & BITMASK_WR_REG_V_MASK) >> BITMASK_WR_REG_V_LSB)
  55. #define BITMASK_WR_REG_V_SET(x) (((x) << BITMASK_WR_REG_V_LSB) & BITMASK_WR_REG_V_MASK)
  56. #define VDDQ_SETTLE_TIME_REG_ADDRESS 0x00000010
  57. #define VDDQ_SETTLE_TIME_REG_OFFSET 0x00000010
  58. #define VDDQ_SETTLE_TIME_REG_V_MSB 31
  59. #define VDDQ_SETTLE_TIME_REG_V_LSB 0
  60. #define VDDQ_SETTLE_TIME_REG_V_MASK 0xffffffff
  61. #define VDDQ_SETTLE_TIME_REG_V_GET(x) (((x) & VDDQ_SETTLE_TIME_REG_V_MASK) >> VDDQ_SETTLE_TIME_REG_V_LSB)
  62. #define VDDQ_SETTLE_TIME_REG_V_SET(x) (((x) << VDDQ_SETTLE_TIME_REG_V_LSB) & VDDQ_SETTLE_TIME_REG_V_MASK)
  63. #define VDDQ_HOLD_TIME_REG_ADDRESS 0x00000014
  64. #define VDDQ_HOLD_TIME_REG_OFFSET 0x00000014
  65. #define VDDQ_HOLD_TIME_REG_V_MSB 31
  66. #define VDDQ_HOLD_TIME_REG_V_LSB 0
  67. #define VDDQ_HOLD_TIME_REG_V_MASK 0xffffffff
  68. #define VDDQ_HOLD_TIME_REG_V_GET(x) (((x) & VDDQ_HOLD_TIME_REG_V_MASK) >> VDDQ_HOLD_TIME_REG_V_LSB)
  69. #define VDDQ_HOLD_TIME_REG_V_SET(x) (((x) << VDDQ_HOLD_TIME_REG_V_LSB) & VDDQ_HOLD_TIME_REG_V_MASK)
  70. #define RD_STROBE_PW_REG_ADDRESS 0x00000018
  71. #define RD_STROBE_PW_REG_OFFSET 0x00000018
  72. #define RD_STROBE_PW_REG_V_MSB 31
  73. #define RD_STROBE_PW_REG_V_LSB 0
  74. #define RD_STROBE_PW_REG_V_MASK 0xffffffff
  75. #define RD_STROBE_PW_REG_V_GET(x) (((x) & RD_STROBE_PW_REG_V_MASK) >> RD_STROBE_PW_REG_V_LSB)
  76. #define RD_STROBE_PW_REG_V_SET(x) (((x) << RD_STROBE_PW_REG_V_LSB) & RD_STROBE_PW_REG_V_MASK)
  77. #define PG_STROBE_PW_REG_ADDRESS 0x0000001c
  78. #define PG_STROBE_PW_REG_OFFSET 0x0000001c
  79. #define PG_STROBE_PW_REG_V_MSB 31
  80. #define PG_STROBE_PW_REG_V_LSB 0
  81. #define PG_STROBE_PW_REG_V_MASK 0xffffffff
  82. #define PG_STROBE_PW_REG_V_GET(x) (((x) & PG_STROBE_PW_REG_V_MASK) >> PG_STROBE_PW_REG_V_LSB)
  83. #define PG_STROBE_PW_REG_V_SET(x) (((x) << PG_STROBE_PW_REG_V_LSB) & PG_STROBE_PW_REG_V_MASK)
  84. #define PGENB_SETUP_HOLD_TIME_REG_ADDRESS 0x00000020
  85. #define PGENB_SETUP_HOLD_TIME_REG_OFFSET 0x00000020
  86. #define PGENB_SETUP_HOLD_TIME_REG_V_MSB 31
  87. #define PGENB_SETUP_HOLD_TIME_REG_V_LSB 0
  88. #define PGENB_SETUP_HOLD_TIME_REG_V_MASK 0xffffffff
  89. #define PGENB_SETUP_HOLD_TIME_REG_V_GET(x) (((x) & PGENB_SETUP_HOLD_TIME_REG_V_MASK) >> PGENB_SETUP_HOLD_TIME_REG_V_LSB)
  90. #define PGENB_SETUP_HOLD_TIME_REG_V_SET(x) (((x) << PGENB_SETUP_HOLD_TIME_REG_V_LSB) & PGENB_SETUP_HOLD_TIME_REG_V_MASK)
  91. #define STROBE_PULSE_INTERVAL_REG_ADDRESS 0x00000024
  92. #define STROBE_PULSE_INTERVAL_REG_OFFSET 0x00000024
  93. #define STROBE_PULSE_INTERVAL_REG_V_MSB 31
  94. #define STROBE_PULSE_INTERVAL_REG_V_LSB 0
  95. #define STROBE_PULSE_INTERVAL_REG_V_MASK 0xffffffff
  96. #define STROBE_PULSE_INTERVAL_REG_V_GET(x) (((x) & STROBE_PULSE_INTERVAL_REG_V_MASK) >> STROBE_PULSE_INTERVAL_REG_V_LSB)
  97. #define STROBE_PULSE_INTERVAL_REG_V_SET(x) (((x) << STROBE_PULSE_INTERVAL_REG_V_LSB) & STROBE_PULSE_INTERVAL_REG_V_MASK)
  98. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_ADDRESS 0x00000028
  99. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_OFFSET 0x00000028
  100. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_V_MSB 31
  101. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_V_LSB 0
  102. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_V_MASK 0xffffffff
  103. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_V_GET(x) (((x) & CSB_ADDR_LOAD_SETUP_HOLD_REG_V_MASK) >> CSB_ADDR_LOAD_SETUP_HOLD_REG_V_LSB)
  104. #define CSB_ADDR_LOAD_SETUP_HOLD_REG_V_SET(x) (((x) << CSB_ADDR_LOAD_SETUP_HOLD_REG_V_LSB) & CSB_ADDR_LOAD_SETUP_HOLD_REG_V_MASK)
  105. #define EFUSE_INTF0_ADDRESS 0x00000800
  106. #define EFUSE_INTF0_OFFSET 0x00000800
  107. #define EFUSE_INTF0_R_MSB 31
  108. #define EFUSE_INTF0_R_LSB 0
  109. #define EFUSE_INTF0_R_MASK 0xffffffff
  110. #define EFUSE_INTF0_R_GET(x) (((x) & EFUSE_INTF0_R_MASK) >> EFUSE_INTF0_R_LSB)
  111. #define EFUSE_INTF0_R_SET(x) (((x) << EFUSE_INTF0_R_LSB) & EFUSE_INTF0_R_MASK)
  112. #define EFUSE_INTF1_ADDRESS 0x00001000
  113. #define EFUSE_INTF1_OFFSET 0x00001000
  114. #define EFUSE_INTF1_R_MSB 31
  115. #define EFUSE_INTF1_R_LSB 0
  116. #define EFUSE_INTF1_R_MASK 0xffffffff
  117. #define EFUSE_INTF1_R_GET(x) (((x) & EFUSE_INTF1_R_MASK) >> EFUSE_INTF1_R_LSB)
  118. #define EFUSE_INTF1_R_SET(x) (((x) << EFUSE_INTF1_R_LSB) & EFUSE_INTF1_R_MASK)
  119. #ifndef __ASSEMBLER__
  120. typedef struct efuse_reg_reg_s {
  121. volatile unsigned int efuse_wr_enable_reg;
  122. volatile unsigned int efuse_int_enable_reg;
  123. volatile unsigned int efuse_int_status_reg;
  124. volatile unsigned int bitmask_wr_reg;
  125. volatile unsigned int vddq_settle_time_reg;
  126. volatile unsigned int vddq_hold_time_reg;
  127. volatile unsigned int rd_strobe_pw_reg;
  128. volatile unsigned int pg_strobe_pw_reg;
  129. volatile unsigned int pgenb_setup_hold_time_reg;
  130. volatile unsigned int strobe_pulse_interval_reg;
  131. volatile unsigned int csb_addr_load_setup_hold_reg;
  132. unsigned char pad0[2004]; /* pad to 0x800 */
  133. volatile unsigned int efuse_intf0[512];
  134. volatile unsigned int efuse_intf1[512];
  135. } efuse_reg_reg_t;
  136. #endif /* __ASSEMBLER__ */
  137. #endif /* _EFUSE_REG_H_ */