qcom-emac.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. Qualcomm Technologies EMAC Gigabit Ethernet Controller
  2. This network controller consists of two devices: a MAC and an SGMII
  3. internal PHY. Each device is represented by a device tree node. A phandle
  4. connects the MAC node to its corresponding internal phy node. Another
  5. phandle points to the external PHY node.
  6. Required properties:
  7. MAC node:
  8. - compatible : Should be "qcom,fsm9900-emac".
  9. - reg : Offset and length of the register regions for the device
  10. - interrupts : Interrupt number used by this controller
  11. - mac-address : The 6-byte MAC address. If present, it is the default
  12. MAC address.
  13. - internal-phy : phandle to the internal PHY node
  14. - phy-handle : phandle the the external PHY node
  15. Internal PHY node:
  16. - compatible : Should be "qcom,fsm9900-emac-sgmii" or "qcom,qdf2432-emac-sgmii".
  17. - reg : Offset and length of the register region(s) for the device
  18. - interrupts : Interrupt number used by this controller
  19. The external phy child node:
  20. - reg : The phy address
  21. Example:
  22. FSM9900:
  23. soc {
  24. #address-cells = <1>;
  25. #size-cells = <1>;
  26. emac0: ethernet@feb20000 {
  27. compatible = "qcom,fsm9900-emac";
  28. reg = <0xfeb20000 0x10000>,
  29. <0xfeb36000 0x1000>;
  30. interrupts = <76>;
  31. clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
  32. <&gcc 6>, <&gcc 7>;
  33. clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
  34. "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
  35. internal-phy = <&emac_sgmii>;
  36. phy-handle = <&phy0>;
  37. #address-cells = <1>;
  38. #size-cells = <0>;
  39. phy0: ethernet-phy@0 {
  40. reg = <0>;
  41. };
  42. pinctrl-names = "default";
  43. pinctrl-0 = <&mdio_pins_a>;
  44. };
  45. emac_sgmii: ethernet@feb38000 {
  46. compatible = "qcom,fsm9900-emac-sgmii";
  47. reg = <0xfeb38000 0x1000>;
  48. interrupts = <80>;
  49. };
  50. tlmm: pinctrl@fd510000 {
  51. compatible = "qcom,fsm9900-pinctrl";
  52. mdio_pins_a: mdio {
  53. state {
  54. pins = "gpio123", "gpio124";
  55. function = "mdio";
  56. };
  57. };
  58. };
  59. QDF2432:
  60. soc {
  61. #address-cells = <2>;
  62. #size-cells = <2>;
  63. emac0: ethernet@38800000 {
  64. compatible = "qcom,fsm9900-emac";
  65. reg = <0x0 0x38800000 0x0 0x10000>,
  66. <0x0 0x38816000 0x0 0x1000>;
  67. interrupts = <0 256 4>;
  68. clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>,
  69. <&gcc 6>, <&gcc 7>;
  70. clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk",
  71. "mdio_clk", "tx_clk", "rx_clk", "sys_clk";
  72. internal-phy = <&emac_sgmii>;
  73. phy-handle = <&phy0>;
  74. #address-cells = <1>;
  75. #size-cells = <0>;
  76. phy0: ethernet-phy@4 {
  77. reg = <4>;
  78. };
  79. };
  80. emac_sgmii: ethernet@410400 {
  81. compatible = "qcom,qdf2432-emac-sgmii";
  82. reg = <0x0 0x00410400 0x0 0xc00>, /* Base address */
  83. <0x0 0x00410000 0x0 0x400>; /* Per-lane digital */
  84. interrupts = <0 254 1>;
  85. };