xref: /freebsd/sys/contrib/device-tree/Bindings/net/mscc-ocelot.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotMicrosemi Ocelot network Switch
2*c66ec88fSEmmanuel Vadot===============================
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotThe Microsemi Ocelot network switch can be found on Microsemi SoCs (VSC7513,
5*c66ec88fSEmmanuel VadotVSC7514)
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired properties:
8*c66ec88fSEmmanuel Vadot- compatible: Should be "mscc,vsc7514-switch"
9*c66ec88fSEmmanuel Vadot- reg: Must contain an (offset, length) pair of the register set for each
10*c66ec88fSEmmanuel Vadot  entry in reg-names.
11*c66ec88fSEmmanuel Vadot- reg-names: Must include the following entries:
12*c66ec88fSEmmanuel Vadot  - "sys"
13*c66ec88fSEmmanuel Vadot  - "rew"
14*c66ec88fSEmmanuel Vadot  - "qs"
15*c66ec88fSEmmanuel Vadot  - "ptp" (optional due to backward compatibility)
16*c66ec88fSEmmanuel Vadot  - "qsys"
17*c66ec88fSEmmanuel Vadot  - "ana"
18*c66ec88fSEmmanuel Vadot  - "portX" with X from 0 to the number of last port index available on that
19*c66ec88fSEmmanuel Vadot    switch
20*c66ec88fSEmmanuel Vadot- interrupts: Should contain the switch interrupts for frame extraction,
21*c66ec88fSEmmanuel Vadot  frame injection and PTP ready.
22*c66ec88fSEmmanuel Vadot- interrupt-names: should contain the interrupt names: "xtr", "inj". Can contain
23*c66ec88fSEmmanuel Vadot  "ptp_rdy" which is optional due to backward compatibility.
24*c66ec88fSEmmanuel Vadot- ethernet-ports: A container for child nodes representing switch ports.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotThe ethernet-ports container has the following properties
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel VadotRequired properties:
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadot- #address-cells: Must be 1
31*c66ec88fSEmmanuel Vadot- #size-cells: Must be 0
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel VadotEach port node must have the following mandatory properties:
34*c66ec88fSEmmanuel Vadot- reg: Describes the port address in the switch
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel VadotPort nodes may also contain the following optional standardised
37*c66ec88fSEmmanuel Vadotproperties, described in binding documents:
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot- phy-handle: Phandle to a PHY on an MDIO bus. See
40*c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/net/ethernet.txt for details.
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel VadotExample:
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadot	switch@1010000 {
45*c66ec88fSEmmanuel Vadot		compatible = "mscc,vsc7514-switch";
46*c66ec88fSEmmanuel Vadot		reg = <0x1010000 0x10000>,
47*c66ec88fSEmmanuel Vadot		      <0x1030000 0x10000>,
48*c66ec88fSEmmanuel Vadot		      <0x1080000 0x100>,
49*c66ec88fSEmmanuel Vadot		      <0x10e0000 0x10000>,
50*c66ec88fSEmmanuel Vadot		      <0x11e0000 0x100>,
51*c66ec88fSEmmanuel Vadot		      <0x11f0000 0x100>,
52*c66ec88fSEmmanuel Vadot		      <0x1200000 0x100>,
53*c66ec88fSEmmanuel Vadot		      <0x1210000 0x100>,
54*c66ec88fSEmmanuel Vadot		      <0x1220000 0x100>,
55*c66ec88fSEmmanuel Vadot		      <0x1230000 0x100>,
56*c66ec88fSEmmanuel Vadot		      <0x1240000 0x100>,
57*c66ec88fSEmmanuel Vadot		      <0x1250000 0x100>,
58*c66ec88fSEmmanuel Vadot		      <0x1260000 0x100>,
59*c66ec88fSEmmanuel Vadot		      <0x1270000 0x100>,
60*c66ec88fSEmmanuel Vadot		      <0x1280000 0x100>,
61*c66ec88fSEmmanuel Vadot		      <0x1800000 0x80000>,
62*c66ec88fSEmmanuel Vadot		      <0x1880000 0x10000>;
63*c66ec88fSEmmanuel Vadot		reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
64*c66ec88fSEmmanuel Vadot			    "port2", "port3", "port4", "port5", "port6",
65*c66ec88fSEmmanuel Vadot			    "port7", "port8", "port9", "port10", "qsys",
66*c66ec88fSEmmanuel Vadot			    "ana";
67*c66ec88fSEmmanuel Vadot		interrupts = <18 21 22>;
68*c66ec88fSEmmanuel Vadot		interrupt-names = "ptp_rdy", "xtr", "inj";
69*c66ec88fSEmmanuel Vadot
70*c66ec88fSEmmanuel Vadot		ethernet-ports {
71*c66ec88fSEmmanuel Vadot			#address-cells = <1>;
72*c66ec88fSEmmanuel Vadot			#size-cells = <0>;
73*c66ec88fSEmmanuel Vadot
74*c66ec88fSEmmanuel Vadot			port0: port@0 {
75*c66ec88fSEmmanuel Vadot				reg = <0>;
76*c66ec88fSEmmanuel Vadot				phy-handle = <&phy0>;
77*c66ec88fSEmmanuel Vadot			};
78*c66ec88fSEmmanuel Vadot			port1: port@1 {
79*c66ec88fSEmmanuel Vadot				reg = <1>;
80*c66ec88fSEmmanuel Vadot				phy-handle = <&phy1>;
81*c66ec88fSEmmanuel Vadot			};
82*c66ec88fSEmmanuel Vadot		};
83*c66ec88fSEmmanuel Vadot	};
84