xref: /linux/Documentation/devicetree/bindings/ptp/timestamper.txt (revision 8dd06ef34b6e2f41b29fbf5fc1663780f2524285)
1*25d12e1dSRichard CochranTime stamps from MII bus snooping devices
2*25d12e1dSRichard Cochran
3*25d12e1dSRichard CochranThis binding supports non-PHY devices that snoop the MII bus and
4*25d12e1dSRichard Cochranprovide time stamps.  In contrast to PHY time stamping drivers (which
5*25d12e1dSRichard Cochrancan simply attach their interface directly to the PHY instance), stand
6*25d12e1dSRichard Cochranalone MII time stamping drivers use this binding to specify the
7*25d12e1dSRichard Cochranconnection between the snooping device and a given network interface.
8*25d12e1dSRichard Cochran
9*25d12e1dSRichard CochranNon-PHY MII time stamping drivers typically talk to the control
10*25d12e1dSRichard Cochraninterface over another bus like I2C, SPI, UART, or via a memory mapped
11*25d12e1dSRichard Cochranperipheral.  This controller device is associated with one or more
12*25d12e1dSRichard Cochrantime stamping channels, each of which snoops on a MII bus.
13*25d12e1dSRichard Cochran
14*25d12e1dSRichard CochranThe "timestamper" property lives in a phy node and links a time
15*25d12e1dSRichard Cochranstamping channel from the controller device to that phy's MII bus.
16*25d12e1dSRichard Cochran
17*25d12e1dSRichard CochranExample:
18*25d12e1dSRichard Cochran
19*25d12e1dSRichard Cochran	tstamper: timestamper@10000000 {
20*25d12e1dSRichard Cochran		compatible = "ines,ptp-ctrl";
21*25d12e1dSRichard Cochran		reg = <0x10000000 0x80>;
22*25d12e1dSRichard Cochran	};
23*25d12e1dSRichard Cochran
24*25d12e1dSRichard Cochran	ethernet@20000000 {
25*25d12e1dSRichard Cochran		mdio {
26*25d12e1dSRichard Cochran			ethernet-phy@1 {
27*25d12e1dSRichard Cochran				timestamper = <&tstamper 0>;
28*25d12e1dSRichard Cochran			};
29*25d12e1dSRichard Cochran		};
30*25d12e1dSRichard Cochran	};
31*25d12e1dSRichard Cochran
32*25d12e1dSRichard Cochran	ethernet@30000000 {
33*25d12e1dSRichard Cochran		mdio {
34*25d12e1dSRichard Cochran			ethernet-phy@2 {
35*25d12e1dSRichard Cochran				timestamper = <&tstamper 1>;
36*25d12e1dSRichard Cochran			};
37*25d12e1dSRichard Cochran		};
38*25d12e1dSRichard Cochran	};
39*25d12e1dSRichard Cochran
40*25d12e1dSRichard CochranIn this example, time stamps from the MII bus attached to phy@1 will
41*25d12e1dSRichard Cochranappear on time stamp channel 0 (zero), and those from phy@2 appear on
42*25d12e1dSRichard Cochranchannel 1.
43