pinmux.c 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. /*
  2. * Copyright (c) 2010-2014, NVIDIA CORPORATION. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #include <common.h>
  7. #include <asm/io.h>
  8. #include <asm/arch/pinmux.h>
  9. #define PIN(pin, f0, f1, f2, f3) \
  10. { \
  11. .funcs = { \
  12. PMUX_FUNC_##f0, \
  13. PMUX_FUNC_##f1, \
  14. PMUX_FUNC_##f2, \
  15. PMUX_FUNC_##f3, \
  16. }, \
  17. }
  18. #define PIN_RESERVED {}
  19. static const struct pmux_pingrp_desc tegra114_pingroups[] = {
  20. /* pin, f0, f1, f2, f3 */
  21. /* Offset 0x3000 */
  22. PIN(ULPI_DATA0_PO1, SPI3, HSI, UARTA, ULPI),
  23. PIN(ULPI_DATA1_PO2, SPI3, HSI, UARTA, ULPI),
  24. PIN(ULPI_DATA2_PO3, SPI3, HSI, UARTA, ULPI),
  25. PIN(ULPI_DATA3_PO4, SPI3, HSI, UARTA, ULPI),
  26. PIN(ULPI_DATA4_PO5, SPI2, HSI, UARTA, ULPI),
  27. PIN(ULPI_DATA5_PO6, SPI2, HSI, UARTA, ULPI),
  28. PIN(ULPI_DATA6_PO7, SPI2, HSI, UARTA, ULPI),
  29. PIN(ULPI_DATA7_PO0, SPI2, HSI, UARTA, ULPI),
  30. PIN(ULPI_CLK_PY0, SPI1, SPI5, UARTD, ULPI),
  31. PIN(ULPI_DIR_PY1, SPI1, SPI5, UARTD, ULPI),
  32. PIN(ULPI_NXT_PY2, SPI1, SPI5, UARTD, ULPI),
  33. PIN(ULPI_STP_PY3, SPI1, SPI5, UARTD, ULPI),
  34. PIN(DAP3_FS_PP0, I2S2, SPI5, DISPLAYA, DISPLAYB),
  35. PIN(DAP3_DIN_PP1, I2S2, SPI5, DISPLAYA, DISPLAYB),
  36. PIN(DAP3_DOUT_PP2, I2S2, SPI5, DISPLAYA, DISPLAYB),
  37. PIN(DAP3_SCLK_PP3, I2S2, SPI5, DISPLAYA, DISPLAYB),
  38. PIN(PV0, USB, RSVD2, RSVD3, RSVD4),
  39. PIN(PV1, RSVD1, RSVD2, RSVD3, RSVD4),
  40. PIN(SDMMC1_CLK_PZ0, SDMMC1, CLK12, RSVD3, RSVD4),
  41. PIN(SDMMC1_CMD_PZ1, SDMMC1, SPDIF, SPI4, UARTA),
  42. PIN(SDMMC1_DAT3_PY4, SDMMC1, SPDIF, SPI4, UARTA),
  43. PIN(SDMMC1_DAT2_PY5, SDMMC1, PWM0, SPI4, UARTA),
  44. PIN(SDMMC1_DAT1_PY6, SDMMC1, PWM1, SPI4, UARTA),
  45. PIN(SDMMC1_DAT0_PY7, SDMMC1, RSVD2, SPI4, UARTA),
  46. PIN_RESERVED,
  47. PIN_RESERVED,
  48. /* Offset 0x3068 */
  49. PIN(CLK2_OUT_PW5, EXTPERIPH2, RSVD2, RSVD3, RSVD4),
  50. PIN(CLK2_REQ_PCC5, DAP, RSVD2, RSVD3, RSVD4),
  51. PIN_RESERVED,
  52. PIN_RESERVED,
  53. PIN_RESERVED,
  54. PIN_RESERVED,
  55. PIN_RESERVED,
  56. PIN_RESERVED,
  57. PIN_RESERVED,
  58. PIN_RESERVED,
  59. PIN_RESERVED,
  60. PIN_RESERVED,
  61. PIN_RESERVED,
  62. PIN_RESERVED,
  63. PIN_RESERVED,
  64. PIN_RESERVED,
  65. PIN_RESERVED,
  66. PIN_RESERVED,
  67. PIN_RESERVED,
  68. PIN_RESERVED,
  69. PIN_RESERVED,
  70. PIN_RESERVED,
  71. PIN_RESERVED,
  72. PIN_RESERVED,
  73. PIN_RESERVED,
  74. PIN_RESERVED,
  75. PIN_RESERVED,
  76. PIN_RESERVED,
  77. PIN_RESERVED,
  78. PIN_RESERVED,
  79. PIN_RESERVED,
  80. PIN_RESERVED,
  81. PIN_RESERVED,
  82. PIN_RESERVED,
  83. PIN_RESERVED,
  84. PIN_RESERVED,
  85. PIN_RESERVED,
  86. PIN_RESERVED,
  87. PIN_RESERVED,
  88. PIN_RESERVED,
  89. PIN_RESERVED,
  90. PIN_RESERVED,
  91. /* Offset 0x3110 */
  92. PIN(HDMI_INT_PN7, RSVD1, RSVD2, RSVD3, RSVD4),
  93. PIN(DDC_SCL_PV4, I2C4, RSVD2, RSVD3, RSVD4),
  94. PIN(DDC_SDA_PV5, I2C4, RSVD2, RSVD3, RSVD4),
  95. PIN_RESERVED,
  96. PIN_RESERVED,
  97. PIN_RESERVED,
  98. PIN_RESERVED,
  99. PIN_RESERVED,
  100. PIN_RESERVED,
  101. PIN_RESERVED,
  102. PIN_RESERVED,
  103. PIN_RESERVED,
  104. PIN_RESERVED,
  105. PIN_RESERVED,
  106. PIN_RESERVED,
  107. PIN_RESERVED,
  108. PIN_RESERVED,
  109. PIN_RESERVED,
  110. PIN_RESERVED,
  111. PIN_RESERVED,
  112. PIN_RESERVED,
  113. /* Offset 0x3164 */
  114. PIN(UART2_RXD_PC3, IRDA, SPDIF, UARTA, SPI4),
  115. PIN(UART2_TXD_PC2, IRDA, SPDIF, UARTA, SPI4),
  116. PIN(UART2_RTS_N_PJ6, UARTA, UARTB, RSVD3, SPI4),
  117. PIN(UART2_CTS_N_PJ5, UARTA, UARTB, RSVD3, SPI4),
  118. PIN(UART3_TXD_PW6, UARTC, RSVD2, RSVD3, SPI4),
  119. PIN(UART3_RXD_PW7, UARTC, RSVD2, RSVD3, SPI4),
  120. PIN(UART3_CTS_N_PA1, UARTC, SDMMC1, DTV, SPI4),
  121. PIN(UART3_RTS_N_PC0, UARTC, PWM0, DTV, DISPLAYA),
  122. PIN(PU0, OWR, UARTA, RSVD3, RSVD4),
  123. PIN(PU1, RSVD1, UARTA, RSVD3, RSVD4),
  124. PIN(PU2, RSVD1, UARTA, RSVD3, RSVD4),
  125. PIN(PU3, PWM0, UARTA, DISPLAYA, DISPLAYB),
  126. PIN(PU4, PWM1, UARTA, DISPLAYA, DISPLAYB),
  127. PIN(PU5, PWM2, UARTA, DISPLAYA, DISPLAYB),
  128. PIN(PU6, PWM3, UARTA, USB, DISPLAYB),
  129. PIN(GEN1_I2C_SDA_PC5, I2C1, RSVD2, RSVD3, RSVD4),
  130. PIN(GEN1_I2C_SCL_PC4, I2C1, RSVD2, RSVD3, RSVD4),
  131. PIN(DAP4_FS_PP4, I2S3, RSVD2, DTV, RSVD4),
  132. PIN(DAP4_DIN_PP5, I2S3, RSVD2, RSVD3, RSVD4),
  133. PIN(DAP4_DOUT_PP6, I2S3, RSVD2, DTV, RSVD4),
  134. PIN(DAP4_SCLK_PP7, I2S3, RSVD2, RSVD3, RSVD4),
  135. PIN(CLK3_OUT_PEE0, EXTPERIPH3, RSVD2, RSVD3, RSVD4),
  136. PIN(CLK3_REQ_PEE1, DEV3, RSVD2, RSVD3, RSVD4),
  137. PIN(GMI_WP_N_PC7, RSVD1, NAND, GMI, GMI_ALT),
  138. PIN(GMI_IORDY_PI5, SDMMC2, RSVD2, GMI, TRACE),
  139. PIN(GMI_WAIT_PI7, SPI4, NAND, GMI, DTV),
  140. PIN(GMI_ADV_N_PK0, RSVD1, NAND, GMI, TRACE),
  141. PIN(GMI_CLK_PK1, SDMMC2, NAND, GMI, TRACE),
  142. PIN(GMI_CS0_N_PJ0, RSVD1, NAND, GMI, USB),
  143. PIN(GMI_CS1_N_PJ2, RSVD1, NAND, GMI, SOC),
  144. PIN(GMI_CS2_N_PK3, SDMMC2, NAND, GMI, TRACE),
  145. PIN(GMI_CS3_N_PK4, SDMMC2, NAND, GMI, GMI_ALT),
  146. PIN(GMI_CS4_N_PK2, USB, NAND, GMI, TRACE),
  147. PIN(GMI_CS6_N_PI3, NAND, NAND_ALT, GMI, SPI4),
  148. PIN(GMI_CS7_N_PI6, NAND, NAND_ALT, GMI, SDMMC2),
  149. PIN(GMI_AD0_PG0, RSVD1, NAND, GMI, RSVD4),
  150. PIN(GMI_AD1_PG1, RSVD1, NAND, GMI, RSVD4),
  151. PIN(GMI_AD2_PG2, RSVD1, NAND, GMI, RSVD4),
  152. PIN(GMI_AD3_PG3, RSVD1, NAND, GMI, RSVD4),
  153. PIN(GMI_AD4_PG4, RSVD1, NAND, GMI, RSVD4),
  154. PIN(GMI_AD5_PG5, RSVD1, NAND, GMI, SPI4),
  155. PIN(GMI_AD6_PG6, RSVD1, NAND, GMI, SPI4),
  156. PIN(GMI_AD7_PG7, RSVD1, NAND, GMI, SPI4),
  157. PIN(GMI_AD8_PH0, PWM0, NAND, GMI, DTV),
  158. PIN(GMI_AD9_PH1, PWM1, NAND, GMI, CLDVFS),
  159. PIN(GMI_AD10_PH2, PWM2, NAND, GMI, CLDVFS),
  160. PIN(GMI_AD11_PH3, PWM3, NAND, GMI, USB),
  161. PIN(GMI_AD12_PH4, SDMMC2, NAND, GMI, RSVD4),
  162. PIN(GMI_AD13_PH5, SDMMC2, NAND, GMI, RSVD4),
  163. PIN(GMI_AD14_PH6, SDMMC2, NAND, GMI, DTV),
  164. PIN(GMI_AD15_PH7, SDMMC2, NAND, GMI, DTV),
  165. PIN(GMI_A16_PJ7, UARTD, TRACE, GMI, GMI_ALT),
  166. PIN(GMI_A17_PB0, UARTD, RSVD2, GMI, TRACE),
  167. PIN(GMI_A18_PB1, UARTD, RSVD2, GMI, TRACE),
  168. PIN(GMI_A19_PK7, UARTD, SPI4, GMI, TRACE),
  169. PIN(GMI_WR_N_PI0, RSVD1, NAND, GMI, SPI4),
  170. PIN(GMI_OE_N_PI1, RSVD1, NAND, GMI, SOC),
  171. PIN(GMI_DQS_P_PJ3, SDMMC2, NAND, GMI, TRACE),
  172. PIN(GMI_RST_N_PI4, NAND, NAND_ALT, GMI, RSVD4),
  173. PIN(GEN2_I2C_SCL_PT5, I2C2, RSVD2, GMI, RSVD4),
  174. PIN(GEN2_I2C_SDA_PT6, I2C2, RSVD2, GMI, RSVD4),
  175. PIN(SDMMC4_CLK_PCC4, SDMMC4, RSVD2, GMI, RSVD4),
  176. PIN(SDMMC4_CMD_PT7, SDMMC4, RSVD2, GMI, RSVD4),
  177. PIN(SDMMC4_DAT0_PAA0, SDMMC4, SPI3, GMI, RSVD4),
  178. PIN(SDMMC4_DAT1_PAA1, SDMMC4, SPI3, GMI, RSVD4),
  179. PIN(SDMMC4_DAT2_PAA2, SDMMC4, SPI3, GMI, RSVD4),
  180. PIN(SDMMC4_DAT3_PAA3, SDMMC4, SPI3, GMI, RSVD4),
  181. PIN(SDMMC4_DAT4_PAA4, SDMMC4, SPI3, GMI, RSVD4),
  182. PIN(SDMMC4_DAT5_PAA5, SDMMC4, SPI3, GMI, RSVD4),
  183. PIN(SDMMC4_DAT6_PAA6, SDMMC4, SPI3, GMI, RSVD4),
  184. PIN(SDMMC4_DAT7_PAA7, SDMMC4, RSVD2, GMI, RSVD4),
  185. PIN_RESERVED,
  186. /* Offset 0x3284 */
  187. PIN(CAM_MCLK_PCC0, VI, VI_ALT1, VI_ALT3, RSVD4),
  188. PIN(PCC1, I2S4, RSVD2, RSVD3, RSVD4),
  189. PIN(PBB0, I2S4, VI, VI_ALT1, VI_ALT3),
  190. PIN(CAM_I2C_SCL_PBB1, VGP1, I2C3, RSVD3, RSVD4),
  191. PIN(CAM_I2C_SDA_PBB2, VGP2, I2C3, RSVD3, RSVD4),
  192. PIN(PBB3, VGP3, DISPLAYA, DISPLAYB, RSVD4),
  193. PIN(PBB4, VGP4, DISPLAYA, DISPLAYB, RSVD4),
  194. PIN(PBB5, VGP5, DISPLAYA, DISPLAYB, RSVD4),
  195. PIN(PBB6, VGP6, DISPLAYA, DISPLAYB, RSVD4),
  196. PIN(PBB7, I2S4, RSVD2, RSVD3, RSVD4),
  197. PIN(PCC2, I2S4, RSVD2, RSVD3, RSVD4),
  198. PIN(JTAG_RTCK, RTCK, RSVD2, RSVD3, RSVD4),
  199. PIN(PWR_I2C_SCL_PZ6, I2CPWR, RSVD2, RSVD3, RSVD4),
  200. PIN(PWR_I2C_SDA_PZ7, I2CPWR, RSVD2, RSVD3, RSVD4),
  201. PIN(KB_ROW0_PR0, KBC, RSVD2, RSVD3, RSVD4),
  202. PIN(KB_ROW1_PR1, KBC, RSVD2, RSVD3, RSVD4),
  203. PIN(KB_ROW2_PR2, KBC, RSVD2, RSVD3, RSVD4),
  204. PIN(KB_ROW3_PR3, KBC, DISPLAYA, RSVD3, DISPLAYB),
  205. PIN(KB_ROW4_PR4, KBC, DISPLAYA, SPI2, DISPLAYB),
  206. PIN(KB_ROW5_PR5, KBC, DISPLAYA, SPI2, DISPLAYB),
  207. PIN(KB_ROW6_PR6, KBC, DISPLAYA, DISPLAYA_ALT, DISPLAYB),
  208. PIN(KB_ROW7_PR7, KBC, RSVD2, CLDVFS, UARTA),
  209. PIN(KB_ROW8_PS0, KBC, RSVD2, CLDVFS, UARTA),
  210. PIN(KB_ROW9_PS1, KBC, RSVD2, RSVD3, UARTA),
  211. PIN(KB_ROW10_PS2, KBC, RSVD2, RSVD3, UARTA),
  212. PIN_RESERVED,
  213. PIN_RESERVED,
  214. PIN_RESERVED,
  215. PIN_RESERVED,
  216. PIN_RESERVED,
  217. /* Offset 0x32fc */
  218. PIN(KB_COL0_PQ0, KBC, USB, SPI2, EMC_DLL),
  219. PIN(KB_COL1_PQ1, KBC, RSVD2, SPI2, EMC_DLL),
  220. PIN(KB_COL2_PQ2, KBC, RSVD2, SPI2, RSVD4),
  221. PIN(KB_COL3_PQ3, KBC, DISPLAYA, PWM2, UARTA),
  222. PIN(KB_COL4_PQ4, KBC, OWR, SDMMC3, UARTA),
  223. PIN(KB_COL5_PQ5, KBC, RSVD2, SDMMC1, RSVD4),
  224. PIN(KB_COL6_PQ6, KBC, RSVD2, SPI2, RSVD4),
  225. PIN(KB_COL7_PQ7, KBC, RSVD2, SPI2, RSVD4),
  226. PIN(CLK_32K_OUT_PA0, BLINK, SOC, RSVD3, RSVD4),
  227. PIN(SYS_CLK_REQ_PZ5, SYSCLK, RSVD2, RSVD3, RSVD4),
  228. PIN(CORE_PWR_REQ, PWRON, RSVD2, RSVD3, RSVD4),
  229. PIN(CPU_PWR_REQ, CPU, RSVD2, RSVD3, RSVD4),
  230. PIN(PWR_INT_N, PMI, RSVD2, RSVD3, RSVD4),
  231. PIN(CLK_32K_IN, CLK, RSVD2, RSVD3, RSVD4),
  232. PIN(OWR, OWR, RSVD2, RSVD3, RSVD4),
  233. PIN(DAP1_FS_PN0, I2S0, HDA, GMI, RSVD4),
  234. PIN(DAP1_DIN_PN1, I2S0, HDA, GMI, RSVD4),
  235. PIN(DAP1_DOUT_PN2, I2S0, HDA, GMI, RSVD4),
  236. PIN(DAP1_SCLK_PN3, I2S0, HDA, GMI, RSVD4),
  237. PIN(CLK1_REQ_PEE2, DAP, DAP1, RSVD3, RSVD4),
  238. PIN(CLK1_OUT_PW4, EXTPERIPH1, DAP2, RSVD3, RSVD4),
  239. PIN(SPDIF_IN_PK6, SPDIF, USB, RSVD3, RSVD4),
  240. PIN(SPDIF_OUT_PK5, SPDIF, RSVD2, RSVD3, RSVD4),
  241. PIN(DAP2_FS_PA2, I2S1, HDA, RSVD3, RSVD4),
  242. PIN(DAP2_DIN_PA4, I2S1, HDA, RSVD3, RSVD4),
  243. PIN(DAP2_DOUT_PA5, I2S1, HDA, RSVD3, RSVD4),
  244. PIN(DAP2_SCLK_PA3, I2S1, HDA, RSVD3, RSVD4),
  245. PIN(DVFS_PWM_PX0, SPI6, CLDVFS, RSVD3, RSVD4),
  246. PIN(GPIO_X1_AUD_PX1, SPI6, RSVD2, RSVD3, RSVD4),
  247. PIN(GPIO_X3_AUD_PX3, SPI6, SPI1, RSVD3, RSVD4),
  248. PIN(DVFS_CLK_PX2, SPI6, CLDVFS, RSVD3, RSVD4),
  249. PIN(GPIO_X4_AUD_PX4, RSVD1, SPI1, SPI2, DAP2),
  250. PIN(GPIO_X5_AUD_PX5, RSVD1, SPI1, SPI2, RSVD4),
  251. PIN(GPIO_X6_AUD_PX6, SPI6, SPI1, SPI2, RSVD4),
  252. PIN(GPIO_X7_AUD_PX7, RSVD1, SPI1, SPI2, RSVD4),
  253. PIN_RESERVED,
  254. PIN_RESERVED,
  255. /* Offset 0x3390 */
  256. PIN(SDMMC3_CLK_PA6, SDMMC3, RSVD2, RSVD3, SPI3),
  257. PIN(SDMMC3_CMD_PA7, SDMMC3, PWM3, UARTA, SPI3),
  258. PIN(SDMMC3_DAT0_PB7, SDMMC3, RSVD2, RSVD3, SPI3),
  259. PIN(SDMMC3_DAT1_PB6, SDMMC3, PWM2, UARTA, SPI3),
  260. PIN(SDMMC3_DAT2_PB5, SDMMC3, PWM1, DISPLAYA, SPI3),
  261. PIN(SDMMC3_DAT3_PB4, SDMMC3, PWM0, DISPLAYB, SPI3),
  262. PIN_RESERVED,
  263. PIN_RESERVED,
  264. PIN_RESERVED,
  265. PIN_RESERVED,
  266. PIN_RESERVED,
  267. PIN_RESERVED,
  268. PIN_RESERVED,
  269. PIN_RESERVED,
  270. PIN_RESERVED,
  271. PIN_RESERVED,
  272. PIN_RESERVED,
  273. PIN_RESERVED,
  274. PIN_RESERVED,
  275. PIN_RESERVED,
  276. /* Offset 0x33e0 */
  277. PIN(HDMI_CEC_PEE3, CEC, SDMMC3, RSVD3, SOC),
  278. PIN(SDMMC1_WP_N_PV3, SDMMC1, CLK12, SPI4, UARTA),
  279. PIN(SDMMC3_CD_N_PV2, SDMMC3, OWR, RSVD3, RSVD4),
  280. PIN(GPIO_W2_AUD_PW2, SPI6, RSVD2, SPI2, I2C1),
  281. PIN(GPIO_W3_AUD_PW3, SPI6, SPI1, SPI2, I2C1),
  282. PIN(USB_VBUS_EN0_PN4, USB, RSVD2, RSVD3, RSVD4),
  283. PIN(USB_VBUS_EN1_PN5, USB, RSVD2, RSVD3, RSVD4),
  284. PIN(SDMMC3_CLK_LB_IN_PEE5, SDMMC3, RSVD2, RSVD3, RSVD4),
  285. PIN(SDMMC3_CLK_LB_OUT_PEE4, SDMMC3, RSVD2, RSVD3, RSVD4),
  286. PIN(GMI_CLK_LB, SDMMC2, NAND, GMI, RSVD4),
  287. PIN(RESET_OUT_N, RSVD1, RSVD2, RSVD3, RESET_OUT_N),
  288. };
  289. const struct pmux_pingrp_desc *tegra_soc_pingroups = tegra114_pingroups;