xref: /linux/Documentation/ABI/testing/sysfs-timecard (revision 1a371190a375f98c9b106f758ea41558c3f92556)
1d7050a2bSJonathan LemonWhat:		/sys/class/timecard/
2d7050a2bSJonathan LemonDate:		September 2021
3d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
4d7050a2bSJonathan LemonDescription:	This directory contains files and directories
5d7050a2bSJonathan Lemon		providing a standardized interface to the ancillary
6d7050a2bSJonathan Lemon		features of the OpenCompute timecard.
7d7050a2bSJonathan Lemon
8d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/
9d7050a2bSJonathan LemonDate:		September 2021
10d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
11d7050a2bSJonathan LemonDescription:	This directory contains the attributes of the Nth timecard
12d7050a2bSJonathan Lemon		registered.
13d7050a2bSJonathan Lemon
14d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/available_clock_sources
15d7050a2bSJonathan LemonDate:		September 2021
16d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
17d7050a2bSJonathan LemonDescription:	(RO) The list of available time sources that the PHC
18d7050a2bSJonathan Lemon		uses for clock adjustments.
19d7050a2bSJonathan Lemon
20d7050a2bSJonathan Lemon		====  =================================================
21d7050a2bSJonathan Lemon                NONE  no adjustments
22d7050a2bSJonathan Lemon                PPS   adjustments come from the PPS1 selector (default)
23d7050a2bSJonathan Lemon                TOD   adjustments from the GNSS/TOD module
24d7050a2bSJonathan Lemon                IRIG  adjustments from external IRIG-B signal
25d7050a2bSJonathan Lemon                DCF   adjustments from external DCF signal
26d7050a2bSJonathan Lemon                ====  =================================================
27d7050a2bSJonathan Lemon
28d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/available_sma_inputs
29d7050a2bSJonathan LemonDate:		September 2021
30d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
31d7050a2bSJonathan LemonDescription:	(RO) Set of available destinations (sinks) for a SMA
32d7050a2bSJonathan Lemon		input signal.
33d7050a2bSJonathan Lemon
34d7050a2bSJonathan Lemon                =====  ================================================
35d7050a2bSJonathan Lemon                10Mhz  signal is used as the 10Mhz reference clock
36d7050a2bSJonathan Lemon                PPS1   signal is sent to the PPS1 selector
37d7050a2bSJonathan Lemon                PPS2   signal is sent to the PPS2 selector
38d7050a2bSJonathan Lemon                TS1    signal is sent to timestamper 1
39d7050a2bSJonathan Lemon                TS2    signal is sent to timestamper 2
40ff1d56cbSJonathan Lemon                TS3    signal is sent to timestamper 3
41ff1d56cbSJonathan Lemon                TS4    signal is sent to timestamper 4
42d7050a2bSJonathan Lemon                IRIG   signal is sent to the IRIG-B module
43d7050a2bSJonathan Lemon                DCF    signal is sent to the DCF module
44ff1d56cbSJonathan Lemon                FREQ1  signal is sent to frequency counter 1
45ff1d56cbSJonathan Lemon                FREQ2  signal is sent to frequency counter 2
46ff1d56cbSJonathan Lemon                FREQ3  signal is sent to frequency counter 3
47ff1d56cbSJonathan Lemon                FREQ4  signal is sent to frequency counter 4
48ff1d56cbSJonathan Lemon                None   signal input is disabled
49d7050a2bSJonathan Lemon                =====  ================================================
50d7050a2bSJonathan Lemon
51d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/available_sma_outputs
52d7050a2bSJonathan LemonDate:		May 2021
53d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
54d7050a2bSJonathan LemonDescription:	(RO) Set of available sources for a SMA output signal.
55d7050a2bSJonathan Lemon
56d7050a2bSJonathan Lemon                =====  ================================================
57d7050a2bSJonathan Lemon                10Mhz  output is from the 10Mhz reference clock
58d7050a2bSJonathan Lemon                PHC    output PPS is from the PHC clock
59d7050a2bSJonathan Lemon                MAC    output PPS is from the Miniature Atomic Clock
60ff1d56cbSJonathan Lemon                GNSS1  output PPS is from the first GNSS module
61d7050a2bSJonathan Lemon                GNSS2  output PPS is from the second GNSS module
62d7050a2bSJonathan Lemon                IRIG   output is from the PHC, in IRIG-B format
63d7050a2bSJonathan Lemon                DCF    output is from the PHC, in DCF format
64ff1d56cbSJonathan Lemon                GEN1   output is from frequency generator 1
65ff1d56cbSJonathan Lemon                GEN2   output is from frequency generator 2
66ff1d56cbSJonathan Lemon                GEN3   output is from frequency generator 3
67ff1d56cbSJonathan Lemon                GEN4   output is from frequency generator 4
68ff1d56cbSJonathan Lemon                GND    output is GND
69ff1d56cbSJonathan Lemon                VCC    output is VCC
70d7050a2bSJonathan Lemon                =====  ================================================
71d7050a2bSJonathan Lemon
72d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/clock_source
73d7050a2bSJonathan LemonDate:		September 2021
74d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
75d7050a2bSJonathan LemonDescription:	(RW) Contains the current synchronization source used by
76d7050a2bSJonathan Lemon		the PHC.  May be changed by writing one of the listed
77d7050a2bSJonathan Lemon		values from the available_clock_sources attribute set.
78d7050a2bSJonathan Lemon
794db07317SJonathan LemonWhat:		/sys/class/timecard/ocpN/clock_status_drift
804db07317SJonathan LemonDate:		March 2022
814db07317SJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
824db07317SJonathan LemonDescription:	(RO) Contains the current drift value used by the firmware
834db07317SJonathan Lemon		for internal disciplining of the atomic clock.
844db07317SJonathan Lemon
854db07317SJonathan LemonWhat:		/sys/class/timecard/ocpN/clock_status_offset
864db07317SJonathan LemonDate:		March 2022
874db07317SJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
884db07317SJonathan LemonDescription:	(RO) Contains the current offset value used by the firmware
894db07317SJonathan Lemon		for internal disciplining of the atomic clock.
904db07317SJonathan Lemon
91ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/freqX
92ff1d56cbSJonathan LemonDate:		March 2022
93ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
94ff1d56cbSJonathan LemonDescription:	(RO) Optional directory containing the sysfs nodes for
95ff1d56cbSJonathan Lemon		frequency counter <X>.
96ff1d56cbSJonathan Lemon
97ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/freqX/frequency
98ff1d56cbSJonathan LemonDate:		March 2022
99ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
100ff1d56cbSJonathan LemonDescription:	(RO) Contains the measured frequency over the specified
101ff1d56cbSJonathan Lemon		measurement period.
102ff1d56cbSJonathan Lemon
103ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/freqX/seconds
104ff1d56cbSJonathan LemonDate:		March 2022
105ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
106ff1d56cbSJonathan LemonDescription:	(RW) Specifies the number of seconds from 0-255 that the
107ff1d56cbSJonathan Lemon		frequency should be measured over.  Write 0 to disable.
108ff1d56cbSJonathan Lemon
109ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX
110ff1d56cbSJonathan LemonDate:		March 2022
111ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
112ff1d56cbSJonathan LemonDescription:	(RO) Optional directory containing the sysfs nodes for
113ff1d56cbSJonathan Lemon		frequency generator <X>.
114ff1d56cbSJonathan Lemon
115ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/duty
116ff1d56cbSJonathan LemonDate:		March 2022
117ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
118ff1d56cbSJonathan LemonDescription:	(RO) Specifies the signal duty cycle as a percentage from 1-99.
119ff1d56cbSJonathan Lemon
120ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/period
121ff1d56cbSJonathan LemonDate:		March 2022
122ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
123ff1d56cbSJonathan LemonDescription:	(RO) Specifies the signal period in nanoseconds.
124ff1d56cbSJonathan Lemon
125ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/phase
126ff1d56cbSJonathan LemonDate:		March 2022
127ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
128ff1d56cbSJonathan LemonDescription:	(RO) Specifies the signal phase offset in nanoseconds.
129ff1d56cbSJonathan Lemon
130ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/polarity
131ff1d56cbSJonathan LemonDate:		March 2022
132ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
133ff1d56cbSJonathan LemonDescription:	(RO) Specifies the signal polarity, either 1 or 0.
134ff1d56cbSJonathan Lemon
135ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/running
136ff1d56cbSJonathan LemonDate:		March 2022
137ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
138ff1d56cbSJonathan LemonDescription:	(RO) Either 0 or 1, showing if the signal generator is running.
139ff1d56cbSJonathan Lemon
140ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/start
141ff1d56cbSJonathan LemonDate:		March 2022
142ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
143ff1d56cbSJonathan LemonDescription:	(RO) Shows the time in <sec>.<nsec> that the signal generator
144ff1d56cbSJonathan Lemon		started running.
145ff1d56cbSJonathan Lemon
146ff1d56cbSJonathan LemonWhat:		/sys/class/timecard/ocpN/genX/signal
147ff1d56cbSJonathan LemonDate:		March 2022
148ff1d56cbSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
149ff1d56cbSJonathan LemonDescription:	(RW) Used to start the signal generator, and summarize
150ff1d56cbSJonathan Lemon		the current status.
151ff1d56cbSJonathan Lemon
152ff1d56cbSJonathan Lemon		The signal generator may be started by writing the signal
153ff1d56cbSJonathan Lemon		period, followed by the optional signal values.  If the
154ff1d56cbSJonathan Lemon		optional values are not provided, they default to the current
155ff1d56cbSJonathan Lemon		settings, which may be obtained from the other sysfs nodes.
156ff1d56cbSJonathan Lemon
157ff1d56cbSJonathan Lemon		    period [duty [phase [polarity]]]
158ff1d56cbSJonathan Lemon
159ff1d56cbSJonathan Lemon		echo 500000000 > signal       # 1/2 second period
160ff1d56cbSJonathan Lemon		echo 1000000 40 100 > signal
161ff1d56cbSJonathan Lemon		echo 0 > signal               # turn off generator
162ff1d56cbSJonathan Lemon
163ff1d56cbSJonathan Lemon		Period and phase are specified in nanoseconds.  Duty cycle is
164ff1d56cbSJonathan Lemon		a percentage from 1-99.  Polarity is 1 or 0.
165ff1d56cbSJonathan Lemon
166ff1d56cbSJonathan Lemon		Reading this node will return:
167ff1d56cbSJonathan Lemon
168ff1d56cbSJonathan Lemon		    period duty phase polarity start_time
169ff1d56cbSJonathan Lemon
170d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/gnss_sync
171d7050a2bSJonathan LemonDate:		September 2021
172d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
173d7050a2bSJonathan LemonDescription:	(RO) Indicates whether a valid GNSS signal is received,
174d7050a2bSJonathan Lemon		or when the signal was lost.
175d7050a2bSJonathan Lemon
176d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/i2c
177d7050a2bSJonathan LemonDate:		September 2021
178d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
179d7050a2bSJonathan LemonDescription:	This optional attribute links to the associated i2c device.
180d7050a2bSJonathan Lemon
181d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/irig_b_mode
182d7050a2bSJonathan LemonDate:		September 2021
183d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
184d7050a2bSJonathan LemonDescription:	(RW) An integer from 0-7 indicating the timecode format
185d7050a2bSJonathan Lemon		of the IRIG-B output signal: B00<n>
186d7050a2bSJonathan Lemon
187d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/pps
188d7050a2bSJonathan LemonDate:		September 2021
189d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
190d7050a2bSJonathan LemonDescription:	This optional attribute links to the associated PPS device.
191d7050a2bSJonathan Lemon
192d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/ptp
193d7050a2bSJonathan LemonDate:		September 2021
194d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
195d7050a2bSJonathan LemonDescription:	This attribute links to the associated PTP device.
196d7050a2bSJonathan Lemon
197d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/serialnum
198d7050a2bSJonathan LemonDate:		September 2021
199d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
200d7050a2bSJonathan LemonDescription:	(RO) Provides the serial number of the timecard.
201d7050a2bSJonathan Lemon
202d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/sma1
203d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/sma2
204d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/sma3
205d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/sma4
206d7050a2bSJonathan LemonDate:		September 2021
207d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
208d7050a2bSJonathan LemonDescription:	(RW) These attributes specify the direction of the signal
209d7050a2bSJonathan Lemon		on the associated SMA connectors, and also the signal sink
210d7050a2bSJonathan Lemon		or source.
211d7050a2bSJonathan Lemon
212d7050a2bSJonathan Lemon		The display format of the attribute is a space separated
213d7050a2bSJonathan Lemon		list of signals, prefixed by the input/output direction.
214d7050a2bSJonathan Lemon
215d7050a2bSJonathan Lemon		The signal direction may be changed (if supported) by
216d7050a2bSJonathan Lemon		prefixing the signal list with either "in:" or "out:".
217d7050a2bSJonathan Lemon		If neither prefix is present, then the direction is unchanged.
218d7050a2bSJonathan Lemon
219d7050a2bSJonathan Lemon		The output signal may be changed by writing one of the listed
220d7050a2bSJonathan Lemon		values from the available_sma_outputs attribute set.
221d7050a2bSJonathan Lemon
222d7050a2bSJonathan Lemon		The input destinations may be changed by writing multiple
223d7050a2bSJonathan Lemon		values from the available_sma_inputs attribute set,
224d7050a2bSJonathan Lemon		separated by spaces.  If there are duplicated input
225d7050a2bSJonathan Lemon		destinations between connectors, the lowest numbered SMA
226d7050a2bSJonathan Lemon		connector is given priority.
227d7050a2bSJonathan Lemon
228d7050a2bSJonathan Lemon		Note that not all input combinations may make sense.
229d7050a2bSJonathan Lemon
230d7050a2bSJonathan Lemon		The 10Mhz reference clock input is currently only valid
231d7050a2bSJonathan Lemon		on SMA1 and may not be combined with other destination sinks.
232d7050a2bSJonathan Lemon
2334db07317SJonathan LemonWhat:		/sys/class/timecard/ocpN/tod_correction
2344db07317SJonathan LemonDate:		March 2022
2354db07317SJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
2364db07317SJonathan LemonDescription:	(RW) The incoming GNSS signal is in UTC time, and the NMEA
2374db07317SJonathan Lemon		format messages do not provide a TAI offset.  This sets the
2384db07317SJonathan Lemon		correction value for the incoming time.
2394db07317SJonathan Lemon
2404db07317SJonathan Lemon		If UBX_LS is enabled, this should be 0, and the offset is
2414db07317SJonathan Lemon		taken from the UBX-NAV-TIMELS message.
2424db07317SJonathan Lemon
243d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/ts_window_adjust
244d7050a2bSJonathan LemonDate:		September 2021
245d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
246d7050a2bSJonathan LemonDescription:	(RW) When retrieving the PHC with the PTP SYS_OFFSET_EXTENDED
247d7050a2bSJonathan Lemon		ioctl, a system timestamp is made before and after the PHC
248d7050a2bSJonathan Lemon		time is retrieved.  The midpoint between the two system
249d7050a2bSJonathan Lemon		timestamps is usually taken to be the SYS time associated
250d7050a2bSJonathan Lemon		with the PHC time.  This estimate may be wrong, as it depends
251d7050a2bSJonathan Lemon		on PCI latencies, and when the PHC time was latched
252d7050a2bSJonathan Lemon
253d7050a2bSJonathan Lemon		The attribute value reduces the end timestamp by the given
254d7050a2bSJonathan Lemon		number of nanoseconds, so the computed midpoint matches the
255d7050a2bSJonathan Lemon		retrieved PHC time.
256d7050a2bSJonathan Lemon
257d7050a2bSJonathan Lemon		The initial value is set based on measured PCI latency and
258d7050a2bSJonathan Lemon		the estimated point where the FPGA latches the PHC time.  This
259d7050a2bSJonathan Lemon		value may be changed by writing an unsigned integer.
260d7050a2bSJonathan Lemon
261*40bec579SVadim FedorenkoWhat:		/sys/class/timecard/ocpN/tty
262*40bec579SVadim FedorenkoDate:		August 2024
263*40bec579SVadim FedorenkoContact:	Vadim Fedorenko <vadim.fedorenko@linux.dev>
264*40bec579SVadim FedorenkoDescription:	(RO) Directory containing the sysfs nodes for TTY attributes
265d7050a2bSJonathan Lemon
266*40bec579SVadim FedorenkoWhat:		/sys/class/timecard/ocpN/tty/ttyGNSS
267*40bec579SVadim FedorenkoWhat:		/sys/class/timecard/ocpN/tty/ttyGNSS2
268*40bec579SVadim FedorenkoDate:		August 2024
269d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
270*40bec579SVadim FedorenkoDescription:	(RO) These optional attributes contain names of the TTY serial
271*40bec579SVadim Fedorenko		ports associated with the GNSS devices.
272d7050a2bSJonathan Lemon
273*40bec579SVadim FedorenkoWhat:		/sys/class/timecard/ocpN/tty/ttyMAC
274*40bec579SVadim FedorenkoDate:		August 2024
275d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
276*40bec579SVadim FedorenkoDescription:	(RO) This optional attribute contains name of the TTY serial
277*40bec579SVadim Fedorenko		port associated with the Miniature Atomic Clock.
278*40bec579SVadim Fedorenko
279*40bec579SVadim FedorenkoWhat:		/sys/class/timecard/ocpN/tty/ttyNMEA
280*40bec579SVadim FedorenkoDate:		August 2024
281*40bec579SVadim FedorenkoContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
282*40bec579SVadim FedorenkoDescription:	(RO) This optional attribute contains name of the TTY serial
283*40bec579SVadim Fedorenko		port which outputs the PHC time in NMEA ZDA format.
284d7050a2bSJonathan Lemon
285d7050a2bSJonathan LemonWhat:		/sys/class/timecard/ocpN/utc_tai_offset
286d7050a2bSJonathan LemonDate:		September 2021
287d7050a2bSJonathan LemonContact:	Jonathan Lemon <jonathan.lemon@gmail.com>
288d7050a2bSJonathan LemonDescription:	(RW) The DCF and IRIG output signals are in UTC, while the
289d7050a2bSJonathan Lemon		TimeCard operates on TAI.  This attribute allows setting the
290d7050a2bSJonathan Lemon		offset in seconds, which is added to the TAI timebase for
291d7050a2bSJonathan Lemon		these formats.
292d7050a2bSJonathan Lemon
293d7050a2bSJonathan Lemon		The offset may be changed by writing an unsigned integer.
294