nvidia,tegra234-mgbe.yaml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/net/nvidia,tegra234-mgbe.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Tegra234 MGBE Multi-Gigabit Ethernet Controller
  7. maintainers:
  8. - Thierry Reding <treding@nvidia.com>
  9. - Jon Hunter <jonathanh@nvidia.com>
  10. properties:
  11. compatible:
  12. const: nvidia,tegra234-mgbe
  13. reg:
  14. maxItems: 3
  15. reg-names:
  16. items:
  17. - const: hypervisor
  18. - const: mac
  19. - const: xpcs
  20. interrupts:
  21. minItems: 1
  22. maxItems: 3
  23. interrupt-names:
  24. minItems: 1
  25. items:
  26. - const: common
  27. - const: macsec-ns
  28. - const: macsec
  29. clocks:
  30. maxItems: 12
  31. clock-names:
  32. items:
  33. - const: mgbe
  34. - const: mac
  35. - const: mac-divider
  36. - const: ptp_ref
  37. - const: rx-input-m
  38. - const: rx-input
  39. - const: tx
  40. - const: eee-pcs
  41. - const: rx-pcs-input
  42. - const: rx-pcs-m
  43. - const: rx-pcs
  44. - const: tx-pcs
  45. resets:
  46. maxItems: 2
  47. reset-names:
  48. items:
  49. - const: mac
  50. - const: pcs
  51. interconnects:
  52. items:
  53. - description: memory read client
  54. - description: memory write client
  55. interconnect-names:
  56. items:
  57. - const: dma-mem
  58. - const: write
  59. iommus:
  60. maxItems: 1
  61. power-domains:
  62. maxItems: 1
  63. phy-handle: true
  64. phy-mode:
  65. contains:
  66. enum:
  67. - usxgmii
  68. - 10gbase-kr
  69. mdio:
  70. $ref: mdio.yaml#
  71. unevaluatedProperties: false
  72. description:
  73. Optional node for embedded MDIO controller.
  74. required:
  75. - compatible
  76. - reg
  77. - interrupts
  78. - interrupt-names
  79. - clocks
  80. - clock-names
  81. - resets
  82. - reset-names
  83. - power-domains
  84. - phy-handle
  85. - phy-mode
  86. additionalProperties: false
  87. examples:
  88. - |
  89. #include <dt-bindings/clock/tegra234-clock.h>
  90. #include <dt-bindings/interrupt-controller/arm-gic.h>
  91. #include <dt-bindings/memory/tegra234-mc.h>
  92. #include <dt-bindings/power/tegra234-powergate.h>
  93. #include <dt-bindings/reset/tegra234-reset.h>
  94. ethernet@6800000 {
  95. compatible = "nvidia,tegra234-mgbe";
  96. reg = <0x06800000 0x10000>,
  97. <0x06810000 0x10000>,
  98. <0x068a0000 0x10000>;
  99. reg-names = "hypervisor", "mac", "xpcs";
  100. interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
  101. interrupt-names = "common";
  102. clocks = <&bpmp TEGRA234_CLK_MGBE0_APP>,
  103. <&bpmp TEGRA234_CLK_MGBE0_MAC>,
  104. <&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>,
  105. <&bpmp TEGRA234_CLK_MGBE0_PTP_REF>,
  106. <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>,
  107. <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>,
  108. <&bpmp TEGRA234_CLK_MGBE0_TX>,
  109. <&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>,
  110. <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>,
  111. <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>,
  112. <&bpmp TEGRA234_CLK_MGBE0_RX_PCS>,
  113. <&bpmp TEGRA234_CLK_MGBE0_TX_PCS>;
  114. clock-names = "mgbe", "mac", "mac-divider", "ptp_ref", "rx-input-m",
  115. "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m",
  116. "rx-pcs", "tx-pcs";
  117. resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>,
  118. <&bpmp TEGRA234_RESET_MGBE0_PCS>;
  119. reset-names = "mac", "pcs";
  120. interconnects = <&mc TEGRA234_MEMORY_CLIENT_MGBEARD &emc>,
  121. <&mc TEGRA234_MEMORY_CLIENT_MGBEAWR &emc>;
  122. interconnect-names = "dma-mem", "write";
  123. iommus = <&smmu_niso0 TEGRA234_SID_MGBE>;
  124. power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEA>;
  125. phy-handle = <&mgbe0_phy>;
  126. phy-mode = "usxgmii";
  127. mdio {
  128. #address-cells = <1>;
  129. #size-cells = <0>;
  130. mgbe0_phy: phy@0 {
  131. compatible = "ethernet-phy-ieee802.3-c45";
  132. reg = <0x0>;
  133. #phy-cells = <0>;
  134. };
  135. };
  136. };