summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/net/dsa/lantiq-gswip.txt
blob: 886cbe8ffb3833ad50a6fac1f273abcd64777596 (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
Lantiq GSWIP Ethernet switches
==================================

Required properties for GSWIP core:

- compatible	: "lantiq,xrx200-gswip" for the embedded GSWIP in the
		  xRX200 SoC
- reg		: memory range of the GSWIP core registers
		: memory range of the GSWIP MDIO registers
		: memory range of the GSWIP MII registers

See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of
additional required and optional properties.


Required properties for MDIO bus:
- compatible	: "lantiq,xrx200-mdio" for the MDIO bus inside the GSWIP
		  core of the xRX200 SoC and the PHYs connected to it.

See Documentation/devicetree/bindings/net/mdio.txt for a list of additional
required and optional properties.


Required properties for GPHY firmware loading:
- compatible	: "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw"
		  "lantiq,xrx300-gphy-fw", "lantiq,gphy-fw"
		  "lantiq,xrx330-gphy-fw", "lantiq,gphy-fw"
		  for the loading of the firmware into the embedded
		  GPHY core of the SoC.
- lantiq,rcu	: reference to the rcu syscon

The GPHY firmware loader has a list of GPHY entries, one for each
embedded GPHY

- reg		: Offset of the GPHY firmware register in the RCU
		  register range
- resets	: list of resets of the embedded GPHY
- reset-names	: list of names of the resets

Example:

Ethernet switch on the VRX200 SoC:

switch@e108000 {
	#address-cells = <1>;
	#size-cells = <0>;
	compatible = "lantiq,xrx200-gswip";
	reg = <	0xe108000 0x3100	/* switch */
		0xe10b100 0xd8		/* mdio */
		0xe10b1d8 0x130		/* mii */
		>;
	dsa,member = <0 0>;

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
			label = "lan3";
			phy-mode = "rgmii";
			phy-handle = <&phy0>;
		};

		port@1 {
			reg = <1>;
			label = "lan4";
			phy-mode = "rgmii";
			phy-handle = <&phy1>;
		};

		port@2 {
			reg = <2>;
			label = "lan2";
			phy-mode = "internal";
			phy-handle = <&phy11>;
		};

		port@4 {
			reg = <4>;
			label = "lan1";
			phy-mode = "internal";
			phy-handle = <&phy13>;
		};

		port@5 {
			reg = <5>;
			label = "wan";
			phy-mode = "rgmii";
			phy-handle = <&phy5>;
		};

		port@6 {
			reg = <0x6>;
			label = "cpu";
			ethernet = <&eth0>;
		};
	};

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "lantiq,xrx200-mdio";
		reg = <0>;

		phy0: ethernet-phy@0 {
			reg = <0x0>;
		};
		phy1: ethernet-phy@1 {
			reg = <0x1>;
		};
		phy5: ethernet-phy@5 {
			reg = <0x5>;
		};
		phy11: ethernet-phy@11 {
			reg = <0x11>;
		};
		phy13: ethernet-phy@13 {
			reg = <0x13>;
		};
	};

	gphy-fw {
		compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
		lantiq,rcu = <&rcu0>;
		#address-cells = <1>;
		#size-cells = <0>;

		gphy@20 {
			reg = <0x20>;

			resets = <&reset0 31 30>;
			reset-names = "gphy";
		};

		gphy@68 {
			reg = <0x68>;

			resets = <&reset0 29 28>;
			reset-names = "gphy";
		};
	};
};