stm32mp151a-prtt1l.dtsi 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2. /*
  3. * Copyright (C) Protonic Holland
  4. * Author: David Jander <[email protected]>
  5. */
  6. /dts-v1/;
  7. #include "stm32mp151.dtsi"
  8. #include "stm32mp15-pinctrl.dtsi"
  9. #include "stm32mp15xxad-pinctrl.dtsi"
  10. #include <dt-bindings/gpio/gpio.h>
  11. #include <dt-bindings/input/input.h>
  12. #include <dt-bindings/leds/common.h>
  13. / {
  14. aliases {
  15. ethernet0 = &ethernet0;
  16. mdio-gpio0 = &mdio0;
  17. serial0 = &uart4;
  18. };
  19. led-controller-0 {
  20. compatible = "gpio-leds";
  21. led-0 {
  22. color = <LED_COLOR_ID_RED>;
  23. function = LED_FUNCTION_INDICATOR;
  24. gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
  25. };
  26. led-1 {
  27. color = <LED_COLOR_ID_GREEN>;
  28. function = LED_FUNCTION_INDICATOR;
  29. gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
  30. linux,default-trigger = "heartbeat";
  31. };
  32. };
  33. /* DP83TD510E PHYs have max MDC rate of 1.75MHz. Since we can't reduce
  34. * stmmac MDC clock without reducing system bus rate, we need to use
  35. * gpio based MDIO bus.
  36. */
  37. mdio0: mdio {
  38. compatible = "virtual,mdio-gpio";
  39. #address-cells = <1>;
  40. #size-cells = <0>;
  41. gpios = <&gpioc 1 GPIO_ACTIVE_HIGH
  42. &gpioa 2 GPIO_ACTIVE_HIGH>;
  43. };
  44. reg_3v3: regulator-3v3 {
  45. compatible = "regulator-fixed";
  46. regulator-name = "3v3";
  47. regulator-min-microvolt = <3300000>;
  48. regulator-max-microvolt = <3300000>;
  49. };
  50. };
  51. &dts {
  52. status = "okay";
  53. };
  54. &ethernet0 {
  55. pinctrl-0 = <&ethernet0_rmii_pins_a>;
  56. pinctrl-1 = <&ethernet0_rmii_sleep_pins_a>;
  57. pinctrl-names = "default", "sleep";
  58. phy-mode = "rmii";
  59. status = "okay";
  60. };
  61. &ethernet0_rmii_pins_a {
  62. pins1 {
  63. pinmux = <STM32_PINMUX('B', 12, AF11)>, /* ETH1_RMII_TXD0 */
  64. <STM32_PINMUX('B', 13, AF11)>, /* ETH1_RMII_TXD1 */
  65. <STM32_PINMUX('B', 11, AF11)>; /* ETH1_RMII_TX_EN */
  66. };
  67. pins2 {
  68. pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH1_RMII_RXD0 */
  69. <STM32_PINMUX('C', 5, AF11)>, /* ETH1_RMII_RXD1 */
  70. <STM32_PINMUX('A', 1, AF11)>, /* ETH1_RMII_REF_CLK input */
  71. <STM32_PINMUX('A', 7, AF11)>; /* ETH1_RMII_CRS_DV */
  72. };
  73. };
  74. &ethernet0_rmii_sleep_pins_a {
  75. pins1 {
  76. pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* ETH1_RMII_TXD0 */
  77. <STM32_PINMUX('B', 13, ANALOG)>, /* ETH1_RMII_TXD1 */
  78. <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_RMII_TX_EN */
  79. <STM32_PINMUX('C', 4, ANALOG)>, /* ETH1_RMII_RXD0 */
  80. <STM32_PINMUX('C', 5, ANALOG)>, /* ETH1_RMII_RXD1 */
  81. <STM32_PINMUX('A', 1, ANALOG)>, /* ETH1_RMII_REF_CLK */
  82. <STM32_PINMUX('A', 7, ANALOG)>; /* ETH1_RMII_CRS_DV */
  83. };
  84. };
  85. &iwdg2 {
  86. status = "okay";
  87. };
  88. &qspi {
  89. pinctrl-names = "default", "sleep";
  90. pinctrl-0 = <&qspi_clk_pins_a
  91. &qspi_bk1_pins_a
  92. &qspi_cs1_pins_a>;
  93. pinctrl-1 = <&qspi_clk_sleep_pins_a
  94. &qspi_bk1_sleep_pins_a
  95. &qspi_cs1_sleep_pins_a>;
  96. reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
  97. #address-cells = <1>;
  98. #size-cells = <0>;
  99. status = "okay";
  100. flash@0 {
  101. compatible = "spi-nand";
  102. reg = <0>;
  103. spi-rx-bus-width = <4>;
  104. spi-max-frequency = <104000000>;
  105. #address-cells = <1>;
  106. #size-cells = <1>;
  107. };
  108. };
  109. &qspi_bk1_pins_a {
  110. pins1 {
  111. bias-pull-up;
  112. drive-push-pull;
  113. slew-rate = <1>;
  114. };
  115. };
  116. &rng1 {
  117. status = "okay";
  118. };
  119. &sdmmc1 {
  120. pinctrl-names = "default", "opendrain", "sleep";
  121. pinctrl-0 = <&sdmmc1_b4_pins_a>;
  122. pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
  123. pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
  124. broken-cd;
  125. st,neg-edge;
  126. bus-width = <4>;
  127. vmmc-supply = <&reg_3v3>;
  128. vqmmc-supply = <&reg_3v3>;
  129. status = "okay";
  130. };
  131. &sdmmc1_b4_od_pins_a {
  132. pins1 {
  133. bias-pull-up;
  134. };
  135. pins2 {
  136. bias-pull-up;
  137. };
  138. };
  139. &sdmmc1_b4_pins_a {
  140. pins1 {
  141. bias-pull-up;
  142. };
  143. pins2 {
  144. bias-pull-up;
  145. };
  146. };
  147. &uart4 {
  148. pinctrl-names = "default", "sleep", "idle";
  149. pinctrl-0 = <&uart4_pins_a>;
  150. pinctrl-1 = <&uart4_sleep_pins_a>;
  151. pinctrl-2 = <&uart4_idle_pins_a>;
  152. /delete-property/dmas;
  153. /delete-property/dma-names;
  154. status = "okay";
  155. };
  156. &uart4_idle_pins_a {
  157. pins1 {
  158. pinmux = <STM32_PINMUX('B', 9, ANALOG)>; /* UART4_TX */
  159. };
  160. pins2 {
  161. pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
  162. bias-pull-up;
  163. };
  164. };
  165. &uart4_pins_a {
  166. pins1 {
  167. pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */
  168. bias-disable;
  169. drive-push-pull;
  170. slew-rate = <0>;
  171. };
  172. pins2 {
  173. pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
  174. bias-pull-up;
  175. };
  176. };
  177. &uart4_sleep_pins_a {
  178. pins {
  179. pinmux = <STM32_PINMUX('B', 9, ANALOG)>, /* UART4_TX */
  180. <STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
  181. };
  182. };
  183. &usbh_ehci {
  184. phys = <&usbphyc_port0>;
  185. phy-names = "usb";
  186. status = "okay";
  187. };
  188. &usbotg_hs {
  189. dr_mode = "host";
  190. pinctrl-0 = <&usbotg_hs_pins_a>;
  191. pinctrl-names = "default";
  192. phys = <&usbphyc_port1 0>;
  193. phy-names = "usb2-phy";
  194. status = "okay";
  195. };
  196. &usbphyc {
  197. status = "okay";
  198. };
  199. &usbphyc_port0 {
  200. phy-supply = <&reg_3v3>;
  201. };
  202. &usbphyc_port1 {
  203. phy-supply = <&reg_3v3>;
  204. };