xref: /freebsd/sys/contrib/device-tree/Bindings/net/cavium-mdio.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* System Management Interface (SMI) / MDIO
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotProperties:
4*c66ec88fSEmmanuel Vadot- compatible: One of:
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel Vadot   "cavium,octeon-3860-mdio": Compatibility with all cn3XXX, cn5XXX
7*c66ec88fSEmmanuel Vadot                       and cn6XXX SOCs.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot   "cavium,thunder-8890-mdio": Compatibility with all cn8XXX SOCs.
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel Vadot- reg: The base address of the MDIO bus controller register bank.
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel Vadot- #address-cells: Must be <1>.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel Vadot- #size-cells: Must be <0>.  MDIO addresses have no size component.
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel VadotTypically an MDIO bus might have several children.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel VadotExample:
20*c66ec88fSEmmanuel Vadot	mdio@1180000001800 {
21*c66ec88fSEmmanuel Vadot		compatible = "cavium,octeon-3860-mdio";
22*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
23*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
24*c66ec88fSEmmanuel Vadot		reg = <0x11800 0x00001800 0x0 0x40>;
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel Vadot		ethernet-phy@0 {
27*c66ec88fSEmmanuel Vadot			...
28*c66ec88fSEmmanuel Vadot			reg = <0>;
29*c66ec88fSEmmanuel Vadot		};
30*c66ec88fSEmmanuel Vadot	};
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot* System Management Interface (SMI) / MDIO Nexus
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel Vadot  Several mdio buses may be gathered as children of a single PCI
36*c66ec88fSEmmanuel Vadot  device, this PCI device is the nexus of the buses.
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel VadotProperties:
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel Vadot- compatible: "cavium,thunder-8890-mdio-nexus";
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot- reg: The PCI device and function numbers of the nexus device.
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadot- #address-cells: Must be <2>.
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot- #size-cells: Must be <2>.
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel Vadot- ranges: As needed for mapping of the MDIO bus device registers.
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot- assigned-addresses: As needed for mapping of the MDIO bus device registers.
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel VadotExample:
53*c66ec88fSEmmanuel Vadot
54*c66ec88fSEmmanuel Vadot        mdio-nexus@1,3 {
55*c66ec88fSEmmanuel Vadot                compatible = "cavium,thunder-8890-mdio-nexus";
56*c66ec88fSEmmanuel Vadot                #address-cells = <2>;
57*c66ec88fSEmmanuel Vadot                #size-cells = <2>;
58*c66ec88fSEmmanuel Vadot                reg = <0x0b00 0 0 0 0>; /* DEVFN = 0x0b (1:3) */
59*c66ec88fSEmmanuel Vadot                assigned-addresses = <0x03000000 0x87e0 0x05000000 0x0 0x800000>;
60*c66ec88fSEmmanuel Vadot                ranges = <0x87e0 0x05000000 0x03000000 0x87e0 0x05000000 0x0 0x800000>;
61*c66ec88fSEmmanuel Vadot
62*c66ec88fSEmmanuel Vadot                mdio0@87e0,05003800 {
63*c66ec88fSEmmanuel Vadot                        compatible = "cavium,thunder-8890-mdio";
64*c66ec88fSEmmanuel Vadot                        #address-cells = <1>;
65*c66ec88fSEmmanuel Vadot                        #size-cells = <0>;
66*c66ec88fSEmmanuel Vadot                        reg = <0x87e0 0x05003800 0x0 0x30>;
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot                        ethernet-phy@0 {
69*c66ec88fSEmmanuel Vadot                                ...
70*c66ec88fSEmmanuel Vadot                                reg = <0>;
71*c66ec88fSEmmanuel Vadot                        };
72*c66ec88fSEmmanuel Vadot                };
73*c66ec88fSEmmanuel Vadot                mdio0@87e0,05003880 {
74*c66ec88fSEmmanuel Vadot                        compatible = "cavium,thunder-8890-mdio";
75*c66ec88fSEmmanuel Vadot                        #address-cells = <1>;
76*c66ec88fSEmmanuel Vadot                        #size-cells = <0>;
77*c66ec88fSEmmanuel Vadot                        reg = <0x87e0 0x05003880 0x0 0x30>;
78*c66ec88fSEmmanuel Vadot
79*c66ec88fSEmmanuel Vadot                        ethernet-phy@0 {
80*c66ec88fSEmmanuel Vadot                                ...
81*c66ec88fSEmmanuel Vadot                                reg = <0>;
82*c66ec88fSEmmanuel Vadot                        };
83*c66ec88fSEmmanuel Vadot                };
84*c66ec88fSEmmanuel Vadot        };
85