pinctrl-starfive.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (c) 2021 Emil Renner Berthing <kernel@esmil.dk>
  4. */
  5. #ifndef _DT_BINDINGS_PINCTRL_STARFIVE_H
  6. #define _DT_BINDINGS_PINCTRL_STARFIVE_H
  7. #define PAD_GPIO_OFFSET 0
  8. #define PAD_FUNC_SHARE_OFFSET 64
  9. #define PAD_GPIO(x) (PAD_GPIO_OFFSET + (x))
  10. #define PAD_FUNC_SHARE(x) (PAD_FUNC_SHARE_OFFSET + (x))
  11. /*
  12. * GPIOMUX bits:
  13. * | 31 - 24 | 23 - 16 | 15 - 8 | 7 | 6 | 5 - 0 |
  14. * | dout | doen | din | dout rev | doen rev | gpio nr |
  15. *
  16. * dout: output signal
  17. * doen: output enable signal
  18. * din: optional input signal, 0xff = none
  19. * dout rev: output signal reverse bit
  20. * doen rev: output enable signal reverse bit
  21. * gpio nr: gpio number, 0 - 63
  22. */
  23. #define GPIOMUX(n, dout, doen, din) ( \
  24. (((dout) & 0x80000000) >> (31 - 7)) | (((dout) & 0xff) << 24) | \
  25. (((doen) & 0x80000000) >> (31 - 6)) | (((doen) & 0xff) << 16) | \
  26. (((din) & 0xff) << 8) | \
  27. ((n) & 0x3f))
  28. #define GPO_REVERSE 0x80000000
  29. #define GPO_LOW 0
  30. #define GPO_HIGH 1
  31. #define GPO_ENABLE 0
  32. #define GPO_DISABLE 1
  33. #define GPO_CLK_GMAC_PAPHYREF 2
  34. #define GPO_JTAG_TDO 3
  35. #define GPO_JTAG_TDO_OEN 4
  36. #define GPO_DMIC_CLK_OUT 5
  37. #define GPO_DSP_JTDOEN_PAD 6
  38. #define GPO_DSP_JTDO_PAD 7
  39. #define GPO_I2C0_PAD_SCK_OE 8
  40. #define GPO_I2C0_PAD_SCK_OEN (GPO_I2C0_PAD_SCK_OE | GPO_REVERSE)
  41. #define GPO_I2C0_PAD_SDA_OE 9
  42. #define GPO_I2C0_PAD_SDA_OEN (GPO_I2C0_PAD_SDA_OE | GPO_REVERSE)
  43. #define GPO_I2C1_PAD_SCK_OE 10
  44. #define GPO_I2C1_PAD_SCK_OEN (GPO_I2C1_PAD_SCK_OE | GPO_REVERSE)
  45. #define GPO_I2C1_PAD_SDA_OE 11
  46. #define GPO_I2C1_PAD_SDA_OEN (GPO_I2C1_PAD_SDA_OE | GPO_REVERSE)
  47. #define GPO_I2C2_PAD_SCK_OE 12
  48. #define GPO_I2C2_PAD_SCK_OEN (GPO_I2C2_PAD_SCK_OE | GPO_REVERSE)
  49. #define GPO_I2C2_PAD_SDA_OE 13
  50. #define GPO_I2C2_PAD_SDA_OEN (GPO_I2C2_PAD_SDA_OE | GPO_REVERSE)
  51. #define GPO_I2C3_PAD_SCK_OE 14
  52. #define GPO_I2C3_PAD_SCK_OEN (GPO_I2C3_PAD_SCK_OE | GPO_REVERSE)
  53. #define GPO_I2C3_PAD_SDA_OE 15
  54. #define GPO_I2C3_PAD_SDA_OEN (GPO_I2C3_PAD_SDA_OE | GPO_REVERSE)
  55. #define GPO_I2SRX_BCLK_OUT 16
  56. #define GPO_I2SRX_BCLK_OUT_OEN 17
  57. #define GPO_I2SRX_LRCK_OUT 18
  58. #define GPO_I2SRX_LRCK_OUT_OEN 19
  59. #define GPO_I2SRX_MCLK_OUT 20
  60. #define GPO_I2STX_BCLK_OUT 21
  61. #define GPO_I2STX_BCLK_OUT_OEN 22
  62. #define GPO_I2STX_LRCK_OUT 23
  63. #define GPO_I2STX_LRCK_OUT_OEN 24
  64. #define GPO_I2STX_MCLK_OUT 25
  65. #define GPO_I2STX_SDOUT0 26
  66. #define GPO_I2STX_SDOUT1 27
  67. #define GPO_LCD_PAD_CSM_N 28
  68. #define GPO_PWM_PAD_OE_N_BIT0 29
  69. #define GPO_PWM_PAD_OE_N_BIT1 30
  70. #define GPO_PWM_PAD_OE_N_BIT2 31
  71. #define GPO_PWM_PAD_OE_N_BIT3 32
  72. #define GPO_PWM_PAD_OE_N_BIT4 33
  73. #define GPO_PWM_PAD_OE_N_BIT5 34
  74. #define GPO_PWM_PAD_OE_N_BIT6 35
  75. #define GPO_PWM_PAD_OE_N_BIT7 36
  76. #define GPO_PWM_PAD_OUT_BIT0 37
  77. #define GPO_PWM_PAD_OUT_BIT1 38
  78. #define GPO_PWM_PAD_OUT_BIT2 39
  79. #define GPO_PWM_PAD_OUT_BIT3 40
  80. #define GPO_PWM_PAD_OUT_BIT4 41
  81. #define GPO_PWM_PAD_OUT_BIT5 42
  82. #define GPO_PWM_PAD_OUT_BIT6 43
  83. #define GPO_PWM_PAD_OUT_BIT7 44
  84. #define GPO_PWMDAC_LEFT_OUT 45
  85. #define GPO_PWMDAC_RIGHT_OUT 46
  86. #define GPO_QSPI_CSN1_OUT 47
  87. #define GPO_QSPI_CSN2_OUT 48
  88. #define GPO_QSPI_CSN3_OUT 49
  89. #define GPO_REGISTER23_SCFG_CMSENSOR_RST0 50
  90. #define GPO_REGISTER23_SCFG_CMSENSOR_RST1 51
  91. #define GPO_REGISTER32_SCFG_GMAC_PHY_RSTN 52
  92. #define GPO_SDIO0_PAD_CARD_POWER_EN 53
  93. #define GPO_SDIO0_PAD_CCLK_OUT 54
  94. #define GPO_SDIO0_PAD_CCMD_OE 55
  95. #define GPO_SDIO0_PAD_CCMD_OEN (GPO_SDIO0_PAD_CCMD_OE | GPO_REVERSE)
  96. #define GPO_SDIO0_PAD_CCMD_OUT 56
  97. #define GPO_SDIO0_PAD_CDATA_OE_BIT0 57
  98. #define GPO_SDIO0_PAD_CDATA_OEN_BIT0 (GPO_SDIO0_PAD_CDATA_OE_BIT0 | GPO_REVERSE)
  99. #define GPO_SDIO0_PAD_CDATA_OE_BIT1 58
  100. #define GPO_SDIO0_PAD_CDATA_OEN_BIT1 (GPO_SDIO0_PAD_CDATA_OE_BIT1 | GPO_REVERSE)
  101. #define GPO_SDIO0_PAD_CDATA_OE_BIT2 59
  102. #define GPO_SDIO0_PAD_CDATA_OEN_BIT2 (GPO_SDIO0_PAD_CDATA_OE_BIT2 | GPO_REVERSE)
  103. #define GPO_SDIO0_PAD_CDATA_OE_BIT3 60
  104. #define GPO_SDIO0_PAD_CDATA_OEN_BIT3 (GPO_SDIO0_PAD_CDATA_OE_BIT3 | GPO_REVERSE)
  105. #define GPO_SDIO0_PAD_CDATA_OE_BIT4 61
  106. #define GPO_SDIO0_PAD_CDATA_OEN_BIT4 (GPO_SDIO0_PAD_CDATA_OE_BIT4 | GPO_REVERSE)
  107. #define GPO_SDIO0_PAD_CDATA_OE_BIT5 62
  108. #define GPO_SDIO0_PAD_CDATA_OEN_BIT5 (GPO_SDIO0_PAD_CDATA_OE_BIT5 | GPO_REVERSE)
  109. #define GPO_SDIO0_PAD_CDATA_OE_BIT6 63
  110. #define GPO_SDIO0_PAD_CDATA_OEN_BIT6 (GPO_SDIO0_PAD_CDATA_OE_BIT6 | GPO_REVERSE)
  111. #define GPO_SDIO0_PAD_CDATA_OE_BIT7 64
  112. #define GPO_SDIO0_PAD_CDATA_OEN_BIT7 (GPO_SDIO0_PAD_CDATA_OE_BIT7 | GPO_REVERSE)
  113. #define GPO_SDIO0_PAD_CDATA_OUT_BIT0 65
  114. #define GPO_SDIO0_PAD_CDATA_OUT_BIT1 66
  115. #define GPO_SDIO0_PAD_CDATA_OUT_BIT2 67
  116. #define GPO_SDIO0_PAD_CDATA_OUT_BIT3 68
  117. #define GPO_SDIO0_PAD_CDATA_OUT_BIT4 69
  118. #define GPO_SDIO0_PAD_CDATA_OUT_BIT5 70
  119. #define GPO_SDIO0_PAD_CDATA_OUT_BIT6 71
  120. #define GPO_SDIO0_PAD_CDATA_OUT_BIT7 72
  121. #define GPO_SDIO0_PAD_RST_N 73
  122. #define GPO_SDIO1_PAD_CARD_POWER_EN 74
  123. #define GPO_SDIO1_PAD_CCLK_OUT 75
  124. #define GPO_SDIO1_PAD_CCMD_OE 76
  125. #define GPO_SDIO1_PAD_CCMD_OEN (GPO_SDIO1_PAD_CCMD_OE | GPO_REVERSE)
  126. #define GPO_SDIO1_PAD_CCMD_OUT 77
  127. #define GPO_SDIO1_PAD_CDATA_OE_BIT0 78
  128. #define GPO_SDIO1_PAD_CDATA_OEN_BIT0 (GPO_SDIO1_PAD_CDATA_OE_BIT0 | GPO_REVERSE)
  129. #define GPO_SDIO1_PAD_CDATA_OE_BIT1 79
  130. #define GPO_SDIO1_PAD_CDATA_OEN_BIT1 (GPO_SDIO1_PAD_CDATA_OE_BIT1 | GPO_REVERSE)
  131. #define GPO_SDIO1_PAD_CDATA_OE_BIT2 80
  132. #define GPO_SDIO1_PAD_CDATA_OEN_BIT2 (GPO_SDIO1_PAD_CDATA_OE_BIT2 | GPO_REVERSE)
  133. #define GPO_SDIO1_PAD_CDATA_OE_BIT3 81
  134. #define GPO_SDIO1_PAD_CDATA_OEN_BIT3 (GPO_SDIO1_PAD_CDATA_OE_BIT3 | GPO_REVERSE)
  135. #define GPO_SDIO1_PAD_CDATA_OE_BIT4 82
  136. #define GPO_SDIO1_PAD_CDATA_OEN_BIT4 (GPO_SDIO1_PAD_CDATA_OE_BIT4 | GPO_REVERSE)
  137. #define GPO_SDIO1_PAD_CDATA_OE_BIT5 83
  138. #define GPO_SDIO1_PAD_CDATA_OEN_BIT5 (GPO_SDIO1_PAD_CDATA_OE_BIT5 | GPO_REVERSE)
  139. #define GPO_SDIO1_PAD_CDATA_OE_BIT6 84
  140. #define GPO_SDIO1_PAD_CDATA_OEN_BIT6 (GPO_SDIO1_PAD_CDATA_OE_BIT6 | GPO_REVERSE)
  141. #define GPO_SDIO1_PAD_CDATA_OE_BIT7 85
  142. #define GPO_SDIO1_PAD_CDATA_OEN_BIT7 (GPO_SDIO1_PAD_CDATA_OE_BIT7 | GPO_REVERSE)
  143. #define GPO_SDIO1_PAD_CDATA_OUT_BIT0 86
  144. #define GPO_SDIO1_PAD_CDATA_OUT_BIT1 87
  145. #define GPO_SDIO1_PAD_CDATA_OUT_BIT2 88
  146. #define GPO_SDIO1_PAD_CDATA_OUT_BIT3 89
  147. #define GPO_SDIO1_PAD_CDATA_OUT_BIT4 90
  148. #define GPO_SDIO1_PAD_CDATA_OUT_BIT5 91
  149. #define GPO_SDIO1_PAD_CDATA_OUT_BIT6 92
  150. #define GPO_SDIO1_PAD_CDATA_OUT_BIT7 93
  151. #define GPO_SDIO1_PAD_RST_N 94
  152. #define GPO_SPDIF_TX_SDOUT 95
  153. #define GPO_SPDIF_TX_SDOUT_OEN 96
  154. #define GPO_SPI0_PAD_OE_N 97
  155. #define GPO_SPI0_PAD_SCK_OUT 98
  156. #define GPO_SPI0_PAD_SS_0_N 99
  157. #define GPO_SPI0_PAD_SS_1_N 100
  158. #define GPO_SPI0_PAD_TXD 101
  159. #define GPO_SPI1_PAD_OE_N 102
  160. #define GPO_SPI1_PAD_SCK_OUT 103
  161. #define GPO_SPI1_PAD_SS_0_N 104
  162. #define GPO_SPI1_PAD_SS_1_N 105
  163. #define GPO_SPI1_PAD_TXD 106
  164. #define GPO_SPI2_PAD_OE_N 107
  165. #define GPO_SPI2_PAD_SCK_OUT 108
  166. #define GPO_SPI2_PAD_SS_0_N 109
  167. #define GPO_SPI2_PAD_SS_1_N 110
  168. #define GPO_SPI2_PAD_TXD 111
  169. #define GPO_SPI2AHB_PAD_OE_N_BIT0 112
  170. #define GPO_SPI2AHB_PAD_OE_N_BIT1 113
  171. #define GPO_SPI2AHB_PAD_OE_N_BIT2 114
  172. #define GPO_SPI2AHB_PAD_OE_N_BIT3 115
  173. #define GPO_SPI2AHB_PAD_TXD_BIT0 116
  174. #define GPO_SPI2AHB_PAD_TXD_BIT1 117
  175. #define GPO_SPI2AHB_PAD_TXD_BIT2 118
  176. #define GPO_SPI2AHB_PAD_TXD_BIT3 119
  177. #define GPO_SPI3_PAD_OE_N 120
  178. #define GPO_SPI3_PAD_SCK_OUT 121
  179. #define GPO_SPI3_PAD_SS_0_N 122
  180. #define GPO_SPI3_PAD_SS_1_N 123
  181. #define GPO_SPI3_PAD_TXD 124
  182. #define GPO_UART0_PAD_DTRN 125
  183. #define GPO_UART0_PAD_RTSN 126
  184. #define GPO_UART0_PAD_SOUT 127
  185. #define GPO_UART1_PAD_SOUT 128
  186. #define GPO_UART2_PAD_DTR_N 129
  187. #define GPO_UART2_PAD_RTS_N 130
  188. #define GPO_UART2_PAD_SOUT 131
  189. #define GPO_UART3_PAD_SOUT 132
  190. #define GPO_USB_DRV_BUS 133
  191. #define GPI_NONE 0xffffffff
  192. #define GPI_CPU_JTAG_TCK 0
  193. #define GPI_CPU_JTAG_TDI 1
  194. #define GPI_CPU_JTAG_TMS 2
  195. #define GPI_CPU_JTAG_TRST 3
  196. #define GPI_DMIC_SDIN_BIT0 4
  197. #define GPI_DMIC_SDIN_BIT1 5
  198. #define GPI_DSP_JTCK_PAD 6
  199. #define GPI_DSP_JTDI_PAD 7
  200. #define GPI_DSP_JTMS_PAD 8
  201. #define GPI_DSP_TRST_PAD 9
  202. #define GPI_I2C0_PAD_SCK_IN 10
  203. #define GPI_I2C0_PAD_SDA_IN 11
  204. #define GPI_I2C1_PAD_SCK_IN 12
  205. #define GPI_I2C1_PAD_SDA_IN 13
  206. #define GPI_I2C2_PAD_SCK_IN 14
  207. #define GPI_I2C2_PAD_SDA_IN 15
  208. #define GPI_I2C3_PAD_SCK_IN 16
  209. #define GPI_I2C3_PAD_SDA_IN 17
  210. #define GPI_I2SRX_BCLK_IN 18
  211. #define GPI_I2SRX_LRCK_IN 19
  212. #define GPI_I2SRX_SDIN_BIT0 20
  213. #define GPI_I2SRX_SDIN_BIT1 21
  214. #define GPI_I2SRX_SDIN_BIT2 22
  215. #define GPI_I2STX_BCLK_IN 23
  216. #define GPI_I2STX_LRCK_IN 24
  217. #define GPI_SDIO0_PAD_CARD_DETECT_N 25
  218. #define GPI_SDIO0_PAD_CARD_WRITE_PRT 26
  219. #define GPI_SDIO0_PAD_CCMD_IN 27
  220. #define GPI_SDIO0_PAD_CDATA_IN_BIT0 28
  221. #define GPI_SDIO0_PAD_CDATA_IN_BIT1 29
  222. #define GPI_SDIO0_PAD_CDATA_IN_BIT2 30
  223. #define GPI_SDIO0_PAD_CDATA_IN_BIT3 31
  224. #define GPI_SDIO0_PAD_CDATA_IN_BIT4 32
  225. #define GPI_SDIO0_PAD_CDATA_IN_BIT5 33
  226. #define GPI_SDIO0_PAD_CDATA_IN_BIT6 34
  227. #define GPI_SDIO0_PAD_CDATA_IN_BIT7 35
  228. #define GPI_SDIO1_PAD_CARD_DETECT_N 36
  229. #define GPI_SDIO1_PAD_CARD_WRITE_PRT 37
  230. #define GPI_SDIO1_PAD_CCMD_IN 38
  231. #define GPI_SDIO1_PAD_CDATA_IN_BIT0 39
  232. #define GPI_SDIO1_PAD_CDATA_IN_BIT1 40
  233. #define GPI_SDIO1_PAD_CDATA_IN_BIT2 41
  234. #define GPI_SDIO1_PAD_CDATA_IN_BIT3 42
  235. #define GPI_SDIO1_PAD_CDATA_IN_BIT4 43
  236. #define GPI_SDIO1_PAD_CDATA_IN_BIT5 44
  237. #define GPI_SDIO1_PAD_CDATA_IN_BIT6 45
  238. #define GPI_SDIO1_PAD_CDATA_IN_BIT7 46
  239. #define GPI_SPDIF_RX_SDIN 47
  240. #define GPI_SPI0_PAD_RXD 48
  241. #define GPI_SPI0_PAD_SS_IN_N 49
  242. #define GPI_SPI1_PAD_RXD 50
  243. #define GPI_SPI1_PAD_SS_IN_N 51
  244. #define GPI_SPI2_PAD_RXD 52
  245. #define GPI_SPI2_PAD_SS_IN_N 53
  246. #define GPI_SPI2AHB_PAD_RXD_BIT0 54
  247. #define GPI_SPI2AHB_PAD_RXD_BIT1 55
  248. #define GPI_SPI2AHB_PAD_RXD_BIT2 56
  249. #define GPI_SPI2AHB_PAD_RXD_BIT3 57
  250. #define GPI_SPI2AHB_PAD_SS_N 58
  251. #define GPI_SPI2AHB_SLV_SCLKIN 59
  252. #define GPI_SPI3_PAD_RXD 60
  253. #define GPI_SPI3_PAD_SS_IN_N 61
  254. #define GPI_UART0_PAD_CTSN 62
  255. #define GPI_UART0_PAD_DCDN 63
  256. #define GPI_UART0_PAD_DSRN 64
  257. #define GPI_UART0_PAD_RIN 65
  258. #define GPI_UART0_PAD_SIN 66
  259. #define GPI_UART1_PAD_SIN 67
  260. #define GPI_UART2_PAD_CTS_N 68
  261. #define GPI_UART2_PAD_DCD_N 69
  262. #define GPI_UART2_PAD_DSR_N 70
  263. #define GPI_UART2_PAD_RI_N 71
  264. #define GPI_UART2_PAD_SIN 72
  265. #define GPI_UART3_PAD_SIN 73
  266. #define GPI_USB_OVER_CURRENT 74
  267. #endif