platform-gpio.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /*
  2. * Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved.
  3. *
  4. * Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in
  5. * the the People's Republic of China and other countries.
  6. * All Allwinner Technology Co.,Ltd. trademarks are used with permission.
  7. *
  8. * DISCLAIMER
  9. * THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT.
  10. * IF YOU NEED TO INTEGRATE THIRD PARTY’S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.)
  11. * IN ALLWINNERS’SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN
  12. * ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES.
  13. * ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS
  14. * COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE.
  15. * YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY’S TECHNOLOGY.
  16. *
  17. *
  18. * THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT
  19. * PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND,
  20. * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING
  21. * THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE
  22. * OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  23. * IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  24. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  25. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  26. * LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION)
  27. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  28. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  30. * OF THE POSSIBILITY OF SUCH DAMAGE.
  31. */
  32. #ifndef __PLATFORM_GPIO_H__
  33. #define __PLATFORM_GPIO_H__
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. #define CONFIG_SOC_SUN20IW1 1
  38. #define GPIO_MAX_BANK PG_BASE
  39. #define BANK_BOUNDARY PL_BASE
  40. #define SUNXI_GPIO_PBASE 0x02000000
  41. #define SUNXI_GPIO_RES_SIZE 0x07FF
  42. /* sunxi gpio irq*/
  43. #if defined(CONFIG_CORE_DSP0) /* DSP */
  44. #include <interrupt.h>
  45. #define SUNXI_IRQ_GPIOB (RINTC_IRQ_MASK | 40)
  46. #define SUNXI_IRQ_GPIOC (RINTC_IRQ_MASK | 42)
  47. #define SUNXI_IRQ_GPIOD (RINTC_IRQ_MASK | 44)
  48. #define SUNXI_IRQ_GPIOE (RINTC_IRQ_MASK | 46)
  49. #define SUNXI_IRQ_GPIOF (RINTC_IRQ_MASK | 48)
  50. #define SUNXI_IRQ_GPIOG (RINTC_IRQ_MASK | 50)
  51. #elif defined(CONFIG_ARCH_SUN8IW20) /* ARM */
  52. #define SUNXI_GIC_START 32
  53. #define SUNXI_IRQ_GPIOB (SUNXI_GIC_START + 69)
  54. #define SUNXI_IRQ_GPIOC (SUNXI_GIC_START + 71)
  55. #define SUNXI_IRQ_GPIOD (SUNXI_GIC_START + 73)
  56. #define SUNXI_IRQ_GPIOE (SUNXI_GIC_START + 75)
  57. #define SUNXI_IRQ_GPIOF (SUNXI_GIC_START + 77)
  58. #define SUNXI_IRQ_GPIOG (SUNXI_GIC_START + 79)
  59. #elif defined(CONFIG_SOC_SUN20IW1) /* RISC-V */
  60. #define SUNXI_IRQ_GPIOB (85)
  61. #define SUNXI_IRQ_GPIOC (87)
  62. #define SUNXI_IRQ_GPIOD (89)
  63. #define SUNXI_IRQ_GPIOE (91)
  64. #define SUNXI_IRQ_GPIOF (93)
  65. #define SUNXI_IRQ_GPIOG (95)
  66. #endif /* CONFIG_CORE_DSP0 */
  67. typedef enum
  68. {
  69. GPIO_PB0 = GPIOB(0),
  70. GPIO_PB1 = GPIOB(1),
  71. GPIO_PB2 = GPIOB(2),
  72. GPIO_PB3 = GPIOB(3),
  73. GPIO_PB4 = GPIOB(4),
  74. GPIO_PB5 = GPIOB(5),
  75. GPIO_PB6 = GPIOB(6),
  76. GPIO_PB7 = GPIOB(7),
  77. GPIO_PC0 = GPIOC(0),
  78. GPIO_PC1 = GPIOC(1),
  79. GPIO_PC2 = GPIOC(2),
  80. GPIO_PC3 = GPIOC(3),
  81. GPIO_PC4 = GPIOC(4),
  82. GPIO_PC5 = GPIOC(5),
  83. GPIO_PC6 = GPIOC(6),
  84. GPIO_PC7 = GPIOC(7),
  85. GPIO_PD0 = GPIOD(0),
  86. GPIO_PD1 = GPIOD(1),
  87. GPIO_PD2 = GPIOD(2),
  88. GPIO_PD3 = GPIOD(3),
  89. GPIO_PD4 = GPIOD(4),
  90. GPIO_PD5 = GPIOD(5),
  91. GPIO_PD6 = GPIOD(6),
  92. GPIO_PD7 = GPIOD(7),
  93. GPIO_PD8 = GPIOD(8),
  94. GPIO_PD9 = GPIOD(9),
  95. GPIO_PD10 = GPIOD(10),
  96. GPIO_PD11 = GPIOD(11),
  97. GPIO_PD12 = GPIOD(12),
  98. GPIO_PD13 = GPIOD(13),
  99. GPIO_PD14 = GPIOD(14),
  100. GPIO_PD15 = GPIOD(15),
  101. GPIO_PD16 = GPIOD(16),
  102. GPIO_PD17 = GPIOD(17),
  103. GPIO_PD18 = GPIOD(18),
  104. GPIO_PD19 = GPIOD(19),
  105. GPIO_PD20 = GPIOD(20),
  106. GPIO_PD21 = GPIOD(21),
  107. GPIO_PD22 = GPIOD(22),
  108. GPIO_PE0 = GPIOE(0),
  109. GPIO_PE1 = GPIOE(1),
  110. GPIO_PE2 = GPIOE(2),
  111. GPIO_PE3 = GPIOE(3),
  112. GPIO_PE4 = GPIOE(4),
  113. GPIO_PE5 = GPIOE(5),
  114. GPIO_PE6 = GPIOE(6),
  115. GPIO_PE7 = GPIOE(7),
  116. GPIO_PE8 = GPIOE(8),
  117. GPIO_PE9 = GPIOE(9),
  118. GPIO_PE10 = GPIOE(10),
  119. GPIO_PE11 = GPIOE(11),
  120. GPIO_PE12 = GPIOE(12),
  121. GPIO_PE13 = GPIOE(13),
  122. GPIO_PE14 = GPIOE(14),
  123. GPIO_PE15 = GPIOE(15),
  124. GPIO_PE16 = GPIOE(16),
  125. GPIO_PE17 = GPIOE(17),
  126. GPIO_PF0 = GPIOF(0),
  127. GPIO_PF1 = GPIOF(1),
  128. GPIO_PF2 = GPIOF(2),
  129. GPIO_PF3 = GPIOF(3),
  130. GPIO_PF4 = GPIOF(4),
  131. GPIO_PF5 = GPIOF(5),
  132. GPIO_PF6 = GPIOF(6),
  133. GPIO_PG0 = GPIOG(0),
  134. GPIO_PG1 = GPIOG(1),
  135. GPIO_PG2 = GPIOG(2),
  136. GPIO_PG3 = GPIOG(3),
  137. GPIO_PG4 = GPIOG(4),
  138. GPIO_PG5 = GPIOG(5),
  139. GPIO_PG6 = GPIOG(6),
  140. GPIO_PG7 = GPIOG(7),
  141. GPIO_PG8 = GPIOG(8),
  142. GPIO_PG9 = GPIOG(9),
  143. GPIO_PG10 = GPIOG(10),
  144. GPIO_PG11 = GPIOG(11),
  145. GPIO_PG12 = GPIOG(12),
  146. GPIO_PG13 = GPIOG(13),
  147. GPIO_PG14 = GPIOG(14),
  148. GPIO_PG15 = GPIOG(15),
  149. /* To aviod compile warnings. */
  150. GPIO_MAX = GPIOO(31),
  151. } gpio_pin_t;
  152. #ifdef __cplusplus
  153. }
  154. #endif
  155. #endif /* __PLATFORM_GPIO_H__ */