xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/net/brcm,bcmgenet.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Broadcom BCM7xxx Ethernet Controller (GENET)
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun- compatible: should contain one of "brcm,genet-v1", "brcm,genet-v2",
5*4882a593Smuzhiyun  "brcm,genet-v3", "brcm,genet-v4", "brcm,genet-v5", "brcm,bcm2711-genet-v5".
6*4882a593Smuzhiyun- reg: address and length of the register set for the device
7*4882a593Smuzhiyun- interrupts and/or interrupts-extended: must be two cells, the first cell
8*4882a593Smuzhiyun  is the general purpose interrupt line, while the second cell is the
9*4882a593Smuzhiyun  interrupt for the ring RX and TX queues operating in ring mode.  An
10*4882a593Smuzhiyun  optional third interrupt cell for Wake-on-LAN can be specified.
11*4882a593Smuzhiyun  See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
12*4882a593Smuzhiyun  for information on the property specifics.
13*4882a593Smuzhiyun- phy-mode: see ethernet.txt file in the same directory
14*4882a593Smuzhiyun- #address-cells: should be 1
15*4882a593Smuzhiyun- #size-cells: should be 1
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunOptional properties:
18*4882a593Smuzhiyun- clocks: When provided, must be two phandles to the functional clocks nodes
19*4882a593Smuzhiyun  of the GENET block. The first phandle is the main GENET clock used during
20*4882a593Smuzhiyun  normal operation, while the second phandle is the Wake-on-LAN clock.
21*4882a593Smuzhiyun- clock-names: When provided, names of the functional clock phandles, first
22*4882a593Smuzhiyun  name should be "enet" and second should be "enet-wol".
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun- phy-handle: See ethernet.txt file in the same directory; used to describe
25*4882a593Smuzhiyun  configurations where a PHY (internal or external) is used.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun- fixed-link: When the GENET interface is connected to a MoCA hardware block or
28*4882a593Smuzhiyun  when operating in a RGMII to RGMII type of connection, or when the MDIO bus is
29*4882a593Smuzhiyun  voluntarily disabled, this property should be used to describe the "fixed link".
30*4882a593Smuzhiyun  See Documentation/devicetree/bindings/net/fixed-link.txt for information on
31*4882a593Smuzhiyun  the property specifics
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunRequired child nodes:
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun- mdio bus node: this node should always be present regardless of the PHY
36*4882a593Smuzhiyun  configuration of the GENET instance
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunMDIO bus node required properties:
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun- compatible: should contain one of "brcm,genet-mdio-v1", "brcm,genet-mdio-v2"
41*4882a593Smuzhiyun  "brcm,genet-mdio-v3", "brcm,genet-mdio-v4", "brcm,genet-mdio-v5", the version
42*4882a593Smuzhiyun  has to match the parent node compatible property (e.g: brcm,genet-v4 pairs
43*4882a593Smuzhiyun  with brcm,genet-mdio-v4)
44*4882a593Smuzhiyun- reg: address and length relative to the parent node base register address
45*4882a593Smuzhiyun- #address-cells: address cell for MDIO bus addressing, should be 1
46*4882a593Smuzhiyun- #size-cells: size of the cells for MDIO bus addressing, should be 0
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunEthernet PHY node properties:
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunSee Documentation/devicetree/bindings/net/phy.txt for the list of required and
51*4882a593Smuzhiyunoptional properties.
52*4882a593Smuzhiyun
53*4882a593SmuzhiyunInternal Gigabit PHY example:
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunethernet@f0b60000 {
56*4882a593Smuzhiyun	phy-mode = "internal";
57*4882a593Smuzhiyun	phy-handle = <&phy1>;
58*4882a593Smuzhiyun	mac-address = [ 00 10 18 36 23 1a ];
59*4882a593Smuzhiyun	compatible = "brcm,genet-v4";
60*4882a593Smuzhiyun	#address-cells = <0x1>;
61*4882a593Smuzhiyun	#size-cells = <0x1>;
62*4882a593Smuzhiyun	reg = <0xf0b60000 0xfc4c>;
63*4882a593Smuzhiyun	interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun	mdio@e14 {
66*4882a593Smuzhiyun		compatible = "brcm,genet-mdio-v4";
67*4882a593Smuzhiyun		#address-cells = <0x1>;
68*4882a593Smuzhiyun		#size-cells = <0x0>;
69*4882a593Smuzhiyun		reg = <0xe14 0x8>;
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun		phy1: ethernet-phy@1 {
72*4882a593Smuzhiyun			max-speed = <1000>;
73*4882a593Smuzhiyun			reg = <0x1>;
74*4882a593Smuzhiyun			compatible = "ethernet-phy-ieee802.3-c22";
75*4882a593Smuzhiyun		};
76*4882a593Smuzhiyun	};
77*4882a593Smuzhiyun};
78*4882a593Smuzhiyun
79*4882a593SmuzhiyunMoCA interface / MAC to MAC example:
80*4882a593Smuzhiyun
81*4882a593Smuzhiyunethernet@f0b80000 {
82*4882a593Smuzhiyun	phy-mode = "moca";
83*4882a593Smuzhiyun	fixed-link = <1 0 1000 0 0>;
84*4882a593Smuzhiyun	mac-address = [ 00 10 18 36 24 1a ];
85*4882a593Smuzhiyun	compatible = "brcm,genet-v4";
86*4882a593Smuzhiyun	#address-cells = <0x1>;
87*4882a593Smuzhiyun	#size-cells = <0x1>;
88*4882a593Smuzhiyun	reg = <0xf0b80000 0xfc4c>;
89*4882a593Smuzhiyun	interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun	mdio@e14 {
92*4882a593Smuzhiyun		compatible = "brcm,genet-mdio-v4";
93*4882a593Smuzhiyun		#address-cells = <0x1>;
94*4882a593Smuzhiyun		#size-cells = <0x0>;
95*4882a593Smuzhiyun		reg = <0xe14 0x8>;
96*4882a593Smuzhiyun	};
97*4882a593Smuzhiyun};
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun
100*4882a593SmuzhiyunExternal MDIO-connected Gigabit PHY/switch:
101*4882a593Smuzhiyun
102*4882a593Smuzhiyunethernet@f0ba0000 {
103*4882a593Smuzhiyun	phy-mode = "rgmii";
104*4882a593Smuzhiyun	phy-handle = <&phy0>;
105*4882a593Smuzhiyun	mac-address = [ 00 10 18 36 26 1a ];
106*4882a593Smuzhiyun	compatible = "brcm,genet-v4";
107*4882a593Smuzhiyun	#address-cells = <0x1>;
108*4882a593Smuzhiyun	#size-cells = <0x1>;
109*4882a593Smuzhiyun	reg = <0xf0ba0000 0xfc4c>;
110*4882a593Smuzhiyun	interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun	mdio@e14 {
113*4882a593Smuzhiyun		compatible = "brcm,genet-mdio-v4";
114*4882a593Smuzhiyun		#address-cells = <0x1>;
115*4882a593Smuzhiyun		#size-cells = <0x0>;
116*4882a593Smuzhiyun		reg = <0xe14 0x8>;
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun		phy0: ethernet-phy@0 {
119*4882a593Smuzhiyun			max-speed = <1000>;
120*4882a593Smuzhiyun			reg = <0x0>;
121*4882a593Smuzhiyun			compatible = "ethernet-phy-ieee802.3-c22";
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun	};
124*4882a593Smuzhiyun};
125