net: emac: emac gigabit ethernet controller driver
Add support for the Qualcomm Technologies, Inc. EMAC gigabit Ethernet controller. This driver supports the following features: 1) Checksum offload. 2) Interrupt coalescing support. 3) SGMII phy. 4) phylib interface for external phy Based on original work by Niranjana Vishwanathapura <nvishwan@codeaurora.org> Gilad Avidov <gavidov@codeaurora.org> Signed-off-by: Timur Tabi <timur@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
04bed1434d
commit
b9b17debc6
111
Documentation/devicetree/bindings/net/qcom-emac.txt
Normal file
111
Documentation/devicetree/bindings/net/qcom-emac.txt
Normal file
@@ -0,0 +1,111 @@
|
||||
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>;
|
||||
};
|
Reference in New Issue
Block a user