Lines Matching full:dpll
4 The Linux kernel dpll subsystem
7 DPLL chapter
14 DPLL - Digital Phase Locked Loop is an integrated circuit which in
17 DPLL's input and output may be configurable.
22 The main purpose of dpll subsystem is to provide general interface
32 Single dpll device object means single Digital PLL circuit and bunch of
38 Changing the configuration of dpll device is done with `do` request of
52 The number of pins per dpll vary, but usually multiple pins shall be
53 provided for a single dpll device.
68 In general, selected pin (the one which signal is driving the dpll
70 one pin shall be in ``DPLL_PIN_STATE_CONNECTED`` state for any dpll
74 on hardware capabilities and active dpll device work mode
77 for the states the user can request for a dpll device.
82 - ``DPLL_PIN_STATE_CONNECTED`` - the pin is used to drive dpll device
83 - ``DPLL_PIN_STATE_DISCONNECTED`` - the pin is not used to drive dpll
96 algorithm locks a dpll device with one of the inputs.
101 A single pin object can be attached to multiple dpll devices.
104 1) Set on a pin - the configuration affects all dpll devices pin is
106 2) Set on a pin-dpll tuple - the configuration affects only selected
107 dpll device (i.e., ``DPLL_A_PIN_PRIO``, ``DPLL_A_PIN_STATE``,
115 being directly registered to a dpll device.
155 means only pins directly connected to the dpll can be used for automatic
160 pick a highest priority valid signal and use it to control the DPLL
166 related to parent dpll device
167 ``DPLL_A_PIN_PARENT_ID`` parent dpll device id
168 ``DPLL_A_PIN_PRIO`` requested pin prio on parent dpll
180 on a pin and its parent dpll device. If pin-dpll phase offset measurement
182 attribute for each parent dpll device.
197 adjustment on parent dpll device
199 configuration on given parent dpll
201 ``DPLL_A_PIN_PARENT_ID`` parent dpll device id
203 between a pin and parent dpll device
208 phase of signal on pin is earlier in time than dpll's signal. Positive
210 a dpll.
221 source. However, some DPLL (Digital Phase-Locked Loop) devices may offer
224 message of the ``DPLL_CMD_DEVICE_GET`` command for supported DPLL devices.
261 from both inputs are used to synchronize the DPLL device. The higher frequency
262 signal is utilized for the loop bandwidth of the DPLL, while the lower frequency
263 signal is used to syntonize the output signal of the DPLL device. This feature
285 dpll devices (and pins), as well as set configuration of device or pins.
286 As dpll devices must be abstracted and reflect real hardware,
287 there is no way to add new dpll device via netlink from user space and
296 Constants identifying command types for dpll device uses a
298 The dpll device related attributes use a ``DPLL_A_`` prefix and
307 ``DPLL_A_TYPE`` attr type of dpll device
313 ``DPLL_A_ID`` attr unique dpll device ID
320 ``DPLL_A_LOCK_STATUS`` attr dpll device lock status
322 ``DPLL_A_TYPE`` attr type of dpll device
326 ``DPLL_CMD_DEVICE_SET`` command to set dpll device config
327 ``DPLL_A_ID`` attr internal dpll device index
379 ``DPLL_A_PIN_PARENT_ID`` attr parent dpll device id
381 dpll device
383 dpll device
385 parent dpll device
387 between a pin and parent dpll
402 ``DPLL_A_PIN_PARENT_DEVICE`` nested attr for each parent dpll
404 ``DPLL_A_PIN_PARENT_ID`` attr parent dpll device id
407 the dpll device
409 the dpll device
428 ``DPLL_CMD_DEVICE_SET`` - to target a dpll device, the user provides
429 ``DPLL_A_ID``, which is unique identifier of dpll device in the system,
435 If ``DPLL_A_PIN_FREQUENCY`` is configured, this affects all the dpll
454 .. kernel-doc:: include/uapi/linux/dpll.h
459 dpll device can provide notifications regarding status changes of the
467 ``DPLL_CMD_DEVICE_CREATE_NTF`` dpll device was created
468 ``DPLL_CMD_DEVICE_DELETE_NTF`` dpll device was deleted
469 ``DPLL_CMD_DEVICE_CHANGE_NTF`` dpll device has changed
470 ``DPLL_CMD_PIN_CREATE_NTF`` dpll pin was created
471 ``DPLL_CMD_PIN_DELETE_NTF`` dpll pin was deleted
472 ``DPLL_CMD_PIN_CHANGE_NTF`` dpll pin has changed
495 dpll_device_get(), as well as register dpll device with their own
503 A pin can be registered with parent dpll device or parent pin, depending
507 - dpll_pin_register() - register pin with a dpll device,
510 Notifications of adding or removing dpll devices are created within
514 Notifications about status changes either of dpll device or a pin are
517 - after successful change was requested on dpll subsystem, the subsystem
522 The device driver using dpll interface is not required to implement all
525 Required dpll device level callback operations:
532 - ``.state_on_dpll_get`` (pins registered with dpll device),
563 bp->dpll = dpll_device_get(clkid, 0, THIS_MODULE);
564 if (IS_ERR(bp->dpll)) {
565 err = PTR_ERR(bp->dpll);
570 err = dpll_device_register(bp->dpll, DPLL_TYPE_PPS, &dpll_ops, bp);
577 err = PTR_ERR(bp->dpll);
581 err = dpll_pin_register(bp->dpll, bp->sma[i].dpll_pin, &dpll_pins_ops,
595 dpll_pin_unregister(bp->dpll, bp->sma[i].dpll_pin, &dpll_pins_ops, &bp->sma[i]);
598 dpll_device_put(bp->dpll);
604 For SyncE enablement it is required to allow control over dpll device
606 dpll device in response to current state of a dpll device and its
608 In such scenario, dpll device input signal shall be also configurable
609 to drive dpll with signal recovered from the PHY netdevice.