|  | Qualcomm Technologies EMAC Gigabit Ethernet Controller | 
|  |  | 
|  | This network controller consists of two devices: a MAC and an SGMII | 
|  | internal PHY.  Each device is represented by a device tree node.  A phandle | 
|  | connects the MAC node to its corresponding internal phy node.  Another | 
|  | phandle points to the external PHY node. | 
|  |  | 
|  | Required properties: | 
|  |  | 
|  | MAC node: | 
|  | - compatible : Should be "qcom,fsm9900-emac". | 
|  | - reg : Offset and length of the register regions for the device | 
|  | - interrupts : Interrupt number used by this controller | 
|  | - mac-address : The 6-byte MAC address. If present, it is the default | 
|  | MAC address. | 
|  | - internal-phy : phandle to the internal PHY node | 
|  | - phy-handle : phandle the the external PHY node | 
|  |  | 
|  | Internal PHY node: | 
|  | - compatible : Should be "qcom,fsm9900-emac-sgmii" or "qcom,qdf2432-emac-sgmii". | 
|  | - reg : Offset and length of the register region(s) for the device | 
|  | - interrupts : Interrupt number used by this controller | 
|  |  | 
|  | The external phy child node: | 
|  | - reg : The phy address | 
|  |  | 
|  | Example: | 
|  |  | 
|  | FSM9900: | 
|  |  | 
|  | soc { | 
|  | #address-cells = <1>; | 
|  | #size-cells = <1>; | 
|  |  | 
|  | emac0: ethernet@feb20000 { | 
|  | compatible = "qcom,fsm9900-emac"; | 
|  | reg = <0xfeb20000 0x10000>, | 
|  | <0xfeb36000 0x1000>; | 
|  | interrupts = <76>; | 
|  |  | 
|  | clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>, | 
|  | <&gcc 6>, <&gcc 7>; | 
|  | clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk", | 
|  | "mdio_clk", "tx_clk", "rx_clk", "sys_clk"; | 
|  |  | 
|  | internal-phy = <&emac_sgmii>; | 
|  |  | 
|  | phy-handle = <&phy0>; | 
|  |  | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  | phy0: ethernet-phy@0 { | 
|  | reg = <0>; | 
|  | }; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&mdio_pins_a>; | 
|  | }; | 
|  |  | 
|  | emac_sgmii: ethernet@feb38000 { | 
|  | compatible = "qcom,fsm9900-emac-sgmii"; | 
|  | reg = <0xfeb38000 0x1000>; | 
|  | interrupts = <80>; | 
|  | }; | 
|  |  | 
|  | tlmm: pinctrl@fd510000 { | 
|  | compatible = "qcom,fsm9900-pinctrl"; | 
|  |  | 
|  | mdio_pins_a: mdio { | 
|  | state { | 
|  | pins = "gpio123", "gpio124"; | 
|  | function = "mdio"; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  |  | 
|  | QDF2432: | 
|  |  | 
|  | soc { | 
|  | #address-cells = <2>; | 
|  | #size-cells = <2>; | 
|  |  | 
|  | emac0: ethernet@38800000 { | 
|  | compatible = "qcom,fsm9900-emac"; | 
|  | reg = <0x0 0x38800000 0x0 0x10000>, | 
|  | <0x0 0x38816000 0x0 0x1000>; | 
|  | interrupts = <0 256 4>; | 
|  |  | 
|  | clocks = <&gcc 0>, <&gcc 1>, <&gcc 3>, <&gcc 4>, <&gcc 5>, | 
|  | <&gcc 6>, <&gcc 7>; | 
|  | clock-names = "axi_clk", "cfg_ahb_clk", "high_speed_clk", | 
|  | "mdio_clk", "tx_clk", "rx_clk", "sys_clk"; | 
|  |  | 
|  | internal-phy = <&emac_sgmii>; | 
|  |  | 
|  | phy-handle = <&phy0>; | 
|  |  | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  | phy0: ethernet-phy@4 { | 
|  | reg = <4>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | emac_sgmii: ethernet@410400 { | 
|  | compatible = "qcom,qdf2432-emac-sgmii"; | 
|  | reg = <0x0 0x00410400 0x0 0xc00>, /* Base address */ | 
|  | <0x0 0x00410000 0x0 0x400>; /* Per-lane digital */ | 
|  | interrupts = <0 254 1>; | 
|  | }; |