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: const
56 name: temp-divider
57 value: 1000
58 doc: |
59 temperature divider allowing userspace to calculate the
60 temperature as float with three digit decimal precision.
61 Value of (DPLL_A_TEMP / DPLL_TEMP_DIVIDER) is integer part of
62 temperature value.
63 Value of (DPLL_A_TEMP % DPLL_TEMP_DIVIDER) is fractional part of
64 temperature value.
65 -
66 type: enum
67 name: type
68 doc: type of dpll, valid values for DPLL_A_TYPE attribute
69 entries:
70 -
71 name: pps
72 doc: dpll produces Pulse-Per-Second signal
73 value: 1
74 -
75 name: eec
76 doc: dpll drives the Ethernet Equipment Clock
77 render-max: true
78 -
79 type: enum
80 name: pin-type
81 doc: |
82 defines possible types of a pin, valid values for DPLL_A_PIN_TYPE
83 attribute
84 entries:
85 -
86 name: mux
87 doc: aggregates another layer of selectable pins
88 value: 1
89 -
90 name: ext
91 doc: external input
92 -
93 name: synce-eth-port
94 doc: ethernet port PHY's recovered clock
95 -
96 name: int-oscillator
97 doc: device internal oscillator
98 -
99 name: gnss
100 doc: GNSS recovered clock
101 render-max: true
102 -
103 type: enum
104 name: pin-direction
105 doc: |
106 defines possible direction of a pin, valid values for
107 DPLL_A_PIN_DIRECTION attribute
108 entries:
109 -
110 name: input
111 doc: pin used as a input of a signal
112 value: 1
113 -
114 name: output
115 doc: pin used to output the signal
116 render-max: true
117 -
118 type: const
119 name: pin-frequency-1-hz
120 value: 1
121 -
122 type: const
123 name: pin-frequency-10-khz
124 value: 10000
125 -
126 type: const
127 name: pin-frequency-77_5-khz
128 value: 77500
129 -
130 type: const
131 name: pin-frequency-10-mhz
132 value: 10000000
133 -
134 type: enum
135 name: pin-state
136 doc: |
137 defines possible states of a pin, valid values for
138 DPLL_A_PIN_STATE attribute
139 entries:
140 -
141 name: connected
142 doc: pin connected, active input of phase locked loop
143 value: 1
144 -
145 name: disconnected
146 doc: pin disconnected, not considered as a valid input
147 -
148 name: selectable
149 doc: pin enabled for automatic input selection
150 render-max: true
151 -
152 type: flags
153 name: pin-capabilities
154 doc: |
155 defines possible capabilities of a pin, valid flags on
156 DPLL_A_PIN_CAPABILITIES attribute
157 entries:
158 -
159 name: direction-can-change
160 doc: pin direction can be changed
161 -
162 name: priority-can-change
163 doc: pin priority can be changed
164 -
165 name: state-can-change
166 doc: pin state can be changed
167 -
168 type: const
169 name: phase-offset-divider
170 value: 1000
171 doc: |
172 phase offset divider allows userspace to calculate a value of
173 measured signal phase difference between a pin and dpll device
174 as a fractional value with three digit decimal precision.
175 Value of (DPLL_A_PHASE_OFFSET / DPLL_PHASE_OFFSET_DIVIDER) is an
176 integer part of a measured phase offset value.
177 Value of (DPLL_A_PHASE_OFFSET % DPLL_PHASE_OFFSET_DIVIDER) is a
178 fractional part of a measured phase offset value.
179
180attribute-sets:
181 -
182 name: dpll
183 enum-name: dpll_a
184 attributes:
185 -
186 name: id
187 type: u32
188 -
189 name: module-name
190 type: string
191 -
192 name: pad
193 type: pad
194 -
195 name: clock-id
196 type: u64
197 -
198 name: mode
199 type: u32
200 enum: mode
201 -
202 name: mode-supported
203 type: u32
204 enum: mode
205 multi-attr: true
206 -
207 name: lock-status
208 type: u32
209 enum: lock-status
210 -
211 name: temp
212 type: s32
213 -
214 name: type
215 type: u32
216 enum: type
217 -
218 name: pin
219 enum-name: dpll_a_pin
220 attributes:
221 -
222 name: id
223 type: u32
224 -
225 name: parent-id
226 type: u32
227 -
228 name: module-name
229 type: string
230 -
231 name: pad
232 type: pad
233 -
234 name: clock-id
235 type: u64
236 -
237 name: board-label
238 type: string
239 -
240 name: panel-label
241 type: string
242 -
243 name: package-label
244 type: string
245 -
246 name: type
247 type: u32
248 enum: pin-type
249 -
250 name: direction
251 type: u32
252 enum: pin-direction
253 -
254 name: frequency
255 type: u64
256 -
257 name: frequency-supported
258 type: nest
259 multi-attr: true
260 nested-attributes: frequency-range
261 -
262 name: frequency-min
263 type: u64
264 -
265 name: frequency-max
266 type: u64
267 -
268 name: prio
269 type: u32
270 -
271 name: state
272 type: u32
273 enum: pin-state
274 -
275 name: capabilities
276 type: u32
277 -
278 name: parent-device
279 type: nest
280 multi-attr: true
281 nested-attributes: pin-parent-device
282 -
283 name: parent-pin
284 type: nest
285 multi-attr: true
286 nested-attributes: pin-parent-pin
287 -
288 name: phase-adjust-min
289 type: s32
290 -
291 name: phase-adjust-max
292 type: s32
293 -
294 name: phase-adjust
295 type: s32
296 -
297 name: phase-offset
298 type: s64
299 -
300 name: pin-parent-device
301 subset-of: pin
302 attributes:
303 -
304 name: parent-id
305 -
306 name: direction
307 -
308 name: prio
309 -
310 name: state
311 -
312 name: phase-offset
313 -
314 name: pin-parent-pin
315 subset-of: pin
316 attributes:
317 -
318 name: parent-id
319 -
320 name: state
321 -
322 name: frequency-range
323 subset-of: pin
324 attributes:
325 -
326 name: frequency-min
327 -
328 name: frequency-max
329
330operations:
331 enum-name: dpll_cmd
332 list:
333 -
334 name: device-id-get
335 doc: |
336 Get id of dpll device that matches given attributes
337 attribute-set: dpll
338 flags: [ admin-perm ]
339
340 do:
341 pre: dpll-lock-doit
342 post: dpll-unlock-doit
343 request:
344 attributes:
345 - module-name
346 - clock-id
347 - type
348 reply:
349 attributes:
350 - id
351
352 -
353 name: device-get
354 doc: |
355 Get list of DPLL devices (dump) or attributes of a single dpll device
356 attribute-set: dpll
357 flags: [ admin-perm ]
358
359 do:
360 pre: dpll-pre-doit
361 post: dpll-post-doit
362 request:
363 attributes:
364 - id
365 reply: &dev-attrs
366 attributes:
367 - id
368 - module-name
369 - mode
370 - mode-supported
371 - lock-status
372 - temp
373 - clock-id
374 - type
375
376 dump:
377 pre: dpll-lock-dumpit
378 post: dpll-unlock-dumpit
379 reply: *dev-attrs
380
381 -
382 name: device-set
383 doc: Set attributes for a DPLL device
384 attribute-set: dpll
385 flags: [ admin-perm ]
386
387 do:
388 pre: dpll-pre-doit
389 post: dpll-post-doit
390 request:
391 attributes:
392 - id
393 -
394 name: device-create-ntf
395 doc: Notification about device appearing
396 notify: device-get
397 mcgrp: monitor
398 -
399 name: device-delete-ntf
400 doc: Notification about device disappearing
401 notify: device-get
402 mcgrp: monitor
403 -
404 name: device-change-ntf
405 doc: Notification about device configuration being changed
406 notify: device-get
407 mcgrp: monitor
408 -
409 name: pin-id-get
410 doc: |
411 Get id of a pin that matches given attributes
412 attribute-set: pin
413 flags: [ admin-perm ]
414
415 do:
416 pre: dpll-lock-doit
417 post: dpll-unlock-doit
418 request:
419 attributes:
420 - module-name
421 - clock-id
422 - board-label
423 - panel-label
424 - package-label
425 - type
426 reply:
427 attributes:
428 - id
429
430 -
431 name: pin-get
432 doc: |
433 Get list of pins and its attributes.
434 - dump request without any attributes given - list all the pins in the
435 system
436 - dump request with target dpll - list all the pins registered with
437 a given dpll device
438 - do request with target dpll and target pin - single pin attributes
439 attribute-set: pin
440 flags: [ admin-perm ]
441
442 do:
443 pre: dpll-pin-pre-doit
444 post: dpll-pin-post-doit
445 request:
446 attributes:
447 - id
448 reply: &pin-attrs
449 attributes:
450 - id
451 - board-label
452 - panel-label
453 - package-label
454 - type
455 - frequency
456 - frequency-supported
457 - capabilities
458 - parent-device
459 - parent-pin
460 - phase-adjust-min
461 - phase-adjust-max
462 - phase-adjust
463
464 dump:
465 pre: dpll-lock-dumpit
466 post: dpll-unlock-dumpit
467 request:
468 attributes:
469 - id
470 reply: *pin-attrs
471
472 -
473 name: pin-set
474 doc: Set attributes of a target pin
475 attribute-set: pin
476 flags: [ admin-perm ]
477
478 do:
479 pre: dpll-pin-pre-doit
480 post: dpll-pin-post-doit
481 request:
482 attributes:
483 - id
484 - frequency
485 - direction
486 - prio
487 - state
488 - parent-device
489 - parent-pin
490 - phase-adjust
491 -
492 name: pin-create-ntf
493 doc: Notification about pin appearing
494 notify: pin-get
495 mcgrp: monitor
496 -
497 name: pin-delete-ntf
498 doc: Notification about pin disappearing
499 notify: pin-get
500 mcgrp: monitor
501 -
502 name: pin-change-ntf
503 doc: Notification about pin configuration being changed
504 notify: pin-get
505 mcgrp: monitor
506
507mcast-groups:
508 list:
509 -
510 name: monitor