pinmux.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2010,2011
  4. * NVIDIA Corporation <www.nvidia.com>
  5. */
  6. #ifndef _TEGRA20_PINMUX_H_
  7. #define _TEGRA20_PINMUX_H_
  8. /*
  9. * Pin groups which we adjust. There are three basic attributes of each pin
  10. * group which use this enum:
  11. *
  12. * - function
  13. * - pullup / pulldown
  14. * - tristate or normal
  15. */
  16. enum pmux_pingrp {
  17. /* APB_MISC_PP_TRISTATE_REG_A_0 */
  18. PMUX_PINGRP_ATA,
  19. PMUX_PINGRP_ATB,
  20. PMUX_PINGRP_ATC,
  21. PMUX_PINGRP_ATD,
  22. PMUX_PINGRP_CDEV1,
  23. PMUX_PINGRP_CDEV2,
  24. PMUX_PINGRP_CSUS,
  25. PMUX_PINGRP_DAP1,
  26. PMUX_PINGRP_DAP2,
  27. PMUX_PINGRP_DAP3,
  28. PMUX_PINGRP_DAP4,
  29. PMUX_PINGRP_DTA,
  30. PMUX_PINGRP_DTB,
  31. PMUX_PINGRP_DTC,
  32. PMUX_PINGRP_DTD,
  33. PMUX_PINGRP_DTE,
  34. PMUX_PINGRP_GPU,
  35. PMUX_PINGRP_GPV,
  36. PMUX_PINGRP_I2CP,
  37. PMUX_PINGRP_IRTX,
  38. PMUX_PINGRP_IRRX,
  39. PMUX_PINGRP_KBCB,
  40. PMUX_PINGRP_KBCA,
  41. PMUX_PINGRP_PMC,
  42. PMUX_PINGRP_PTA,
  43. PMUX_PINGRP_RM,
  44. PMUX_PINGRP_KBCE,
  45. PMUX_PINGRP_KBCF,
  46. PMUX_PINGRP_GMA,
  47. PMUX_PINGRP_GMC,
  48. PMUX_PINGRP_SDIO1,
  49. PMUX_PINGRP_OWC,
  50. /* 32: APB_MISC_PP_TRISTATE_REG_B_0 */
  51. PMUX_PINGRP_GME,
  52. PMUX_PINGRP_SDC,
  53. PMUX_PINGRP_SDD,
  54. PMUX_PINGRP_RESERVED0,
  55. PMUX_PINGRP_SLXA,
  56. PMUX_PINGRP_SLXC,
  57. PMUX_PINGRP_SLXD,
  58. PMUX_PINGRP_SLXK,
  59. PMUX_PINGRP_SPDI,
  60. PMUX_PINGRP_SPDO,
  61. PMUX_PINGRP_SPIA,
  62. PMUX_PINGRP_SPIB,
  63. PMUX_PINGRP_SPIC,
  64. PMUX_PINGRP_SPID,
  65. PMUX_PINGRP_SPIE,
  66. PMUX_PINGRP_SPIF,
  67. PMUX_PINGRP_SPIG,
  68. PMUX_PINGRP_SPIH,
  69. PMUX_PINGRP_UAA,
  70. PMUX_PINGRP_UAB,
  71. PMUX_PINGRP_UAC,
  72. PMUX_PINGRP_UAD,
  73. PMUX_PINGRP_UCA,
  74. PMUX_PINGRP_UCB,
  75. PMUX_PINGRP_RESERVED1,
  76. PMUX_PINGRP_ATE,
  77. PMUX_PINGRP_KBCC,
  78. PMUX_PINGRP_RESERVED2,
  79. PMUX_PINGRP_RESERVED3,
  80. PMUX_PINGRP_GMB,
  81. PMUX_PINGRP_GMD,
  82. PMUX_PINGRP_DDC,
  83. /* 64: APB_MISC_PP_TRISTATE_REG_C_0 */
  84. PMUX_PINGRP_LD0,
  85. PMUX_PINGRP_LD1,
  86. PMUX_PINGRP_LD2,
  87. PMUX_PINGRP_LD3,
  88. PMUX_PINGRP_LD4,
  89. PMUX_PINGRP_LD5,
  90. PMUX_PINGRP_LD6,
  91. PMUX_PINGRP_LD7,
  92. PMUX_PINGRP_LD8,
  93. PMUX_PINGRP_LD9,
  94. PMUX_PINGRP_LD10,
  95. PMUX_PINGRP_LD11,
  96. PMUX_PINGRP_LD12,
  97. PMUX_PINGRP_LD13,
  98. PMUX_PINGRP_LD14,
  99. PMUX_PINGRP_LD15,
  100. PMUX_PINGRP_LD16,
  101. PMUX_PINGRP_LD17,
  102. PMUX_PINGRP_LHP0,
  103. PMUX_PINGRP_LHP1,
  104. PMUX_PINGRP_LHP2,
  105. PMUX_PINGRP_LVP0,
  106. PMUX_PINGRP_LVP1,
  107. PMUX_PINGRP_HDINT,
  108. PMUX_PINGRP_LM0,
  109. PMUX_PINGRP_LM1,
  110. PMUX_PINGRP_LVS,
  111. PMUX_PINGRP_LSC0,
  112. PMUX_PINGRP_LSC1,
  113. PMUX_PINGRP_LSCK,
  114. PMUX_PINGRP_LDC,
  115. PMUX_PINGRP_LCSN,
  116. /* 96: APB_MISC_PP_TRISTATE_REG_D_0 */
  117. PMUX_PINGRP_LSPI,
  118. PMUX_PINGRP_LSDA,
  119. PMUX_PINGRP_LSDI,
  120. PMUX_PINGRP_LPW0,
  121. PMUX_PINGRP_LPW1,
  122. PMUX_PINGRP_LPW2,
  123. PMUX_PINGRP_LDI,
  124. PMUX_PINGRP_LHS,
  125. PMUX_PINGRP_LPP,
  126. PMUX_PINGRP_RESERVED4,
  127. PMUX_PINGRP_KBCD,
  128. PMUX_PINGRP_GPU7,
  129. PMUX_PINGRP_DTF,
  130. PMUX_PINGRP_UDA,
  131. PMUX_PINGRP_CRTP,
  132. PMUX_PINGRP_SDB,
  133. /* these pin groups only have pullup and pull down control */
  134. PMUX_PINGRP_CK32,
  135. PMUX_PINGRP_DDRC,
  136. PMUX_PINGRP_PMCA,
  137. PMUX_PINGRP_PMCB,
  138. PMUX_PINGRP_PMCC,
  139. PMUX_PINGRP_PMCD,
  140. PMUX_PINGRP_PMCE,
  141. PMUX_PINGRP_XM2C,
  142. PMUX_PINGRP_XM2D,
  143. PMUX_PINGRP_COUNT,
  144. };
  145. /*
  146. * Functions which can be assigned to each of the pin groups. The values here
  147. * bear no relation to the values programmed into pinmux registers and are
  148. * purely a convenience. The translation is done through a table search.
  149. */
  150. enum pmux_func {
  151. PMUX_FUNC_DEFAULT,
  152. PMUX_FUNC_AHB_CLK,
  153. PMUX_FUNC_APB_CLK,
  154. PMUX_FUNC_AUDIO_SYNC,
  155. PMUX_FUNC_CRT,
  156. PMUX_FUNC_DAP1,
  157. PMUX_FUNC_DAP2,
  158. PMUX_FUNC_DAP3,
  159. PMUX_FUNC_DAP4,
  160. PMUX_FUNC_DAP5,
  161. PMUX_FUNC_DISPA,
  162. PMUX_FUNC_DISPB,
  163. PMUX_FUNC_EMC_TEST0_DLL,
  164. PMUX_FUNC_EMC_TEST1_DLL,
  165. PMUX_FUNC_GMI,
  166. PMUX_FUNC_GMI_INT,
  167. PMUX_FUNC_HDMI,
  168. PMUX_FUNC_I2C,
  169. PMUX_FUNC_I2C2,
  170. PMUX_FUNC_I2C3,
  171. PMUX_FUNC_IDE,
  172. PMUX_FUNC_KBC,
  173. PMUX_FUNC_MIO,
  174. PMUX_FUNC_MIPI_HS,
  175. PMUX_FUNC_NAND,
  176. PMUX_FUNC_OSC,
  177. PMUX_FUNC_OWR,
  178. PMUX_FUNC_PCIE,
  179. PMUX_FUNC_PLLA_OUT,
  180. PMUX_FUNC_PLLC_OUT1,
  181. PMUX_FUNC_PLLM_OUT1,
  182. PMUX_FUNC_PLLP_OUT2,
  183. PMUX_FUNC_PLLP_OUT3,
  184. PMUX_FUNC_PLLP_OUT4,
  185. PMUX_FUNC_PWM,
  186. PMUX_FUNC_PWR_INTR,
  187. PMUX_FUNC_PWR_ON,
  188. PMUX_FUNC_RTCK,
  189. PMUX_FUNC_SDIO1,
  190. PMUX_FUNC_SDIO2,
  191. PMUX_FUNC_SDIO3,
  192. PMUX_FUNC_SDIO4,
  193. PMUX_FUNC_SFLASH,
  194. PMUX_FUNC_SPDIF,
  195. PMUX_FUNC_SPI1,
  196. PMUX_FUNC_SPI2,
  197. PMUX_FUNC_SPI2_ALT,
  198. PMUX_FUNC_SPI3,
  199. PMUX_FUNC_SPI4,
  200. PMUX_FUNC_TRACE,
  201. PMUX_FUNC_TWC,
  202. PMUX_FUNC_UARTA,
  203. PMUX_FUNC_UARTB,
  204. PMUX_FUNC_UARTC,
  205. PMUX_FUNC_UARTD,
  206. PMUX_FUNC_UARTE,
  207. PMUX_FUNC_ULPI,
  208. PMUX_FUNC_VI,
  209. PMUX_FUNC_VI_SENSOR_CLK,
  210. PMUX_FUNC_XIO,
  211. PMUX_FUNC_RSVD1,
  212. PMUX_FUNC_RSVD2,
  213. PMUX_FUNC_RSVD3,
  214. PMUX_FUNC_RSVD4,
  215. PMUX_FUNC_COUNT,
  216. };
  217. #define TEGRA_PMX_SOC_DRV_GROUP_BASE_REG 0x868
  218. #include <asm/arch-tegra/pinmux.h>
  219. #endif /* _TEGRA20_PINMUX_H_ */