lan966x-pcb8290.dts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * lan966x-pcb8290.dts - Device Tree file for LAN966X-PCB8290 board
  4. *
  5. * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
  6. *
  7. * Author: Horatiu Vultur <horatiu.vultur@microchip.com>
  8. */
  9. /dts-v1/;
  10. #include "lan966x.dtsi"
  11. #include "dt-bindings/phy/phy-lan966x-serdes.h"
  12. / {
  13. model = "Microchip EVB LAN9668";
  14. compatible = "microchip,lan9668-pcb8290", "microchip,lan9668", "microchip,lan966";
  15. gpio-restart {
  16. compatible = "gpio-restart";
  17. gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
  18. priority = <200>;
  19. };
  20. };
  21. &aes {
  22. status = "disabled"; /* Reserved by secure OS */
  23. };
  24. &gpio {
  25. miim_a_pins: mdio-pins {
  26. /* MDC, MDIO */
  27. pins = "GPIO_28", "GPIO_29";
  28. function = "miim_a";
  29. };
  30. pps_out_pins: pps-out-pins {
  31. /* 1pps output */
  32. pins = "GPIO_38";
  33. function = "ptpsync_3";
  34. };
  35. ptp_ext_pins: ptp-ext-pins {
  36. /* 1pps input */
  37. pins = "GPIO_35";
  38. function = "ptpsync_0";
  39. };
  40. udc_pins: ucd-pins {
  41. /* VBUS_DET B */
  42. pins = "GPIO_8";
  43. function = "usb_slave_b";
  44. };
  45. };
  46. &mdio0 {
  47. pinctrl-0 = <&miim_a_pins>;
  48. pinctrl-names = "default";
  49. status = "okay";
  50. ext_phy0: ethernet-phy@7 {
  51. reg = <7>;
  52. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  53. interrupt-parent = <&gpio>;
  54. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  55. };
  56. ext_phy1: ethernet-phy@8 {
  57. reg = <8>;
  58. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  59. interrupt-parent = <&gpio>;
  60. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  61. };
  62. ext_phy2: ethernet-phy@9 {
  63. reg = <9>;
  64. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  65. interrupt-parent = <&gpio>;
  66. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  67. };
  68. ext_phy3: ethernet-phy@10 {
  69. reg = <10>;
  70. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  71. interrupt-parent = <&gpio>;
  72. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  73. };
  74. ext_phy4: ethernet-phy@15 {
  75. reg = <15>;
  76. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  77. interrupt-parent = <&gpio>;
  78. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  79. };
  80. ext_phy5: ethernet-phy@16 {
  81. reg = <16>;
  82. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  83. interrupt-parent = <&gpio>;
  84. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  85. };
  86. ext_phy6: ethernet-phy@17 {
  87. reg = <17>;
  88. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  89. interrupt-parent = <&gpio>;
  90. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  91. };
  92. ext_phy7: ethernet-phy@18 {
  93. reg = <18>;
  94. interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
  95. interrupt-parent = <&gpio>;
  96. coma-mode-gpios = <&gpio 60 GPIO_OPEN_DRAIN>;
  97. };
  98. };
  99. &port0 {
  100. reg = <2>;
  101. phy-handle = <&ext_phy2>;
  102. phy-mode = "qsgmii";
  103. phys = <&serdes 0 SERDES6G(1)>;
  104. status = "okay";
  105. };
  106. &port1 {
  107. reg = <3>;
  108. phy-handle = <&ext_phy3>;
  109. phy-mode = "qsgmii";
  110. phys = <&serdes 1 SERDES6G(1)>;
  111. status = "okay";
  112. };
  113. &port2 {
  114. reg = <0>;
  115. phy-handle = <&ext_phy0>;
  116. phy-mode = "qsgmii";
  117. phys = <&serdes 2 SERDES6G(1)>;
  118. status = "okay";
  119. };
  120. &port3 {
  121. reg = <1>;
  122. phy-handle = <&ext_phy1>;
  123. phy-mode = "qsgmii";
  124. phys = <&serdes 3 SERDES6G(1)>;
  125. status = "okay";
  126. };
  127. &port4 {
  128. reg = <6>;
  129. phy-handle = <&ext_phy6>;
  130. phy-mode = "qsgmii";
  131. phys = <&serdes 4 SERDES6G(2)>;
  132. status = "okay";
  133. };
  134. &port5 {
  135. reg = <7>;
  136. phy-handle = <&ext_phy7>;
  137. phy-mode = "qsgmii";
  138. phys = <&serdes 5 SERDES6G(2)>;
  139. status = "okay";
  140. };
  141. &port6 {
  142. reg = <4>;
  143. phy-handle = <&ext_phy4>;
  144. phy-mode = "qsgmii";
  145. phys = <&serdes 6 SERDES6G(2)>;
  146. status = "okay";
  147. };
  148. &port7 {
  149. reg = <5>;
  150. phy-handle = <&ext_phy5>;
  151. phy-mode = "qsgmii";
  152. phys = <&serdes 7 SERDES6G(2)>;
  153. status = "okay";
  154. };
  155. &serdes {
  156. status = "okay";
  157. };
  158. &switch {
  159. pinctrl-0 = <&pps_out_pins>, <&ptp_ext_pins>;
  160. pinctrl-names = "default";
  161. status = "okay";
  162. };
  163. &udc {
  164. pinctrl-0 = <&udc_pins>;
  165. pinctrl-names = "default";
  166. atmel,vbus-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
  167. status = "okay";
  168. };