am335x-pcm-953.dtsi 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2014-2017 Phytec Messtechnik GmbH
  4. * Author: Wadim Egorov <[email protected]>
  5. * Teresa Remmet <[email protected]>
  6. */
  7. #include <dt-bindings/input/input.h>
  8. / {
  9. model = "Phytec AM335x PCM-953";
  10. compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
  11. /* Power */
  12. vcc3v3: fixedregulator1 {
  13. compatible = "regulator-fixed";
  14. regulator-name = "vcc3v3";
  15. regulator-min-microvolt = <3300000>;
  16. regulator-max-microvolt = <3300000>;
  17. regulator-boot-on;
  18. };
  19. vcc1v8: fixedregulator2 {
  20. compatible = "regulator-fixed";
  21. regulator-name = "vcc1v8";
  22. regulator-min-microvolt = <1800000>;
  23. regulator-max-microvolt = <1800000>;
  24. regulator-boot-on;
  25. };
  26. /* User IO */
  27. user_leds: user_leds {
  28. compatible = "gpio-leds";
  29. pinctrl-names = "default";
  30. pinctrl-0 = <&user_leds_pins>;
  31. user-led0 {
  32. gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
  33. linux,default-trigger = "gpio";
  34. default-state = "on";
  35. };
  36. user-led1 {
  37. gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
  38. linux,default-trigger = "gpio";
  39. default-state = "on";
  40. };
  41. };
  42. user_buttons: user_buttons {
  43. compatible = "gpio-keys";
  44. pinctrl-names = "default";
  45. pinctrl-0 = <&user_buttons_pins>;
  46. button-0 {
  47. label = "home";
  48. linux,code = <KEY_HOME>;
  49. gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
  50. wakeup-source;
  51. };
  52. button-1 {
  53. label = "menu";
  54. linux,code = <KEY_MENU>;
  55. gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
  56. wakeup-source;
  57. };
  58. };
  59. };
  60. &am33xx_pinmux {
  61. user_buttons_pins: pinmux_user_buttons {
  62. pinctrl-single,pins = <
  63. AM33XX_PADCONF(AM335X_PIN_EMU0, PIN_INPUT_PULLDOWN, MUX_MODE7) /* emu0.gpio3_7 */
  64. AM33XX_PADCONF(AM335X_PIN_EMU1, PIN_INPUT_PULLDOWN, MUX_MODE7) /* emu1.gpio3_8 */
  65. >;
  66. };
  67. user_leds_pins: pinmux_user_leds {
  68. pinctrl-single,pins = <
  69. AM33XX_PADCONF(AM335X_PIN_GPMC_CSN1, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gpmc_csn1.gpio1_30 */
  70. AM33XX_PADCONF(AM335X_PIN_GPMC_CSN2, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gpmc_csn2.gpio1_31 */
  71. >;
  72. };
  73. };
  74. /* CAN */
  75. &am33xx_pinmux {
  76. dcan1_pins: pinmux_dcan1 {
  77. pinctrl-single,pins = <
  78. AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_OUTPUT_PULLUP, MUX_MODE2) /* uart1_rxd.dcan1_tx_mux2 */
  79. AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_INPUT_PULLUP, MUX_MODE2) /* uart1_txd.dcan1_rx_mux2 */
  80. >;
  81. };
  82. };
  83. &dcan1 {
  84. pinctrl-names = "default";
  85. pinctrl-0 = <&dcan1_pins>;
  86. status = "okay";
  87. };
  88. /* Ethernet */
  89. &am33xx_pinmux {
  90. ethernet1_pins: pinmux_ethernet1 {
  91. pinctrl-single,pins = <
  92. AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
  93. AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a1.rgmii2_rctl */
  94. AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
  95. AM33XX_PADCONF(AM335X_PIN_GPMC_A3, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
  96. AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
  97. AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
  98. AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
  99. AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
  100. AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
  101. AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
  102. AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
  103. AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
  104. >;
  105. };
  106. };
  107. &cpsw_port2 {
  108. phy-handle = <&phy1>;
  109. phy-mode = "rgmii-id";
  110. ti,dual-emac-pvid = <2>;
  111. status = "okay";
  112. };
  113. &davinci_mdio_sw {
  114. phy1: ethernet-phy@2 {
  115. reg = <2>;
  116. };
  117. };
  118. &mac_sw {
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&ethernet0_pins &ethernet1_pins>;
  121. };
  122. /* Misc */
  123. &am33xx_pinmux {
  124. pinctrl-names = "default";
  125. pinctrl-0 = <&cb_gpio_pins>;
  126. cb_gpio_pins: pinmux_cb_gpio {
  127. pinctrl-single,pins = <
  128. AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* uart0_ctsn.gpio1_8 */
  129. AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* uart0_rtsn.gpio1_9 */
  130. >;
  131. };
  132. };
  133. /* MMC */
  134. &am33xx_pinmux {
  135. mmc1_pins: pinmux_mmc1_pins {
  136. pinctrl-single,pins = <
  137. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
  138. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
  139. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
  140. AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
  141. AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
  142. AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
  143. AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE7) /* spi0_cs1.mmc0_sdcd */
  144. >;
  145. };
  146. };
  147. &mmc1 {
  148. vmmc-supply = <&vcc3v3>;
  149. bus-width = <4>;
  150. pinctrl-names = "default";
  151. pinctrl-0 = <&mmc1_pins>;
  152. cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
  153. status = "okay";
  154. };
  155. /* UARTs */
  156. &am33xx_pinmux {
  157. uart0_pins: pinmux_uart0 {
  158. pinctrl-single,pins = <
  159. AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
  160. AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
  161. >;
  162. };
  163. uart1_pins: pinmux_uart1 {
  164. pinctrl-single,pins = <
  165. AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
  166. AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
  167. AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT, MUX_MODE0)
  168. AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
  169. >;
  170. };
  171. uart2_pins: pinmux_uart2 {
  172. pinctrl-single,pins = <
  173. AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_tx_clk.uart2_rxd */
  174. AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_rx_clk.uart2_txd */
  175. >;
  176. };
  177. uart3_pins: pinmux_uart3 {
  178. pinctrl-single,pins = <
  179. AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_rxd3.uart3_rxd */
  180. AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_rxd2.uart3_txd */
  181. >;
  182. };
  183. };
  184. &uart0 {
  185. pinctrl-names = "default";
  186. pinctrl-0 = <&uart0_pins>;
  187. status = "okay";
  188. };
  189. &uart1 {
  190. pinctrl-names = "default";
  191. pinctrl-0 = <&uart1_pins>;
  192. };
  193. &uart2 {
  194. pinctrl-names = "default";
  195. pinctrl-0 = <&uart2_pins>;
  196. status = "okay";
  197. };
  198. &uart3 {
  199. pinctrl-names = "default";
  200. pinctrl-0 = <&uart3_pins>;
  201. status = "okay";
  202. };
  203. /* USB */
  204. &usb1 {
  205. dr_mode = "host";
  206. };