Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2---
3name: dpll
4
5doc: DPLL subsystem.
6
7definitions:
8 -
9 type: enum
10 name: mode
11 doc: |
12 working modes a dpll can support, differentiates if and how dpll selects
13 one of its inputs to syntonize with it, valid values for DPLL_A_MODE
14 attribute
15 entries:
16 -
17 name: manual
18 doc: input can be only selected by sending a request to dpll
19 value: 1
20 -
21 name: automatic
22 doc: highest prio input pin auto selected by dpll
23 render-max: true
24 -
25 type: enum
26 name: lock-status
27 doc: |
28 provides information of dpll device lock status, valid values for
29 DPLL_A_LOCK_STATUS attribute
30 entries:
31 -
32 name: unlocked
33 doc: |
34 dpll was not yet locked to any valid input (or forced by setting
35 DPLL_A_MODE to DPLL_MODE_DETACHED)
36 value: 1
37 -
38 name: locked
39 doc: |
40 dpll is locked to a valid signal, but no holdover available
41 -
42 name: locked-ho-acq
43 doc: |
44 dpll is locked and holdover acquired
45 -
46 name: holdover
47 doc: |
48 dpll is in holdover state - lost a valid lock or was forced
49 by disconnecting all the pins (latter possible only
50 when dpll lock-state was already DPLL_LOCK_STATUS_LOCKED_HO_ACQ,
51 if dpll lock-state was not DPLL_LOCK_STATUS_LOCKED_HO_ACQ, the
52 dpll's lock-state shall remain DPLL_LOCK_STATUS_UNLOCKED)
53 render-max: true
54 -
55 type: enum
56 name: lock-status-error
57 doc: |
58 if previous status change was done due to a failure, this provides
59 information of dpll device lock status error.
60 Valid values for DPLL_A_LOCK_STATUS_ERROR attribute
61 entries:
62 -
63 name: none
64 doc: |
65 dpll device lock status was changed without any error
66 value: 1
67 -
68 name: undefined
69 doc: |
70 dpll device lock status was changed due to undefined error.
71 Driver fills this value up in case it is not able
72 to obtain suitable exact error type.
73 -
74 name: media-down
75 doc: |
76 dpll device lock status was changed because of associated
77 media got down.
78 This may happen for example if dpll device was previously
79 locked on an input pin of type PIN_TYPE_SYNCE_ETH_PORT.
80 -
81 name: fractional-frequency-offset-too-high
82 doc: |
83 the FFO (Fractional Frequency Offset) between the RX and TX
84 symbol rate on the media got too high.
85 This may happen for example if dpll device was previously
86 locked on an input pin of type PIN_TYPE_SYNCE_ETH_PORT.
87 render-max: true
88 -
89 type: enum
90 name: clock-quality-level
91 doc: |
92 level of quality of a clock device. This mainly applies when
93 the dpll lock-status is DPLL_LOCK_STATUS_HOLDOVER.
94 The current list is defined according to the table 11-7 contained
95 in ITU-T G.8264/Y.1364 document. One may extend this list freely
96 by other ITU-T defined clock qualities, or different ones defined
97 by another standardization body (for those, please use
98 different prefix).
99 entries:
100 -
101 name: itu-opt1-prc
102 value: 1
103 -
104 name: itu-opt1-ssu-a
105 -
106 name: itu-opt1-ssu-b
107 -
108 name: itu-opt1-eec1
109 -
110 name: itu-opt1-prtc
111 -
112 name: itu-opt1-eprtc
113 -
114 name: itu-opt1-eeec
115 -
116 name: itu-opt1-eprc
117 render-max: true
118 -
119 type: const
120 name: temp-divider
121 value: 1000
122 doc: |
123 temperature divider allowing userspace to calculate the
124 temperature as float with three digit decimal precision.
125 Value of (DPLL_A_TEMP / DPLL_TEMP_DIVIDER) is integer part of
126 temperature value.
127 Value of (DPLL_A_TEMP % DPLL_TEMP_DIVIDER) is fractional part of
128 temperature value.
129 -
130 type: enum
131 name: type
132 doc: type of dpll, valid values for DPLL_A_TYPE attribute
133 entries:
134 -
135 name: pps
136 doc: dpll produces Pulse-Per-Second signal
137 value: 1
138 -
139 name: eec
140 doc: dpll drives the Ethernet Equipment Clock
141 render-max: true
142 -
143 type: enum
144 name: pin-type
145 doc: |
146 defines possible types of a pin, valid values for DPLL_A_PIN_TYPE
147 attribute
148 entries:
149 -
150 name: mux
151 doc: aggregates another layer of selectable pins
152 value: 1
153 -
154 name: ext
155 doc: external input
156 -
157 name: synce-eth-port
158 doc: ethernet port PHY's recovered clock
159 -
160 name: int-oscillator
161 doc: device internal oscillator
162 -
163 name: gnss
164 doc: GNSS recovered clock
165 render-max: true
166 -
167 type: enum
168 name: pin-direction
169 doc: |
170 defines possible direction of a pin, valid values for
171 DPLL_A_PIN_DIRECTION attribute
172 entries:
173 -
174 name: input
175 doc: pin used as a input of a signal
176 value: 1
177 -
178 name: output
179 doc: pin used to output the signal
180 render-max: true
181 -
182 type: const
183 name: pin-frequency-1-hz
184 value: 1
185 -
186 type: const
187 name: pin-frequency-10-khz
188 value: 10000
189 -
190 type: const
191 name: pin-frequency-77-5-khz
192 value: 77500
193 -
194 type: const
195 name: pin-frequency-10-mhz
196 value: 10000000
197 -
198 type: enum
199 name: pin-state
200 doc: |
201 defines possible states of a pin, valid values for
202 DPLL_A_PIN_STATE attribute
203 entries:
204 -
205 name: connected
206 doc: pin connected, active input of phase locked loop
207 value: 1
208 -
209 name: disconnected
210 doc: pin disconnected, not considered as a valid input
211 -
212 name: selectable
213 doc: pin enabled for automatic input selection
214 render-max: true
215 -
216 type: flags
217 name: pin-capabilities
218 doc: |
219 defines possible capabilities of a pin, valid flags on
220 DPLL_A_PIN_CAPABILITIES attribute
221 entries:
222 -
223 name: direction-can-change
224 doc: pin direction can be changed
225 -
226 name: priority-can-change
227 doc: pin priority can be changed
228 -
229 name: state-can-change
230 doc: pin state can be changed
231 -
232 type: const
233 name: phase-offset-divider
234 value: 1000
235 doc: |
236 phase offset divider allows userspace to calculate a value of
237 measured signal phase difference between a pin and dpll device
238 as a fractional value with three digit decimal precision.
239 Value of (DPLL_A_PHASE_OFFSET / DPLL_PHASE_OFFSET_DIVIDER) is an
240 integer part of a measured phase offset value.
241 Value of (DPLL_A_PHASE_OFFSET % DPLL_PHASE_OFFSET_DIVIDER) is a
242 fractional part of a measured phase offset value.
243 -
244 type: enum
245 name: feature-state
246 doc: |
247 Allow control (enable/disable) and status checking over features.
248 entries:
249 -
250 name: disable
251 doc: |
252 feature shall be disabled
253 -
254 name: enable
255 doc: |
256 feature shall be enabled
257
258attribute-sets:
259 -
260 name: dpll
261 enum-name: dpll_a
262 attributes:
263 -
264 name: id
265 type: u32
266 -
267 name: module-name
268 type: string
269 -
270 name: pad
271 type: pad
272 -
273 name: clock-id
274 type: u64
275 -
276 name: mode
277 type: u32
278 enum: mode
279 -
280 name: mode-supported
281 type: u32
282 enum: mode
283 multi-attr: true
284 -
285 name: lock-status
286 type: u32
287 enum: lock-status
288 -
289 name: temp
290 type: s32
291 -
292 name: type
293 type: u32
294 enum: type
295 -
296 name: lock-status-error
297 type: u32
298 enum: lock-status-error
299 -
300 name: clock-quality-level
301 type: u32
302 enum: clock-quality-level
303 multi-attr: true
304 doc: |
305 Level of quality of a clock device. This mainly applies when
306 the dpll lock-status is DPLL_LOCK_STATUS_HOLDOVER. This could
307 be put to message multiple times to indicate possible parallel
308 quality levels (e.g. one specified by ITU option 1 and another
309 one specified by option 2).
310 -
311 name: phase-offset-monitor
312 type: u32
313 enum: feature-state
314 doc: Receive or request state of phase offset monitor feature.
315 If enabled, dpll device shall monitor and notify all currently
316 available inputs for changes of their phase offset against the
317 dpll device.
318 -
319 name: phase-offset-avg-factor
320 type: u32
321 doc: Averaging factor applied to calculation of reported phase offset.
322 -
323 name: pin
324 enum-name: dpll_a_pin
325 attributes:
326 -
327 name: id
328 type: u32
329 -
330 name: parent-id
331 type: u32
332 -
333 name: module-name
334 type: string
335 -
336 name: pad
337 type: pad
338 -
339 name: clock-id
340 type: u64
341 -
342 name: board-label
343 type: string
344 -
345 name: panel-label
346 type: string
347 -
348 name: package-label
349 type: string
350 -
351 name: type
352 type: u32
353 enum: pin-type
354 -
355 name: direction
356 type: u32
357 enum: pin-direction
358 -
359 name: frequency
360 type: u64
361 -
362 name: frequency-supported
363 type: nest
364 multi-attr: true
365 nested-attributes: frequency-range
366 -
367 name: frequency-min
368 type: u64
369 -
370 name: frequency-max
371 type: u64
372 -
373 name: prio
374 type: u32
375 -
376 name: state
377 type: u32
378 enum: pin-state
379 -
380 name: capabilities
381 type: u32
382 enum: pin-capabilities
383 -
384 name: parent-device
385 type: nest
386 multi-attr: true
387 nested-attributes: pin-parent-device
388 -
389 name: parent-pin
390 type: nest
391 multi-attr: true
392 nested-attributes: pin-parent-pin
393 -
394 name: phase-adjust-min
395 type: s32
396 -
397 name: phase-adjust-max
398 type: s32
399 -
400 name: phase-adjust
401 type: s32
402 -
403 name: phase-offset
404 type: s64
405 -
406 name: fractional-frequency-offset
407 type: sint
408 doc: |
409 The FFO (Fractional Frequency Offset) between the RX and TX
410 symbol rate on the media associated with the pin:
411 (rx_frequency-tx_frequency)/rx_frequency
412 Value is in PPM (parts per million).
413 This may be implemented for example for pin of type
414 PIN_TYPE_SYNCE_ETH_PORT.
415 -
416 name: esync-frequency
417 type: u64
418 doc: |
419 Frequency of Embedded SYNC signal. If provided, the pin is configured
420 with a SYNC signal embedded into its base clock frequency.
421 -
422 name: esync-frequency-supported
423 type: nest
424 multi-attr: true
425 nested-attributes: frequency-range
426 doc: |
427 If provided a pin is capable of embedding a SYNC signal (within given
428 range) into its base frequency signal.
429 -
430 name: esync-pulse
431 type: u32
432 doc: |
433 A ratio of high to low state of a SYNC signal pulse embedded
434 into base clock frequency. Value is in percents.
435 -
436 name: reference-sync
437 type: nest
438 multi-attr: true
439 nested-attributes: reference-sync
440 doc: |
441 Capable pin provides list of pins that can be bound to create a
442 reference-sync pin pair.
443 -
444 name: phase-adjust-gran
445 type: u32
446 doc: |
447 Granularity of phase adjustment, in picoseconds. The value of
448 phase adjustment must be a multiple of this granularity.
449
450 -
451 name: pin-parent-device
452 subset-of: pin
453 attributes:
454 -
455 name: parent-id
456 -
457 name: direction
458 -
459 name: prio
460 -
461 name: state
462 -
463 name: phase-offset
464 -
465 name: pin-parent-pin
466 subset-of: pin
467 attributes:
468 -
469 name: parent-id
470 -
471 name: state
472 -
473 name: frequency-range
474 subset-of: pin
475 attributes:
476 -
477 name: frequency-min
478 -
479 name: frequency-max
480 -
481 name: reference-sync
482 subset-of: pin
483 attributes:
484 -
485 name: id
486 -
487 name: state
488
489operations:
490 enum-name: dpll_cmd
491 list:
492 -
493 name: device-id-get
494 doc: |
495 Get id of dpll device that matches given attributes
496 attribute-set: dpll
497 flags: [admin-perm]
498
499 do:
500 pre: dpll-lock-doit
501 post: dpll-unlock-doit
502 request:
503 attributes:
504 - module-name
505 - clock-id
506 - type
507 reply:
508 attributes:
509 - id
510
511 -
512 name: device-get
513 doc: |
514 Get list of DPLL devices (dump) or attributes of a single dpll device
515 attribute-set: dpll
516 flags: [admin-perm]
517
518 do:
519 pre: dpll-pre-doit
520 post: dpll-post-doit
521 request:
522 attributes:
523 - id
524 reply: &dev-attrs
525 attributes:
526 - id
527 - module-name
528 - mode
529 - mode-supported
530 - lock-status
531 - lock-status-error
532 - temp
533 - clock-id
534 - type
535 - phase-offset-monitor
536 - phase-offset-avg-factor
537
538 dump:
539 reply: *dev-attrs
540
541 -
542 name: device-set
543 doc: Set attributes for a DPLL device
544 attribute-set: dpll
545 flags: [admin-perm]
546
547 do:
548 pre: dpll-pre-doit
549 post: dpll-post-doit
550 request:
551 attributes:
552 - id
553 - phase-offset-monitor
554 - phase-offset-avg-factor
555 -
556 name: device-create-ntf
557 doc: Notification about device appearing
558 notify: device-get
559 mcgrp: monitor
560 -
561 name: device-delete-ntf
562 doc: Notification about device disappearing
563 notify: device-get
564 mcgrp: monitor
565 -
566 name: device-change-ntf
567 doc: Notification about device configuration being changed
568 notify: device-get
569 mcgrp: monitor
570 -
571 name: pin-id-get
572 doc: |
573 Get id of a pin that matches given attributes
574 attribute-set: pin
575 flags: [admin-perm]
576
577 do:
578 pre: dpll-lock-doit
579 post: dpll-unlock-doit
580 request:
581 attributes:
582 - module-name
583 - clock-id
584 - board-label
585 - panel-label
586 - package-label
587 - type
588 reply:
589 attributes:
590 - id
591
592 -
593 name: pin-get
594 doc: |
595 Get list of pins and its attributes.
596
597 - dump request without any attributes given - list all the pins in the
598 system
599 - dump request with target dpll - list all the pins registered with
600 a given dpll device
601 - do request with target dpll and target pin - single pin attributes
602 attribute-set: pin
603 flags: [admin-perm]
604
605 do:
606 pre: dpll-pin-pre-doit
607 post: dpll-pin-post-doit
608 request:
609 attributes:
610 - id
611 reply: &pin-attrs
612 attributes:
613 - id
614 - module-name
615 - clock-id
616 - board-label
617 - panel-label
618 - package-label
619 - type
620 - frequency
621 - frequency-supported
622 - capabilities
623 - parent-device
624 - parent-pin
625 - phase-adjust-gran
626 - phase-adjust-min
627 - phase-adjust-max
628 - phase-adjust
629 - fractional-frequency-offset
630 - esync-frequency
631 - esync-frequency-supported
632 - esync-pulse
633 - reference-sync
634
635 dump:
636 request:
637 attributes:
638 - id
639 reply: *pin-attrs
640
641 -
642 name: pin-set
643 doc: Set attributes of a target pin
644 attribute-set: pin
645 flags: [admin-perm]
646
647 do:
648 pre: dpll-pin-pre-doit
649 post: dpll-pin-post-doit
650 request:
651 attributes:
652 - id
653 - frequency
654 - direction
655 - prio
656 - state
657 - parent-device
658 - parent-pin
659 - phase-adjust
660 - esync-frequency
661 - reference-sync
662 -
663 name: pin-create-ntf
664 doc: Notification about pin appearing
665 notify: pin-get
666 mcgrp: monitor
667 -
668 name: pin-delete-ntf
669 doc: Notification about pin disappearing
670 notify: pin-get
671 mcgrp: monitor
672 -
673 name: pin-change-ntf
674 doc: Notification about pin configuration being changed
675 notify: pin-get
676 mcgrp: monitor
677
678mcast-groups:
679 list:
680 -
681 name: monitor