mdio-mux.txt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. Common MDIO bus multiplexer/switch properties.
  2. An MDIO bus multiplexer/switch will have several child busses that are
  3. numbered uniquely in a device dependent manner. The nodes for an MDIO
  4. bus multiplexer/switch will have one child node for each child bus.
  5. Required properties:
  6. - mdio-parent-bus : phandle to the parent MDIO bus.
  7. - #address-cells = <1>;
  8. - #size-cells = <0>;
  9. Optional properties:
  10. - Other properties specific to the multiplexer/switch hardware.
  11. Required properties for child nodes:
  12. - #address-cells = <1>;
  13. - #size-cells = <0>;
  14. - reg : The sub-bus number.
  15. Example :
  16. /* The parent MDIO bus. */
  17. smi1: mdio@1180000001900 {
  18. compatible = "cavium,octeon-3860-mdio";
  19. #address-cells = <1>;
  20. #size-cells = <0>;
  21. reg = <0x11800 0x00001900 0x0 0x40>;
  22. };
  23. /*
  24. An NXP sn74cbtlv3253 dual 1-of-4 switch controlled by a
  25. pair of GPIO lines. Child busses 2 and 3 populated with 4
  26. PHYs each.
  27. */
  28. mdio-mux {
  29. compatible = "mdio-mux-gpio";
  30. gpios = <&gpio1 3 0>, <&gpio1 4 0>;
  31. mdio-parent-bus = <&smi1>;
  32. #address-cells = <1>;
  33. #size-cells = <0>;
  34. mdio@2 {
  35. reg = <2>;
  36. #address-cells = <1>;
  37. #size-cells = <0>;
  38. phy11: ethernet-phy@1 {
  39. reg = <1>;
  40. compatible = "marvell,88e1149r";
  41. marvell,reg-init = <3 0x10 0 0x5777>,
  42. <3 0x11 0 0x00aa>,
  43. <3 0x12 0 0x4105>,
  44. <3 0x13 0 0x0a60>;
  45. interrupt-parent = <&gpio>;
  46. interrupts = <10 8>; /* Pin 10, active low */
  47. };
  48. phy12: ethernet-phy@2 {
  49. reg = <2>;
  50. compatible = "marvell,88e1149r";
  51. marvell,reg-init = <3 0x10 0 0x5777>,
  52. <3 0x11 0 0x00aa>,
  53. <3 0x12 0 0x4105>,
  54. <3 0x13 0 0x0a60>;
  55. interrupt-parent = <&gpio>;
  56. interrupts = <10 8>; /* Pin 10, active low */
  57. };
  58. phy13: ethernet-phy@3 {
  59. reg = <3>;
  60. compatible = "marvell,88e1149r";
  61. marvell,reg-init = <3 0x10 0 0x5777>,
  62. <3 0x11 0 0x00aa>,
  63. <3 0x12 0 0x4105>,
  64. <3 0x13 0 0x0a60>;
  65. interrupt-parent = <&gpio>;
  66. interrupts = <10 8>; /* Pin 10, active low */
  67. };
  68. phy14: ethernet-phy@4 {
  69. reg = <4>;
  70. compatible = "marvell,88e1149r";
  71. marvell,reg-init = <3 0x10 0 0x5777>,
  72. <3 0x11 0 0x00aa>,
  73. <3 0x12 0 0x4105>,
  74. <3 0x13 0 0x0a60>;
  75. interrupt-parent = <&gpio>;
  76. interrupts = <10 8>; /* Pin 10, active low */
  77. };
  78. };
  79. mdio@3 {
  80. reg = <3>;
  81. #address-cells = <1>;
  82. #size-cells = <0>;
  83. phy21: ethernet-phy@1 {
  84. reg = <1>;
  85. compatible = "marvell,88e1149r";
  86. marvell,reg-init = <3 0x10 0 0x5777>,
  87. <3 0x11 0 0x00aa>,
  88. <3 0x12 0 0x4105>,
  89. <3 0x13 0 0x0a60>;
  90. interrupt-parent = <&gpio>;
  91. interrupts = <12 8>; /* Pin 12, active low */
  92. };
  93. phy22: ethernet-phy@2 {
  94. reg = <2>;
  95. compatible = "marvell,88e1149r";
  96. marvell,reg-init = <3 0x10 0 0x5777>,
  97. <3 0x11 0 0x00aa>,
  98. <3 0x12 0 0x4105>,
  99. <3 0x13 0 0x0a60>;
  100. interrupt-parent = <&gpio>;
  101. interrupts = <12 8>; /* Pin 12, active low */
  102. };
  103. phy23: ethernet-phy@3 {
  104. reg = <3>;
  105. compatible = "marvell,88e1149r";
  106. marvell,reg-init = <3 0x10 0 0x5777>,
  107. <3 0x11 0 0x00aa>,
  108. <3 0x12 0 0x4105>,
  109. <3 0x13 0 0x0a60>;
  110. interrupt-parent = <&gpio>;
  111. interrupts = <12 8>; /* Pin 12, active low */
  112. };
  113. phy24: ethernet-phy@4 {
  114. reg = <4>;
  115. compatible = "marvell,88e1149r";
  116. marvell,reg-init = <3 0x10 0 0x5777>,
  117. <3 0x11 0 0x00aa>,
  118. <3 0x12 0 0x4105>,
  119. <3 0x13 0 0x0a60>;
  120. interrupt-parent = <&gpio>;
  121. interrupts = <12 8>; /* Pin 12, active low */
  122. };
  123. };
  124. };