Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: dpll: Add DPLL device and pin

Add a common DT schema for DPLL device and its associated pins.
The DPLL (device phase-locked loop) is a device used for precise clock
synchronization in networking and telecom hardware.

The device includes one or more DPLLs (channels) and one or more
physical input/output pins.

Each DPLL channel is used either to provide a pulse-per-clock signal or
to drive an Ethernet equipment clock.

The input and output pins have the following properties:
* label: specifies board label
* connection type: specifies its usage depending on wiring
* list of supported or allowed frequencies: depending on how the pin
is connected and where)
* embedded sync capability: indicates whether the pin supports this

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://patch.msgid.link/20250704182202.1641943-2-ivecera@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Ivan Vecera and committed by
Jakub Kicinski
0afcee10 f47e8f61

+123
+76
Documentation/devicetree/bindings/dpll/dpll-device.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/dpll/dpll-device.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Digital Phase-Locked Loop (DPLL) Device 8 + 9 + maintainers: 10 + - Ivan Vecera <ivecera@redhat.com> 11 + 12 + description: 13 + Digital Phase-Locked Loop (DPLL) device is used for precise clock 14 + synchronization in networking and telecom hardware. The device can 15 + have one or more channels (DPLLs) and one or more physical input and 16 + output pins. Each DPLL channel can either produce pulse-per-clock signal 17 + or drive ethernet equipment clock. The type of each channel can be 18 + indicated by dpll-types property. 19 + 20 + properties: 21 + $nodename: 22 + pattern: "^dpll(@.*)?$" 23 + 24 + "#address-cells": 25 + const: 0 26 + 27 + "#size-cells": 28 + const: 0 29 + 30 + dpll-types: 31 + description: List of DPLL channel types, one per DPLL instance. 32 + $ref: /schemas/types.yaml#/definitions/non-unique-string-array 33 + items: 34 + enum: [pps, eec] 35 + 36 + input-pins: 37 + type: object 38 + description: DPLL input pins 39 + unevaluatedProperties: false 40 + 41 + properties: 42 + "#address-cells": 43 + const: 1 44 + "#size-cells": 45 + const: 0 46 + 47 + patternProperties: 48 + "^pin@[0-9a-f]+$": 49 + $ref: /schemas/dpll/dpll-pin.yaml 50 + unevaluatedProperties: false 51 + 52 + required: 53 + - "#address-cells" 54 + - "#size-cells" 55 + 56 + output-pins: 57 + type: object 58 + description: DPLL output pins 59 + unevaluatedProperties: false 60 + 61 + properties: 62 + "#address-cells": 63 + const: 1 64 + "#size-cells": 65 + const: 0 66 + 67 + patternProperties: 68 + "^pin@[0-9]+$": 69 + $ref: /schemas/dpll/dpll-pin.yaml 70 + unevaluatedProperties: false 71 + 72 + required: 73 + - "#address-cells" 74 + - "#size-cells" 75 + 76 + additionalProperties: true
+45
Documentation/devicetree/bindings/dpll/dpll-pin.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/dpll/dpll-pin.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: DPLL Pin 8 + 9 + maintainers: 10 + - Ivan Vecera <ivecera@redhat.com> 11 + 12 + description: | 13 + The DPLL pin is either a physical input or output pin that is provided 14 + by a DPLL( Digital Phase-Locked Loop) device. The pin is identified by 15 + its physical order number that is stored in reg property and can have 16 + an additional set of properties like supported (allowed) frequencies, 17 + label, type and may support embedded sync. 18 + 19 + Note that the pin in this context has nothing to do with pinctrl. 20 + 21 + properties: 22 + reg: 23 + description: Hardware index of the DPLL pin. 24 + maxItems: 1 25 + 26 + connection-type: 27 + description: Connection type of the pin 28 + $ref: /schemas/types.yaml#/definitions/string 29 + enum: [ext, gnss, int, mux, synce] 30 + 31 + esync-control: 32 + description: Indicates whether the pin supports embedded sync functionality. 33 + type: boolean 34 + 35 + label: 36 + description: String exposed as the pin board label 37 + $ref: /schemas/types.yaml#/definitions/string 38 + 39 + supported-frequencies-hz: 40 + description: List of supported frequencies for this pin, expressed in Hz. 41 + 42 + required: 43 + - reg 44 + 45 + additionalProperties: false
+2
MAINTAINERS
··· 7335 7335 M: Jiri Pirko <jiri@resnulli.us> 7336 7336 L: netdev@vger.kernel.org 7337 7337 S: Supported 7338 + F: Documentation/devicetree/bindings/dpll/dpll-device.yaml 7339 + F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml 7338 7340 F: Documentation/driver-api/dpll.rst 7339 7341 F: drivers/dpll/* 7340 7342 F: include/linux/dpll.h