pin_map.c 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*
  2. * Copyright (c) 2019 Winner Microelectronics Co., Ltd.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2018-11-21 fanwenl first version
  9. */
  10. #include <rtthread.h>
  11. #include "wm_io.h"
  12. #include "pin_map.h"
  13. #if defined(SOC_W600_A8xx)
  14. #define WM60X_PIN_NUMBERS 33
  15. #elif defined(SOC_W601_A8xx)
  16. #define WM60X_PIN_NUMBERS 69
  17. #endif
  18. #define __WM_PIN(index, gpio_index) (gpio_index)
  19. #define WM_PIN_NUM(items) (sizeof(items) / sizeof(items[0]))
  20. /* WM chip GPIO map*/
  21. static const rt_int16_t pins[] =
  22. {
  23. __WM_PIN(0, WM_PIN_DEFAULT),
  24. #if (WM60X_PIN_NUMBERS == 33)
  25. __WM_PIN(1, WM_PIN_DEFAULT),
  26. __WM_PIN(2, WM_PIN_DEFAULT),
  27. __WM_PIN(3, WM_PIN_DEFAULT),
  28. __WM_PIN(4, WM_PIN_DEFAULT),
  29. __WM_PIN(5, WM_PIN_DEFAULT),
  30. __WM_PIN(6, WM_PIN_DEFAULT),
  31. __WM_PIN(7, WM_PIN_DEFAULT),
  32. __WM_PIN(8, WM_PIN_DEFAULT),
  33. __WM_PIN(9, WM_PIN_DEFAULT),
  34. __WM_PIN(10, WM_PIN_DEFAULT),
  35. __WM_PIN(11, WM_PIN_DEFAULT),
  36. __WM_PIN(12, WM_PIN_DEFAULT),
  37. __WM_PIN(13, WM_IO_PA_00),
  38. __WM_PIN(14, WM_IO_PA_01),
  39. __WM_PIN(15, WM_IO_PA_04),
  40. __WM_PIN(16, WM_PIN_DEFAULT),
  41. __WM_PIN(17, WM_IO_PA_05),
  42. __WM_PIN(18, WM_IO_PB_13),
  43. __WM_PIN(19, WM_IO_PB_14),
  44. __WM_PIN(20, WM_IO_PB_15),
  45. __WM_PIN(21, WM_IO_PB_16),
  46. __WM_PIN(22, WM_IO_PB_17),
  47. __WM_PIN(23, WM_IO_PB_18),
  48. __WM_PIN(24, WM_PIN_DEFAULT),
  49. __WM_PIN(25, WM_PIN_DEFAULT),
  50. __WM_PIN(26, WM_IO_PB_06),
  51. __WM_PIN(27, WM_IO_PB_07),
  52. __WM_PIN(28, WM_IO_PB_08),
  53. __WM_PIN(29, WM_IO_PB_09),
  54. __WM_PIN(30, WM_IO_PB_10),
  55. __WM_PIN(31, WM_IO_PB_11),
  56. __WM_PIN(32, WM_IO_PB_12),
  57. __WM_PIN(33, WM_PIN_DEFAULT),
  58. #elif (WM60X_PIN_NUMBERS == 69)
  59. __WM_PIN(1, WM_IO_PB_19),
  60. __WM_PIN(2, WM_IO_PB_20),
  61. __WM_PIN(3, WM_IO_PB_21),
  62. __WM_PIN(4, WM_IO_PB_22),
  63. __WM_PIN(5, WM_IO_PB_23),
  64. __WM_PIN(6, WM_IO_PB_24),
  65. __WM_PIN(7, WM_IO_PB_25),
  66. __WM_PIN(8, WM_IO_PB_26),
  67. __WM_PIN(9, WM_PIN_DEFAULT),
  68. __WM_PIN(10, WM_PIN_DEFAULT),
  69. __WM_PIN(11, WM_PIN_DEFAULT),
  70. __WM_PIN(12, WM_PIN_DEFAULT),
  71. __WM_PIN(13, WM_PIN_DEFAULT),
  72. __WM_PIN(14, WM_PIN_DEFAULT),
  73. __WM_PIN(15, WM_PIN_DEFAULT),
  74. __WM_PIN(16, WM_PIN_DEFAULT),
  75. __WM_PIN(17, WM_PIN_DEFAULT),
  76. __WM_PIN(18, WM_PIN_DEFAULT),
  77. __WM_PIN(19, WM_PIN_DEFAULT),
  78. __WM_PIN(20, WM_PIN_DEFAULT),
  79. __WM_PIN(21, WM_PIN_DEFAULT),
  80. __WM_PIN(22, WM_PIN_DEFAULT),
  81. __WM_PIN(23, WM_IO_PA_00),
  82. __WM_PIN(24, WM_IO_PA_01),
  83. __WM_PIN(25, WM_IO_PA_02),
  84. __WM_PIN(26, WM_IO_PA_03),
  85. __WM_PIN(27, WM_IO_PA_04),
  86. __WM_PIN(28, WM_PIN_DEFAULT),
  87. __WM_PIN(29, WM_IO_PA_05),
  88. __WM_PIN(30, WM_IO_PA_13),
  89. __WM_PIN(31, WM_IO_PA_14),
  90. __WM_PIN(32, WM_IO_PA_15),
  91. __WM_PIN(33, WM_IO_PA_06),
  92. __WM_PIN(34, WM_PIN_DEFAULT),
  93. __WM_PIN(35, WM_IO_PA_07),
  94. __WM_PIN(36, WM_IO_PA_08),
  95. __WM_PIN(37, WM_IO_PA_09),
  96. __WM_PIN(38, WM_IO_PA_10),
  97. __WM_PIN(39, WM_IO_PA_11),
  98. __WM_PIN(40, WM_IO_PA_12),
  99. __WM_PIN(41, WM_IO_PB_28),
  100. __WM_PIN(42, WM_PIN_DEFAULT),
  101. __WM_PIN(43, WM_IO_PB_13),
  102. __WM_PIN(44, WM_IO_PB_14),
  103. __WM_PIN(45, WM_IO_PB_15),
  104. __WM_PIN(46, WM_PIN_DEFAULT),
  105. __WM_PIN(47, WM_IO_PB_16),
  106. __WM_PIN(48, WM_IO_PB_17),
  107. __WM_PIN(49, WM_IO_PB_18),
  108. __WM_PIN(50, WM_PIN_DEFAULT),
  109. __WM_PIN(51, WM_IO_PB_30),
  110. __WM_PIN(52, WM_IO_PB_31),
  111. __WM_PIN(53, WM_IO_PB_27),
  112. __WM_PIN(54, WM_IO_PB_00),
  113. __WM_PIN(55, WM_IO_PB_01),
  114. __WM_PIN(56, WM_IO_PB_02),
  115. __WM_PIN(57, WM_IO_PB_03),
  116. __WM_PIN(58, WM_PIN_DEFAULT),
  117. __WM_PIN(59, WM_IO_PB_04),
  118. __WM_PIN(60, WM_IO_PB_05),
  119. __WM_PIN(61, WM_IO_PB_06),
  120. __WM_PIN(62, WM_IO_PB_07),
  121. __WM_PIN(63, WM_IO_PB_08),
  122. __WM_PIN(64, WM_IO_PB_09),
  123. __WM_PIN(65, WM_IO_PB_10),
  124. __WM_PIN(66, WM_IO_PB_11),
  125. __WM_PIN(67, WM_IO_PB_12),
  126. __WM_PIN(68, WM_PIN_DEFAULT),
  127. __WM_PIN(69, WM_PIN_DEFAULT),
  128. #endif
  129. };
  130. rt_int16_t wm_get_pin(rt_base_t pin_index)
  131. {
  132. rt_int16_t gpio_pin = WM_PIN_DEFAULT;
  133. if (pin_index < WM_PIN_NUM(pins))
  134. {
  135. gpio_pin = pins[pin_index];
  136. }
  137. return gpio_pin;
  138. }