am572x-idk-common.dtsi 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. /*
  2. * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #include <dt-bindings/gpio/gpio.h>
  9. #include <dt-bindings/interrupt-controller/irq.h>
  10. #include "am57xx-idk-common.dtsi"
  11. / {
  12. memory@0 {
  13. device_type = "memory";
  14. reg = <0x0 0x80000000 0x0 0x80000000>;
  15. };
  16. extcon_usb2: extcon_usb2 {
  17. compatible = "linux,extcon-usb-gpio";
  18. id-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>;
  19. };
  20. status-leds {
  21. compatible = "gpio-leds";
  22. cpu0-led {
  23. label = "status0:red:cpu0";
  24. gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
  25. default-state = "off";
  26. linux,default-trigger = "cpu0";
  27. };
  28. usr0-led {
  29. label = "status0:green:usr";
  30. gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
  31. default-state = "off";
  32. };
  33. heartbeat-led {
  34. label = "status0:blue:heartbeat";
  35. gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
  36. default-state = "off";
  37. linux,default-trigger = "heartbeat";
  38. };
  39. cpu1-led {
  40. label = "status1:red:cpu1";
  41. gpios = <&gpio3 10 GPIO_ACTIVE_HIGH>;
  42. default-state = "off";
  43. linux,default-trigger = "cpu1";
  44. };
  45. usr1-led {
  46. label = "status1:green:usr";
  47. gpios = <&gpio7 23 GPIO_ACTIVE_HIGH>;
  48. default-state = "off";
  49. };
  50. mmc0-led {
  51. label = "status1:blue:mmc0";
  52. gpios = <&gpio7 22 GPIO_ACTIVE_HIGH>;
  53. default-state = "off";
  54. linux,default-trigger = "mmc0";
  55. };
  56. };
  57. };
  58. &dra7_pmx_core {
  59. mmc1_pins_default: mmc1_pins_default {
  60. pinctrl-single,pins = <
  61. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0)/* mmc1_clk.clk */
  62. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MUX_MODE0) /* mmc1_cmd.cmd */
  63. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MUX_MODE0) /* mmc1_dat0.dat0 */
  64. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MUX_MODE0) /* mmc1_dat1.dat1 */
  65. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MUX_MODE0) /* mmc1_dat2.dat2 */
  66. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MUX_MODE0) /* mmc1_dat3.dat3 */
  67. >;
  68. };
  69. mmc1_pins_sdr12: pinmux_mmc1_sdr12_pins {
  70. pinctrl-single,pins = <
  71. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0)/* mmc1_clk.clk */
  72. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MUX_MODE0) /* mmc1_cmd.cmd */
  73. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MUX_MODE0) /* mmc1_dat0.dat0 */
  74. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MUX_MODE0) /* mmc1_dat1.dat1 */
  75. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MUX_MODE0) /* mmc1_dat2.dat2 */
  76. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MUX_MODE0) /* mmc1_dat3.dat3 */
  77. >;
  78. };
  79. mmc1_pins_hs: mmc1_pins_hs {
  80. pinctrl-single,pins = <
  81. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)/* mmc1_clk.clk */
  82. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_cmd.cmd */
  83. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat0.dat0 */
  84. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat1.dat1 */
  85. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat2.dat2 */
  86. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat3.dat3 */
  87. >;
  88. };
  89. mmc1_pins_sdr25: pinmux_mmc1_sdr25_pins {
  90. pinctrl-single,pins = <
  91. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)/* mmc1_clk.clk */
  92. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_cmd.cmd */
  93. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat0.dat0 */
  94. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat1.dat1 */
  95. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat2.dat2 */
  96. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat3.dat3 */
  97. >;
  98. };
  99. mmc1_pins_sdr50: pinmux_mmc1_sdr50_pins {
  100. pinctrl-single,pins = <
  101. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)/* mmc1_clk.clk */
  102. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MUX_VIRTUAL_MODE10 | MUX_MODE0) /* mmc1_cmd.cmd */
  103. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MUX_VIRTUAL_MODE10 | MUX_MODE0) /* mmc1_dat0.dat0 */
  104. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MUX_VIRTUAL_MODE10 | MUX_MODE0) /* mmc1_dat1.dat1 */
  105. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MUX_VIRTUAL_MODE10 | MUX_MODE0) /* mmc1_dat2.dat2 */
  106. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MUX_VIRTUAL_MODE10 | MUX_MODE0) /* mmc1_dat3.dat3 */
  107. >;
  108. };
  109. mmc1_pins_ddr50: pinmux_mmc1_ddr50_pins {
  110. pinctrl-single,pins = <
  111. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)/* mmc1_clk.clk */
  112. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_cmd.cmd */
  113. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat0.dat0 */
  114. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat1.dat1 */
  115. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat2.dat2 */
  116. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat3.dat3 */
  117. >;
  118. };
  119. mmc1_pins_sdr104: pinmux_mmc1_sdr104_pins {
  120. pinctrl-single,pins = <
  121. DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)/* mmc1_clk.clk */
  122. DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_cmd.cmd */
  123. DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat0.dat0 */
  124. DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat1.dat1 */
  125. DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat2.dat2 */
  126. DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT | MODE_SELECT | MUX_MODE0) /* mmc1_dat3.dat3 */
  127. >;
  128. };
  129. mmc2_pins_default: mmc2_pins_default {
  130. pinctrl-single,pins = <
  131. DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1)/* gpmc_a23.mmc2_clk */
  132. DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
  133. DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
  134. DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
  135. DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
  136. DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
  137. DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
  138. DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
  139. DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
  140. DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
  141. >;
  142. };
  143. mmc2_pins_hs: mmc2_pins_hs {
  144. pinctrl-single,pins = <
  145. DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1)/* gpmc_a23.mmc2_clk */
  146. DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
  147. DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
  148. DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
  149. DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
  150. DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
  151. DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
  152. DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
  153. DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
  154. DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
  155. >;
  156. };
  157. mmc2_pins_ddr_1_8v: mmc2_pins_ddr_1_8v {
  158. pinctrl-single,pins = <
  159. DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1)/* gpmc_a23.mmc2_clk */
  160. DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
  161. DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
  162. DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
  163. DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
  164. DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
  165. DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
  166. DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
  167. DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
  168. DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT | MODE_SELECT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
  169. >;
  170. };
  171. };
  172. &dra7_iodelay_core {
  173. mmc1_iodelay_ddr50_conf: mmc1_iodelay_ddr50_conf {
  174. pinctrl-pin-array = <
  175. 0x618 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_CLK_IN */
  176. 0x620 A_DELAY_PS(1271) G_DELAY_PS(0) /* CFG_MMC1_CLK_OUT */
  177. 0x624 A_DELAY_PS(229) G_DELAY_PS(0) /* CFG_MMC1_CMD_IN */
  178. 0x628 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_CMD_OEN */
  179. 0x62C A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_CMD_OUT */
  180. 0x630 A_DELAY_PS(850) G_DELAY_PS(0) /* CFG_MMC1_DAT0_IN */
  181. 0x634 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT0_OEN */
  182. 0x638 A_DELAY_PS(20) G_DELAY_PS(0) /* CFG_MMC1_DAT0_OUT */
  183. 0x63C A_DELAY_PS(468) G_DELAY_PS(0) /* CFG_MMC1_DAT1_IN */
  184. 0x640 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT1_OEN */
  185. 0x644 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT1_OUT */
  186. 0x648 A_DELAY_PS(466) G_DELAY_PS(0) /* CFG_MMC1_DAT2_IN */
  187. 0x64C A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT2_OEN */
  188. 0x650 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT2_OUT */
  189. 0x654 A_DELAY_PS(399) G_DELAY_PS(0) /* CFG_MMC1_DAT3_IN */
  190. 0x658 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT3_OEN */
  191. 0x65C A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT3_OUT */
  192. >;
  193. };
  194. mmc1_iodelay_sdr104_conf: mmc1_iodelay_sdr104_conf {
  195. pinctrl-pin-array = <
  196. 0x620 A_DELAY_PS(600) G_DELAY_PS(400) /* CFG_MMC1_CLK_OUT */
  197. 0x628 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_CMD_OEN */
  198. 0x62c A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_CMD_OUT */
  199. 0x634 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT0_OEN */
  200. 0x638 A_DELAY_PS(30) G_DELAY_PS(0) /* CFG_MMC1_DAT0_OUT */
  201. 0x640 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT1_OEN */
  202. 0x644 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT1_OUT */
  203. 0x64c A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT2_OEN */
  204. 0x650 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT2_OUT */
  205. 0x658 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT3_OEN */
  206. 0x65c A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_MMC1_DAT3_OUT */
  207. >;
  208. };
  209. mmc2_iodelay_ddr_1_8v_conf: mmc2_iodelay_ddr_1_8v_conf {
  210. pinctrl-pin-array = <
  211. 0x18c A_DELAY_PS(270) G_DELAY_PS(0) /* CFG_GPMC_A19_IN */
  212. 0x1a4 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A20_IN */
  213. 0x1b0 A_DELAY_PS(170) G_DELAY_PS(0) /* CFG_GPMC_A21_IN */
  214. 0x1bc A_DELAY_PS(758) G_DELAY_PS(0) /* CFG_GPMC_A22_IN */
  215. 0x1c8 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A23_IN */
  216. 0x1d4 A_DELAY_PS(81) G_DELAY_PS(0) /* CFG_GPMC_A24_IN */
  217. 0x1e0 A_DELAY_PS(286) G_DELAY_PS(0) /* CFG_GPMC_A25_IN */
  218. 0x1ec A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A26_IN */
  219. 0x1f8 A_DELAY_PS(123) G_DELAY_PS(0) /* CFG_GPMC_A27_IN */
  220. 0x360 A_DELAY_PS(346) G_DELAY_PS(0) /* CFG_GPMC_CS1_IN */
  221. 0x190 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A19_OEN */
  222. 0x194 A_DELAY_PS(55) G_DELAY_PS(0) /* CFG_GPMC_A19_OUT */
  223. 0x1a8 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A20_OEN */
  224. 0x1ac A_DELAY_PS(422) G_DELAY_PS(0) /* CFG_GPMC_A20_OUT */
  225. 0x1b4 A_DELAY_PS(642) G_DELAY_PS(0) /* CFG_GPMC_A21_OEN */
  226. 0x1b8 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A21_OUT */
  227. 0x1c0 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A22_OEN */
  228. 0x1c4 A_DELAY_PS(128) G_DELAY_PS(0) /* CFG_GPMC_A22_OUT */
  229. 0x1d0 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A23_OUT */
  230. 0x1d8 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A24_OEN */
  231. 0x1dc A_DELAY_PS(395) G_DELAY_PS(0) /* CFG_GPMC_A24_OUT */
  232. 0x1e4 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A25_OEN */
  233. 0x1e8 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A25_OUT */
  234. 0x1f0 A_DELAY_PS(623) G_DELAY_PS(0) /* CFG_GPMC_A26_OEN */
  235. 0x1f4 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A26_OUT */
  236. 0x1fc A_DELAY_PS(54) G_DELAY_PS(0) /* CFG_GPMC_A27_OEN */
  237. 0x200 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A27_OUT */
  238. 0x364 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_CS1_OEN */
  239. 0x368 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_CS1_OUT */
  240. >;
  241. };
  242. };
  243. &omap_dwc3_2 {
  244. extcon = <&extcon_usb2>;
  245. };