0022-riscv-dts-starfive-Add-StarFive-JH7110-pin-function-.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. From 878c16d22c0feb52c3af65139734b8bb45e349e1 Mon Sep 17 00:00:00 2001
  2. From: Jianlong Huang <[email protected]>
  3. Date: Sat, 1 Apr 2023 19:19:32 +0800
  4. Subject: [PATCH 022/122] riscv: dts: starfive: Add StarFive JH7110 pin
  5. function definitions
  6. Add pin function definitions for StarFive JH7110 SoC.
  7. Tested-by: Tommaso Merciai <[email protected]>
  8. Co-developed-by: Emil Renner Berthing <[email protected]>
  9. Signed-off-by: Emil Renner Berthing <[email protected]>
  10. Signed-off-by: Jianlong Huang <[email protected]>
  11. Signed-off-by: Hal Feng <[email protected]>
  12. Reviewed-by: Emil Renner Berthing <[email protected]>
  13. Signed-off-by: Conor Dooley <[email protected]>
  14. ---
  15. arch/riscv/boot/dts/starfive/jh7110-pinfunc.h | 308 ++++++++++++++++++
  16. 1 file changed, 308 insertions(+)
  17. create mode 100644 arch/riscv/boot/dts/starfive/jh7110-pinfunc.h
  18. --- /dev/null
  19. +++ b/arch/riscv/boot/dts/starfive/jh7110-pinfunc.h
  20. @@ -0,0 +1,308 @@
  21. +/* SPDX-License-Identifier: GPL-2.0 OR MIT */
  22. +/*
  23. + * Copyright (C) 2022 Emil Renner Berthing <[email protected]>
  24. + * Copyright (C) 2022 StarFive Technology Co., Ltd.
  25. + */
  26. +
  27. +#ifndef __JH7110_PINFUNC_H__
  28. +#define __JH7110_PINFUNC_H__
  29. +
  30. +/*
  31. + * mux bits:
  32. + * | 31 - 24 | 23 - 16 | 15 - 10 | 9 - 8 | 7 - 0 |
  33. + * | din | dout | doen | function | gpio nr |
  34. + *
  35. + * dout: output signal
  36. + * doen: output enable signal
  37. + * din: optional input signal, 0xff = none
  38. + * function: function selector
  39. + * gpio nr: gpio number, 0 - 63
  40. + */
  41. +#define GPIOMUX(n, dout, doen, din) ( \
  42. + (((din) & 0xff) << 24) | \
  43. + (((dout) & 0xff) << 16) | \
  44. + (((doen) & 0x3f) << 10) | \
  45. + ((n) & 0x3f))
  46. +
  47. +#define PINMUX(n, func) ((1 << 10) | (((func) & 0x3) << 8) | ((n) & 0xff))
  48. +
  49. +/* sys_iomux dout */
  50. +#define GPOUT_LOW 0
  51. +#define GPOUT_HIGH 1
  52. +#define GPOUT_SYS_WAVE511_UART_TX 2
  53. +#define GPOUT_SYS_CAN0_STBY 3
  54. +#define GPOUT_SYS_CAN0_TST_NEXT_BIT 4
  55. +#define GPOUT_SYS_CAN0_TST_SAMPLE_POINT 5
  56. +#define GPOUT_SYS_CAN0_TXD 6
  57. +#define GPOUT_SYS_USB_DRIVE_VBUS 7
  58. +#define GPOUT_SYS_QSPI_CS1 8
  59. +#define GPOUT_SYS_SPDIF 9
  60. +#define GPOUT_SYS_HDMI_CEC_SDA 10
  61. +#define GPOUT_SYS_HDMI_DDC_SCL 11
  62. +#define GPOUT_SYS_HDMI_DDC_SDA 12
  63. +#define GPOUT_SYS_WATCHDOG 13
  64. +#define GPOUT_SYS_I2C0_CLK 14
  65. +#define GPOUT_SYS_I2C0_DATA 15
  66. +#define GPOUT_SYS_SDIO0_BACK_END_POWER 16
  67. +#define GPOUT_SYS_SDIO0_CARD_POWER_EN 17
  68. +#define GPOUT_SYS_SDIO0_CCMD_OD_PULLUP_EN 18
  69. +#define GPOUT_SYS_SDIO0_RST 19
  70. +#define GPOUT_SYS_UART0_TX 20
  71. +#define GPOUT_SYS_HIFI4_JTAG_TDO 21
  72. +#define GPOUT_SYS_JTAG_TDO 22
  73. +#define GPOUT_SYS_PDM_MCLK 23
  74. +#define GPOUT_SYS_PWM_CHANNEL0 24
  75. +#define GPOUT_SYS_PWM_CHANNEL1 25
  76. +#define GPOUT_SYS_PWM_CHANNEL2 26
  77. +#define GPOUT_SYS_PWM_CHANNEL3 27
  78. +#define GPOUT_SYS_PWMDAC_LEFT 28
  79. +#define GPOUT_SYS_PWMDAC_RIGHT 29
  80. +#define GPOUT_SYS_SPI0_CLK 30
  81. +#define GPOUT_SYS_SPI0_FSS 31
  82. +#define GPOUT_SYS_SPI0_TXD 32
  83. +#define GPOUT_SYS_GMAC_PHYCLK 33
  84. +#define GPOUT_SYS_I2SRX_BCLK 34
  85. +#define GPOUT_SYS_I2SRX_LRCK 35
  86. +#define GPOUT_SYS_I2STX0_BCLK 36
  87. +#define GPOUT_SYS_I2STX0_LRCK 37
  88. +#define GPOUT_SYS_MCLK 38
  89. +#define GPOUT_SYS_TDM_CLK 39
  90. +#define GPOUT_SYS_TDM_SYNC 40
  91. +#define GPOUT_SYS_TDM_TXD 41
  92. +#define GPOUT_SYS_TRACE_DATA0 42
  93. +#define GPOUT_SYS_TRACE_DATA1 43
  94. +#define GPOUT_SYS_TRACE_DATA2 44
  95. +#define GPOUT_SYS_TRACE_DATA3 45
  96. +#define GPOUT_SYS_TRACE_REF 46
  97. +#define GPOUT_SYS_CAN1_STBY 47
  98. +#define GPOUT_SYS_CAN1_TST_NEXT_BIT 48
  99. +#define GPOUT_SYS_CAN1_TST_SAMPLE_POINT 49
  100. +#define GPOUT_SYS_CAN1_TXD 50
  101. +#define GPOUT_SYS_I2C1_CLK 51
  102. +#define GPOUT_SYS_I2C1_DATA 52
  103. +#define GPOUT_SYS_SDIO1_BACK_END_POWER 53
  104. +#define GPOUT_SYS_SDIO1_CARD_POWER_EN 54
  105. +#define GPOUT_SYS_SDIO1_CLK 55
  106. +#define GPOUT_SYS_SDIO1_CMD_OD_PULLUP_EN 56
  107. +#define GPOUT_SYS_SDIO1_CMD 57
  108. +#define GPOUT_SYS_SDIO1_DATA0 58
  109. +#define GPOUT_SYS_SDIO1_DATA1 59
  110. +#define GPOUT_SYS_SDIO1_DATA2 60
  111. +#define GPOUT_SYS_SDIO1_DATA3 61
  112. +#define GPOUT_SYS_SDIO1_DATA4 63
  113. +#define GPOUT_SYS_SDIO1_DATA5 63
  114. +#define GPOUT_SYS_SDIO1_DATA6 64
  115. +#define GPOUT_SYS_SDIO1_DATA7 65
  116. +#define GPOUT_SYS_SDIO1_RST 66
  117. +#define GPOUT_SYS_UART1_RTS 67
  118. +#define GPOUT_SYS_UART1_TX 68
  119. +#define GPOUT_SYS_I2STX1_SDO0 69
  120. +#define GPOUT_SYS_I2STX1_SDO1 70
  121. +#define GPOUT_SYS_I2STX1_SDO2 71
  122. +#define GPOUT_SYS_I2STX1_SDO3 72
  123. +#define GPOUT_SYS_SPI1_CLK 73
  124. +#define GPOUT_SYS_SPI1_FSS 74
  125. +#define GPOUT_SYS_SPI1_TXD 75
  126. +#define GPOUT_SYS_I2C2_CLK 76
  127. +#define GPOUT_SYS_I2C2_DATA 77
  128. +#define GPOUT_SYS_UART2_RTS 78
  129. +#define GPOUT_SYS_UART2_TX 79
  130. +#define GPOUT_SYS_SPI2_CLK 80
  131. +#define GPOUT_SYS_SPI2_FSS 81
  132. +#define GPOUT_SYS_SPI2_TXD 82
  133. +#define GPOUT_SYS_I2C3_CLK 83
  134. +#define GPOUT_SYS_I2C3_DATA 84
  135. +#define GPOUT_SYS_UART3_TX 85
  136. +#define GPOUT_SYS_SPI3_CLK 86
  137. +#define GPOUT_SYS_SPI3_FSS 87
  138. +#define GPOUT_SYS_SPI3_TXD 88
  139. +#define GPOUT_SYS_I2C4_CLK 89
  140. +#define GPOUT_SYS_I2C4_DATA 90
  141. +#define GPOUT_SYS_UART4_RTS 91
  142. +#define GPOUT_SYS_UART4_TX 92
  143. +#define GPOUT_SYS_SPI4_CLK 93
  144. +#define GPOUT_SYS_SPI4_FSS 94
  145. +#define GPOUT_SYS_SPI4_TXD 95
  146. +#define GPOUT_SYS_I2C5_CLK 96
  147. +#define GPOUT_SYS_I2C5_DATA 97
  148. +#define GPOUT_SYS_UART5_RTS 98
  149. +#define GPOUT_SYS_UART5_TX 99
  150. +#define GPOUT_SYS_SPI5_CLK 100
  151. +#define GPOUT_SYS_SPI5_FSS 101
  152. +#define GPOUT_SYS_SPI5_TXD 102
  153. +#define GPOUT_SYS_I2C6_CLK 103
  154. +#define GPOUT_SYS_I2C6_DATA 104
  155. +#define GPOUT_SYS_SPI6_CLK 105
  156. +#define GPOUT_SYS_SPI6_FSS 106
  157. +#define GPOUT_SYS_SPI6_TXD 107
  158. +
  159. +/* aon_iomux dout */
  160. +#define GPOUT_AON_CLK_32K_OUT 2
  161. +#define GPOUT_AON_PTC0_PWM4 3
  162. +#define GPOUT_AON_PTC0_PWM5 4
  163. +#define GPOUT_AON_PTC0_PWM6 5
  164. +#define GPOUT_AON_PTC0_PWM7 6
  165. +#define GPOUT_AON_CLK_GCLK0 7
  166. +#define GPOUT_AON_CLK_GCLK1 8
  167. +#define GPOUT_AON_CLK_GCLK2 9
  168. +
  169. +/* sys_iomux doen */
  170. +#define GPOEN_ENABLE 0
  171. +#define GPOEN_DISABLE 1
  172. +#define GPOEN_SYS_HDMI_CEC_SDA 2
  173. +#define GPOEN_SYS_HDMI_DDC_SCL 3
  174. +#define GPOEN_SYS_HDMI_DDC_SDA 4
  175. +#define GPOEN_SYS_I2C0_CLK 5
  176. +#define GPOEN_SYS_I2C0_DATA 6
  177. +#define GPOEN_SYS_HIFI4_JTAG_TDO 7
  178. +#define GPOEN_SYS_JTAG_TDO 8
  179. +#define GPOEN_SYS_PWM0_CHANNEL0 9
  180. +#define GPOEN_SYS_PWM0_CHANNEL1 10
  181. +#define GPOEN_SYS_PWM0_CHANNEL2 11
  182. +#define GPOEN_SYS_PWM0_CHANNEL3 12
  183. +#define GPOEN_SYS_SPI0_NSSPCTL 13
  184. +#define GPOEN_SYS_SPI0_NSSP 14
  185. +#define GPOEN_SYS_TDM_SYNC 15
  186. +#define GPOEN_SYS_TDM_TXD 16
  187. +#define GPOEN_SYS_I2C1_CLK 17
  188. +#define GPOEN_SYS_I2C1_DATA 18
  189. +#define GPOEN_SYS_SDIO1_CMD 19
  190. +#define GPOEN_SYS_SDIO1_DATA0 20
  191. +#define GPOEN_SYS_SDIO1_DATA1 21
  192. +#define GPOEN_SYS_SDIO1_DATA2 22
  193. +#define GPOEN_SYS_SDIO1_DATA3 23
  194. +#define GPOEN_SYS_SDIO1_DATA4 24
  195. +#define GPOEN_SYS_SDIO1_DATA5 25
  196. +#define GPOEN_SYS_SDIO1_DATA6 26
  197. +#define GPOEN_SYS_SDIO1_DATA7 27
  198. +#define GPOEN_SYS_SPI1_NSSPCTL 28
  199. +#define GPOEN_SYS_SPI1_NSSP 29
  200. +#define GPOEN_SYS_I2C2_CLK 30
  201. +#define GPOEN_SYS_I2C2_DATA 31
  202. +#define GPOEN_SYS_SPI2_NSSPCTL 32
  203. +#define GPOEN_SYS_SPI2_NSSP 33
  204. +#define GPOEN_SYS_I2C3_CLK 34
  205. +#define GPOEN_SYS_I2C3_DATA 35
  206. +#define GPOEN_SYS_SPI3_NSSPCTL 36
  207. +#define GPOEN_SYS_SPI3_NSSP 37
  208. +#define GPOEN_SYS_I2C4_CLK 38
  209. +#define GPOEN_SYS_I2C4_DATA 39
  210. +#define GPOEN_SYS_SPI4_NSSPCTL 40
  211. +#define GPOEN_SYS_SPI4_NSSP 41
  212. +#define GPOEN_SYS_I2C5_CLK 42
  213. +#define GPOEN_SYS_I2C5_DATA 43
  214. +#define GPOEN_SYS_SPI5_NSSPCTL 44
  215. +#define GPOEN_SYS_SPI5_NSSP 45
  216. +#define GPOEN_SYS_I2C6_CLK 46
  217. +#define GPOEN_SYS_I2C6_DATA 47
  218. +#define GPOEN_SYS_SPI6_NSSPCTL 48
  219. +#define GPOEN_SYS_SPI6_NSSP 49
  220. +
  221. +/* aon_iomux doen */
  222. +#define GPOEN_AON_PTC0_OE_N_4 2
  223. +#define GPOEN_AON_PTC0_OE_N_5 3
  224. +#define GPOEN_AON_PTC0_OE_N_6 4
  225. +#define GPOEN_AON_PTC0_OE_N_7 5
  226. +
  227. +/* sys_iomux gin */
  228. +#define GPI_NONE 255
  229. +
  230. +#define GPI_SYS_WAVE511_UART_RX 0
  231. +#define GPI_SYS_CAN0_RXD 1
  232. +#define GPI_SYS_USB_OVERCURRENT 2
  233. +#define GPI_SYS_SPDIF 3
  234. +#define GPI_SYS_JTAG_RST 4
  235. +#define GPI_SYS_HDMI_CEC_SDA 5
  236. +#define GPI_SYS_HDMI_DDC_SCL 6
  237. +#define GPI_SYS_HDMI_DDC_SDA 7
  238. +#define GPI_SYS_HDMI_HPD 8
  239. +#define GPI_SYS_I2C0_CLK 9
  240. +#define GPI_SYS_I2C0_DATA 10
  241. +#define GPI_SYS_SDIO0_CD 11
  242. +#define GPI_SYS_SDIO0_INT 12
  243. +#define GPI_SYS_SDIO0_WP 13
  244. +#define GPI_SYS_UART0_RX 14
  245. +#define GPI_SYS_HIFI4_JTAG_TCK 15
  246. +#define GPI_SYS_HIFI4_JTAG_TDI 16
  247. +#define GPI_SYS_HIFI4_JTAG_TMS 17
  248. +#define GPI_SYS_HIFI4_JTAG_RST 18
  249. +#define GPI_SYS_JTAG_TDI 19
  250. +#define GPI_SYS_JTAG_TMS 20
  251. +#define GPI_SYS_PDM_DMIC0 21
  252. +#define GPI_SYS_PDM_DMIC1 22
  253. +#define GPI_SYS_I2SRX_SDIN0 23
  254. +#define GPI_SYS_I2SRX_SDIN1 24
  255. +#define GPI_SYS_I2SRX_SDIN2 25
  256. +#define GPI_SYS_SPI0_CLK 26
  257. +#define GPI_SYS_SPI0_FSS 27
  258. +#define GPI_SYS_SPI0_RXD 28
  259. +#define GPI_SYS_JTAG_TCK 29
  260. +#define GPI_SYS_MCLK_EXT 30
  261. +#define GPI_SYS_I2SRX_BCLK 31
  262. +#define GPI_SYS_I2SRX_LRCK 32
  263. +#define GPI_SYS_I2STX0_BCLK 33
  264. +#define GPI_SYS_I2STX0_LRCK 34
  265. +#define GPI_SYS_TDM_CLK 35
  266. +#define GPI_SYS_TDM_RXD 36
  267. +#define GPI_SYS_TDM_SYNC 37
  268. +#define GPI_SYS_CAN1_RXD 38
  269. +#define GPI_SYS_I2C1_CLK 39
  270. +#define GPI_SYS_I2C1_DATA 40
  271. +#define GPI_SYS_SDIO1_CD 41
  272. +#define GPI_SYS_SDIO1_INT 42
  273. +#define GPI_SYS_SDIO1_WP 43
  274. +#define GPI_SYS_SDIO1_CMD 44
  275. +#define GPI_SYS_SDIO1_DATA0 45
  276. +#define GPI_SYS_SDIO1_DATA1 46
  277. +#define GPI_SYS_SDIO1_DATA2 47
  278. +#define GPI_SYS_SDIO1_DATA3 48
  279. +#define GPI_SYS_SDIO1_DATA4 49
  280. +#define GPI_SYS_SDIO1_DATA5 50
  281. +#define GPI_SYS_SDIO1_DATA6 51
  282. +#define GPI_SYS_SDIO1_DATA7 52
  283. +#define GPI_SYS_SDIO1_STRB 53
  284. +#define GPI_SYS_UART1_CTS 54
  285. +#define GPI_SYS_UART1_RX 55
  286. +#define GPI_SYS_SPI1_CLK 56
  287. +#define GPI_SYS_SPI1_FSS 57
  288. +#define GPI_SYS_SPI1_RXD 58
  289. +#define GPI_SYS_I2C2_CLK 59
  290. +#define GPI_SYS_I2C2_DATA 60
  291. +#define GPI_SYS_UART2_CTS 61
  292. +#define GPI_SYS_UART2_RX 62
  293. +#define GPI_SYS_SPI2_CLK 63
  294. +#define GPI_SYS_SPI2_FSS 64
  295. +#define GPI_SYS_SPI2_RXD 65
  296. +#define GPI_SYS_I2C3_CLK 66
  297. +#define GPI_SYS_I2C3_DATA 67
  298. +#define GPI_SYS_UART3_RX 68
  299. +#define GPI_SYS_SPI3_CLK 69
  300. +#define GPI_SYS_SPI3_FSS 70
  301. +#define GPI_SYS_SPI3_RXD 71
  302. +#define GPI_SYS_I2C4_CLK 72
  303. +#define GPI_SYS_I2C4_DATA 73
  304. +#define GPI_SYS_UART4_CTS 74
  305. +#define GPI_SYS_UART4_RX 75
  306. +#define GPI_SYS_SPI4_CLK 76
  307. +#define GPI_SYS_SPI4_FSS 77
  308. +#define GPI_SYS_SPI4_RXD 78
  309. +#define GPI_SYS_I2C5_CLK 79
  310. +#define GPI_SYS_I2C5_DATA 80
  311. +#define GPI_SYS_UART5_CTS 81
  312. +#define GPI_SYS_UART5_RX 82
  313. +#define GPI_SYS_SPI5_CLK 83
  314. +#define GPI_SYS_SPI5_FSS 84
  315. +#define GPI_SYS_SPI5_RXD 85
  316. +#define GPI_SYS_I2C6_CLK 86
  317. +#define GPI_SYS_I2C6_DATA 87
  318. +#define GPI_SYS_SPI6_CLK 88
  319. +#define GPI_SYS_SPI6_FSS 89
  320. +#define GPI_SYS_SPI6_RXD 90
  321. +
  322. +/* aon_iomux gin */
  323. +#define GPI_AON_PMU_GPIO_WAKEUP_0 0
  324. +#define GPI_AON_PMU_GPIO_WAKEUP_1 1
  325. +#define GPI_AON_PMU_GPIO_WAKEUP_2 2
  326. +#define GPI_AON_PMU_GPIO_WAKEUP_3 3
  327. +
  328. +#endif