summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/net/imx-dwmac.txt
blob: 921d522fe8d776e4f829740c318ef97618e7e526 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
IMX8 glue layer controller, NXP imx8 families support Synopsys MAC 5.10a IP.

This file documents platform glue layer for IMX.
Please see stmmac.txt for the other unchanged properties.

The device node has following properties.

Required properties:
- compatible:  Should be "nxp,imx8mp-dwmac-eqos" to select glue layer
	       and "snps,dwmac-5.10a" to select IP version.
- clocks: Must contain a phandle for each entry in clock-names.
- clock-names: Should be "stmmaceth" for the host clock.
	       Should be "pclk" for the MAC apb clock.
	       Should be "ptp_ref" for the MAC timer clock.
	       Should be "tx" for the MAC RGMII TX clock:
	       Should be "mem" for EQOS MEM clock.
		- "mem" clock is required for imx8dxl platform.
		- "mem" clock is not required for imx8mp platform.
- interrupt-names: Should contain a list of interrupt names corresponding to
		   the interrupts in the interrupts property, if available.
		   Should be "macirq" for the main MAC IRQ
		   Should be "eth_wake_irq" for the IT which wake up system
- intf_mode: Should be phandle/offset pair. The phandle to the syscon node which
	     encompases the GPR register, and the offset of the GPR register.
		- required for imx8mp platform.
		- is optional for imx8dxl platform.

Optional properties:
- intf_mode: is optional for imx8dxl platform.
- snps,rmii_refclk_ext: to select RMII reference clock from external.

Example:
	eqos: ethernet@30bf0000 {
		compatible = "nxp,imx8mp-dwmac-eqos", "snps,dwmac-5.10a";
		reg = <0x30bf0000 0x10000>;
		interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "eth_wake_irq", "macirq";
		clocks = <&clk IMX8MP_CLK_ENET_QOS_ROOT>,
			 <&clk IMX8MP_CLK_QOS_ENET_ROOT>,
			 <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
			 <&clk IMX8MP_CLK_ENET_QOS>;
		clock-names = "stmmaceth", "pclk", "ptp_ref", "tx";
		assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
				  <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
				  <&clk IMX8MP_CLK_ENET_QOS>;
		assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
					 <&clk IMX8MP_SYS_PLL2_100M>,
					 <&clk IMX8MP_SYS_PLL2_125M>;
		assigned-clock-rates = <0>, <100000000>, <125000000>;
		nvmem-cells = <&eth_mac0>;
		nvmem-cell-names = "mac-address";
		nvmem_macaddr_swap;
		intf_mode = <&gpr 0x4>;
		status = "disabled";
	};