| 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>; | |
| }; |