gpio_periph.c 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*
  2. * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include "soc/gpio_periph.h"
  7. #include "esp_assert.h"
  8. const uint32_t GPIO_PIN_MUX_REG[] = {
  9. IO_MUX_GPIO0_REG,
  10. IO_MUX_GPIO1_REG,
  11. IO_MUX_GPIO2_REG,
  12. IO_MUX_GPIO3_REG,
  13. IO_MUX_GPIO4_REG,
  14. IO_MUX_GPIO5_REG,
  15. IO_MUX_GPIO6_REG,
  16. IO_MUX_GPIO7_REG,
  17. IO_MUX_GPIO8_REG,
  18. IO_MUX_GPIO9_REG,
  19. IO_MUX_GPIO10_REG,
  20. IO_MUX_GPIO11_REG,
  21. IO_MUX_GPIO12_REG,
  22. IO_MUX_GPIO13_REG,
  23. IO_MUX_GPIO14_REG,
  24. IO_MUX_GPIO15_REG,
  25. IO_MUX_GPIO16_REG,
  26. IO_MUX_GPIO17_REG,
  27. IO_MUX_GPIO18_REG,
  28. IO_MUX_GPIO19_REG,
  29. IO_MUX_GPIO20_REG,
  30. IO_MUX_GPIO21_REG,
  31. IO_MUX_GPIO22_REG,
  32. IO_MUX_GPIO23_REG,
  33. IO_MUX_GPIO24_REG,
  34. IO_MUX_GPIO25_REG,
  35. IO_MUX_GPIO26_REG,
  36. IO_MUX_GPIO27_REG,
  37. IO_MUX_GPIO28_REG,
  38. IO_MUX_GPIO29_REG,
  39. IO_MUX_GPIO30_REG,
  40. IO_MUX_GPIO31_REG,
  41. IO_MUX_GPIO32_REG,
  42. IO_MUX_GPIO33_REG,
  43. IO_MUX_GPIO34_REG,
  44. IO_MUX_GPIO35_REG,
  45. IO_MUX_GPIO36_REG,
  46. IO_MUX_GPIO37_REG,
  47. IO_MUX_GPIO38_REG,
  48. IO_MUX_GPIO39_REG,
  49. IO_MUX_GPIO40_REG,
  50. IO_MUX_GPIO41_REG,
  51. IO_MUX_GPIO42_REG,
  52. IO_MUX_GPIO43_REG,
  53. IO_MUX_GPIO44_REG,
  54. IO_MUX_GPIO45_REG,
  55. IO_MUX_GPIO46_REG,
  56. IO_MUX_GPIO47_REG,
  57. IO_MUX_GPIO48_REG,
  58. IO_MUX_GPIO49_REG,
  59. IO_MUX_GPIO50_REG,
  60. IO_MUX_GPIO51_REG,
  61. IO_MUX_GPIO52_REG,
  62. IO_MUX_GPIO53_REG,
  63. IO_MUX_GPIO54_REG,
  64. IO_MUX_GPIO55_REG,
  65. IO_MUX_GPIO56_REG,
  66. };
  67. ESP_STATIC_ASSERT(sizeof(GPIO_PIN_MUX_REG) == SOC_GPIO_PIN_COUNT * sizeof(uint32_t), "Invalid size of GPIO_PIN_MUX_REG");
  68. const uint32_t GPIO_HOLD_MASK[] = {
  69. BIT(0), //GPIO0 // LP_IOMUX_LP_PAD_HOLD_REG
  70. BIT(1), //GPIO1
  71. BIT(2), //GPIO2
  72. BIT(3), //GPIO3
  73. BIT(4), //GPIO4
  74. BIT(5), //GPIO5
  75. BIT(6), //GPIO6
  76. BIT(7), //GPIO7
  77. BIT(8), //GPIO8
  78. BIT(9), //GPIO9
  79. BIT(10), //GPIO10
  80. BIT(11), //GPIO11
  81. BIT(12), //GPIO12
  82. BIT(13), //GPIO13
  83. BIT(14), //GPIO14
  84. BIT(15), //GPIO15
  85. BIT(0), //GPIO16 // HP_SYSTEM_GPIO_O_HOLD_CTRL0_REG
  86. BIT(1), //GPIO17
  87. BIT(2), //GPIO18
  88. BIT(3), //GPIO19
  89. BIT(4), //GPIO20
  90. BIT(5), //GPIO21
  91. BIT(6), //GPIO22
  92. BIT(7), //GPIO23
  93. BIT(8), //GPIO24
  94. BIT(9), //GPIO25
  95. BIT(10), //GPIO26
  96. BIT(11), //GPIO27
  97. BIT(12), //GPIO28
  98. BIT(13), //GPIO29
  99. BIT(14), //GPIO30
  100. BIT(15), //GPIO31
  101. BIT(16), //GPIO32
  102. BIT(17), //GPIO33
  103. BIT(18), //GPIO34
  104. BIT(19), //GPIO35
  105. BIT(20), //GPIO36
  106. BIT(21), //GPIO37
  107. BIT(22), //GPIO38
  108. BIT(23), //GPIO39
  109. BIT(24), //GPIO40
  110. BIT(25), //GPIO41
  111. BIT(26), //GPIO42
  112. BIT(27), //GPIO43
  113. BIT(28), //GPIO44
  114. BIT(29), //GPIO45
  115. BIT(30), //GPIO46
  116. BIT(31), //GPIO47
  117. BIT(0), //GPIO48 // HP_SYSTEM_GPIO_O_HOLD_CTRL1_REG
  118. BIT(1), //GPIO49
  119. BIT(2), //GPIO50
  120. BIT(3), //GPIO51
  121. BIT(4), //GPIO52
  122. BIT(5), //GPIO53
  123. BIT(6), //GPIO54
  124. BIT(7), //GPIO55
  125. BIT(8), //GPIO56
  126. };
  127. ESP_STATIC_ASSERT(sizeof(GPIO_HOLD_MASK) == SOC_GPIO_PIN_COUNT * sizeof(uint32_t), "Invalid size of GPIO_HOLD_MASK");