Introduce a common schema for DPLL pin consumers. Devices such as Ethernet
controllers and PHYs may require connections to DPLL pins for Synchronous
Ethernet (SyncE) or other frequency synchronization tasks.
Defining these properties in a shared schema ensures consistency across
different device types that consume DPLL resources.
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
---
.../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 31 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
new file mode 100644
index 0000000000000..60c184c18318a
--- /dev/null
+++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DPLL Pin Consumer
+
+maintainers:
+ - Ivan Vecera <ivecera@redhat.com>
+
+description: |
+ Common properties for devices that require connection to DPLL (Digital Phase
+ Locked Loop) pins for frequency synchronization (e.g. SyncE).
+
+properties:
+ dpll-pins:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description:
+ List of phandles to the DPLL pin nodes connected to this device.
+
+ dpll-pin-names:
+ $ref: /schemas/types.yaml#/definitions/string-array
+ description:
+ Names for the DPLL pins defined in 'dpll-pins', in the same order.
+
+dependencies:
+ dpll-pin-names: [ dpll-pins ]
+
+additionalProperties: true
diff --git a/MAINTAINERS b/MAINTAINERS
index 765ad2daa2183..f6f58dfb20931 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7648,6 +7648,7 @@ M: Jiri Pirko <jiri@resnulli.us>
L: netdev@vger.kernel.org
S: Supported
F: Documentation/devicetree/bindings/dpll/dpll-device.yaml
+F: Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml
F: Documentation/driver-api/dpll.rst
F: drivers/dpll/
--
2.52.0
On 1/8/26 7:23 PM, Ivan Vecera wrote: > Introduce a common schema for DPLL pin consumers. Devices such as Ethernet > controllers and PHYs may require connections to DPLL pins for Synchronous > Ethernet (SyncE) or other frequency synchronization tasks. > > Defining these properties in a shared schema ensures consistency across > different device types that consume DPLL resources. > > Signed-off-by: Ivan Vecera <ivecera@redhat.com> > --- > .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 31 insertions(+) > create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > > diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > new file mode 100644 > index 0000000000000..60c184c18318a > --- /dev/null > +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > @@ -0,0 +1,30 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: DPLL Pin Consumer > + > +maintainers: > + - Ivan Vecera <ivecera@redhat.com> > + > +description: | > + Common properties for devices that require connection to DPLL (Digital Phase > + Locked Loop) pins for frequency synchronization (e.g. SyncE). > + > +properties: > + dpll-pins: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + List of phandles to the DPLL pin nodes connected to this device. > + > + dpll-pin-names: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: > + Names for the DPLL pins defined in 'dpll-pins', in the same order. > + > +dependencies: > + dpll-pin-names: [ dpll-pins ] > + > +additionalProperties: true > diff --git a/MAINTAINERS b/MAINTAINERS > index 765ad2daa2183..f6f58dfb20931 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -7648,6 +7648,7 @@ M: Jiri Pirko <jiri@resnulli.us> > L: netdev@vger.kernel.org > S: Supported > F: Documentation/devicetree/bindings/dpll/dpll-device.yaml > +F: Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml > F: Documentation/driver-api/dpll.rst > F: drivers/dpll/ Based on private discussion with Andrew Lunn (thanks a lot), this is wrong approach. Referencing directly dpll-pin nodes and using their phandles in consumers is at least unusual. The right approach should be referencing dpll-device and use cells to specify the dpll pin that is used. Also Krzysztof mentioned there are missing update of supplier_bindings in drivers/of/property.c to ensure that proper dev_links between producer and consumer are created. I will send a v2 of this patch-set with addressed another issues found by patchwork bot and including the DT schema (this patch) to review if it is ok. Thanks, Ivan
On Thu, Jan 15, 2026 at 6:02 AM Ivan Vecera <ivecera@redhat.com> wrote: > > On 1/8/26 7:23 PM, Ivan Vecera wrote: > > Introduce a common schema for DPLL pin consumers. Devices such as Ethernet > > controllers and PHYs may require connections to DPLL pins for Synchronous > > Ethernet (SyncE) or other frequency synchronization tasks. > > > > Defining these properties in a shared schema ensures consistency across > > different device types that consume DPLL resources. > > > > Signed-off-by: Ivan Vecera <ivecera@redhat.com> > > --- > > .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++ > > MAINTAINERS | 1 + > > 2 files changed, 31 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > > > > diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > > new file mode 100644 > > index 0000000000000..60c184c18318a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > > @@ -0,0 +1,30 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: DPLL Pin Consumer > > + > > +maintainers: > > + - Ivan Vecera <ivecera@redhat.com> > > + > > +description: | > > + Common properties for devices that require connection to DPLL (Digital Phase > > + Locked Loop) pins for frequency synchronization (e.g. SyncE). > > + > > +properties: > > + dpll-pins: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + description: > > + List of phandles to the DPLL pin nodes connected to this device. > > + > > + dpll-pin-names: > > + $ref: /schemas/types.yaml#/definitions/string-array > > + description: > > + Names for the DPLL pins defined in 'dpll-pins', in the same order. > > + > > +dependencies: > > + dpll-pin-names: [ dpll-pins ] > > + > > +additionalProperties: true > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 765ad2daa2183..f6f58dfb20931 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -7648,6 +7648,7 @@ M: Jiri Pirko <jiri@resnulli.us> > > L: netdev@vger.kernel.org > > S: Supported > > F: Documentation/devicetree/bindings/dpll/dpll-device.yaml > > +F: Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > > F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml > > F: Documentation/driver-api/dpll.rst > > F: drivers/dpll/ > > Based on private discussion with Andrew Lunn (thanks a lot), this is > wrong approach. Referencing directly dpll-pin nodes and using their > phandles in consumers is at least unusual. > > The right approach should be referencing dpll-device and use cells > to specify the dpll pin that is used. You only need a cells property if you expect the number of cells to vary by provider. However, the DPLL device just appears to be a clock provider and consumer, so why not just use the clock binding here? Also, there is no rule that using foo binding means you have to use foo subsystem in the kernel. Rob
On 1/16/26 4:23 PM, Rob Herring wrote:
> On Thu, Jan 15, 2026 at 6:02 AM Ivan Vecera <ivecera@redhat.com> wrote:
>>
>> On 1/8/26 7:23 PM, Ivan Vecera wrote:
>>> Introduce a common schema for DPLL pin consumers. Devices such as Ethernet
>>> controllers and PHYs may require connections to DPLL pins for Synchronous
>>> Ethernet (SyncE) or other frequency synchronization tasks.
>>>
>>> Defining these properties in a shared schema ensures consistency across
>>> different device types that consume DPLL resources.
>>>
>>> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
>>> ---
>>> .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++
>>> MAINTAINERS | 1 +
>>> 2 files changed, 31 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>> new file mode 100644
>>> index 0000000000000..60c184c18318a
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>> @@ -0,0 +1,30 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: DPLL Pin Consumer
>>> +
>>> +maintainers:
>>> + - Ivan Vecera <ivecera@redhat.com>
>>> +
>>> +description: |
>>> + Common properties for devices that require connection to DPLL (Digital Phase
>>> + Locked Loop) pins for frequency synchronization (e.g. SyncE).
>>> +
>>> +properties:
>>> + dpll-pins:
>>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>>> + description:
>>> + List of phandles to the DPLL pin nodes connected to this device.
>>> +
>>> + dpll-pin-names:
>>> + $ref: /schemas/types.yaml#/definitions/string-array
>>> + description:
>>> + Names for the DPLL pins defined in 'dpll-pins', in the same order.
>>> +
>>> +dependencies:
>>> + dpll-pin-names: [ dpll-pins ]
>>> +
>>> +additionalProperties: true
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 765ad2daa2183..f6f58dfb20931 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -7648,6 +7648,7 @@ M: Jiri Pirko <jiri@resnulli.us>
>>> L: netdev@vger.kernel.org
>>> S: Supported
>>> F: Documentation/devicetree/bindings/dpll/dpll-device.yaml
>>> +F: Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>> F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml
>>> F: Documentation/driver-api/dpll.rst
>>> F: drivers/dpll/
>>
>> Based on private discussion with Andrew Lunn (thanks a lot), this is
>> wrong approach. Referencing directly dpll-pin nodes and using their
>> phandles in consumers is at least unusual.
>>
>> The right approach should be referencing dpll-device and use cells
>> to specify the dpll pin that is used.
>
> You only need a cells property if you expect the number of cells to
> vary by provider.
>
> However, the DPLL device just appears to be a clock provider and
> consumer, so why not just use the clock binding here? Also, there is
> no rule that using foo binding means you have to use foo subsystem in
> the kernel.
Hmm, do you mean something like this example?
&dpll0 {
...
#clock-cells = <2>; /* 1st pin index, 2nd pin type (input/output) */
input-pins {
pin@2 {
reg = <2>;
...
};
pin@4 {
reg = <4>;
...
};
};
output-pins {
pin@3 {
reg = <3>;
};
};
};
&phy0 {
...
clock-names = "rclk0", "rclk1", "synce_ref";
clocks = <&dpll0 2 DPLL_INPUT>,
<&dpll0 4 DPLL_INPUT>,
<&dpll0 3 DPLL_OUTPUT>;
...
};
And in this case the helpers in the patch 3 would use 'clock-names' &
'clocks' properties?
If so... Excuse, I submitted v2 of this patch-set prior to seeing your
email. Please be assured I did not intend to ignore your feedback.
Thanks,
Ivan
On Fri, Jan 16, 2026 at 1:00 PM Ivan Vecera <ivecera@redhat.com> wrote:
>
> On 1/16/26 4:23 PM, Rob Herring wrote:
> > On Thu, Jan 15, 2026 at 6:02 AM Ivan Vecera <ivecera@redhat.com> wrote:
> >>
> >> On 1/8/26 7:23 PM, Ivan Vecera wrote:
> >>> Introduce a common schema for DPLL pin consumers. Devices such as Ethernet
> >>> controllers and PHYs may require connections to DPLL pins for Synchronous
> >>> Ethernet (SyncE) or other frequency synchronization tasks.
> >>>
> >>> Defining these properties in a shared schema ensures consistency across
> >>> different device types that consume DPLL resources.
> >>>
> >>> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
> >>> ---
> >>> .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++
> >>> MAINTAINERS | 1 +
> >>> 2 files changed, 31 insertions(+)
> >>> create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
> >>> new file mode 100644
> >>> index 0000000000000..60c184c18318a
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
> >>> @@ -0,0 +1,30 @@
> >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>> +%YAML 1.2
> >>> +---
> >>> +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml#
> >>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>> +
> >>> +title: DPLL Pin Consumer
> >>> +
> >>> +maintainers:
> >>> + - Ivan Vecera <ivecera@redhat.com>
> >>> +
> >>> +description: |
> >>> + Common properties for devices that require connection to DPLL (Digital Phase
> >>> + Locked Loop) pins for frequency synchronization (e.g. SyncE).
> >>> +
> >>> +properties:
> >>> + dpll-pins:
> >>> + $ref: /schemas/types.yaml#/definitions/phandle-array
> >>> + description:
> >>> + List of phandles to the DPLL pin nodes connected to this device.
> >>> +
> >>> + dpll-pin-names:
> >>> + $ref: /schemas/types.yaml#/definitions/string-array
> >>> + description:
> >>> + Names for the DPLL pins defined in 'dpll-pins', in the same order.
> >>> +
> >>> +dependencies:
> >>> + dpll-pin-names: [ dpll-pins ]
> >>> +
> >>> +additionalProperties: true
> >>> diff --git a/MAINTAINERS b/MAINTAINERS
> >>> index 765ad2daa2183..f6f58dfb20931 100644
> >>> --- a/MAINTAINERS
> >>> +++ b/MAINTAINERS
> >>> @@ -7648,6 +7648,7 @@ M: Jiri Pirko <jiri@resnulli.us>
> >>> L: netdev@vger.kernel.org
> >>> S: Supported
> >>> F: Documentation/devicetree/bindings/dpll/dpll-device.yaml
> >>> +F: Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
> >>> F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml
> >>> F: Documentation/driver-api/dpll.rst
> >>> F: drivers/dpll/
> >>
> >> Based on private discussion with Andrew Lunn (thanks a lot), this is
> >> wrong approach. Referencing directly dpll-pin nodes and using their
> >> phandles in consumers is at least unusual.
> >>
> >> The right approach should be referencing dpll-device and use cells
> >> to specify the dpll pin that is used.
> >
> > You only need a cells property if you expect the number of cells to
> > vary by provider.
> >
> > However, the DPLL device just appears to be a clock provider and
> > consumer, so why not just use the clock binding here? Also, there is
> > no rule that using foo binding means you have to use foo subsystem in
> > the kernel.
>
> Hmm, do you mean something like this example?
>
> &dpll0 {
> ...
> #clock-cells = <2>; /* 1st pin index, 2nd pin type (input/output) */
>
> input-pins {
> pin@2 {
> reg = <2>;
> ...
> };
> pin@4 {
> reg = <4>;
> ...
> };
> };
> output-pins {
> pin@3 {
> reg = <3>;
> };
> };
> };
> &phy0 {
> ...
> clock-names = "rclk0", "rclk1", "synce_ref";
> clocks = <&dpll0 2 DPLL_INPUT>,
> <&dpll0 4 DPLL_INPUT>,
> <&dpll0 3 DPLL_OUTPUT>;
> ...
> };
No, clock providers are always the clock outputs, and clock consumers
are the clock inputs. So something like this:
&dpll0 {
...
#clock-cells = <1>; /* 1st pin index */
// clocks index corresponds to input pins on dpll0 */
clocks = <&phy0 0>, <&phy0 1>, <&phy1 0>, <&phy1 1>
};
&phy0 {
...
#clock-cells = <1>;
clocks = <&dpll0 3>;
...
};
Rob
On 1/17/26 12:39 AM, Rob Herring wrote:
> On Fri, Jan 16, 2026 at 1:00 PM Ivan Vecera <ivecera@redhat.com> wrote:
>>
>> On 1/16/26 4:23 PM, Rob Herring wrote:
>>> On Thu, Jan 15, 2026 at 6:02 AM Ivan Vecera <ivecera@redhat.com> wrote:
>>>>
>>>> On 1/8/26 7:23 PM, Ivan Vecera wrote:
>>>>> Introduce a common schema for DPLL pin consumers. Devices such as Ethernet
>>>>> controllers and PHYs may require connections to DPLL pins for Synchronous
>>>>> Ethernet (SyncE) or other frequency synchronization tasks.
>>>>>
>>>>> Defining these properties in a shared schema ensures consistency across
>>>>> different device types that consume DPLL resources.
>>>>>
>>>>> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
>>>>> ---
>>>>> .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++
>>>>> MAINTAINERS | 1 +
>>>>> 2 files changed, 31 insertions(+)
>>>>> create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>>>> new file mode 100644
>>>>> index 0000000000000..60c184c18318a
>>>>> --- /dev/null
>>>>> +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>>>> @@ -0,0 +1,30 @@
>>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>>> +%YAML 1.2
>>>>> +---
>>>>> +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml#
>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>>> +
>>>>> +title: DPLL Pin Consumer
>>>>> +
>>>>> +maintainers:
>>>>> + - Ivan Vecera <ivecera@redhat.com>
>>>>> +
>>>>> +description: |
>>>>> + Common properties for devices that require connection to DPLL (Digital Phase
>>>>> + Locked Loop) pins for frequency synchronization (e.g. SyncE).
>>>>> +
>>>>> +properties:
>>>>> + dpll-pins:
>>>>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>>>>> + description:
>>>>> + List of phandles to the DPLL pin nodes connected to this device.
>>>>> +
>>>>> + dpll-pin-names:
>>>>> + $ref: /schemas/types.yaml#/definitions/string-array
>>>>> + description:
>>>>> + Names for the DPLL pins defined in 'dpll-pins', in the same order.
>>>>> +
>>>>> +dependencies:
>>>>> + dpll-pin-names: [ dpll-pins ]
>>>>> +
>>>>> +additionalProperties: true
>>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>>> index 765ad2daa2183..f6f58dfb20931 100644
>>>>> --- a/MAINTAINERS
>>>>> +++ b/MAINTAINERS
>>>>> @@ -7648,6 +7648,7 @@ M: Jiri Pirko <jiri@resnulli.us>
>>>>> L: netdev@vger.kernel.org
>>>>> S: Supported
>>>>> F: Documentation/devicetree/bindings/dpll/dpll-device.yaml
>>>>> +F: Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>>>> F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml
>>>>> F: Documentation/driver-api/dpll.rst
>>>>> F: drivers/dpll/
>>>>
>>>> Based on private discussion with Andrew Lunn (thanks a lot), this is
>>>> wrong approach. Referencing directly dpll-pin nodes and using their
>>>> phandles in consumers is at least unusual.
>>>>
>>>> The right approach should be referencing dpll-device and use cells
>>>> to specify the dpll pin that is used.
>>>
>>> You only need a cells property if you expect the number of cells to
>>> vary by provider.
>>>
>>> However, the DPLL device just appears to be a clock provider and
>>> consumer, so why not just use the clock binding here? Also, there is
>>> no rule that using foo binding means you have to use foo subsystem in
>>> the kernel.
>>
>> Hmm, do you mean something like this example?
>>
>> &dpll0 {
>> ...
>> #clock-cells = <2>; /* 1st pin index, 2nd pin type (input/output) */
>>
>> input-pins {
>> pin@2 {
>> reg = <2>;
>> ...
>> };
>> pin@4 {
>> reg = <4>;
>> ...
>> };
>> };
>> output-pins {
>> pin@3 {
>> reg = <3>;
>> };
>> };
>> };
>> &phy0 {
>> ...
>> clock-names = "rclk0", "rclk1", "synce_ref";
>> clocks = <&dpll0 2 DPLL_INPUT>,
>> <&dpll0 4 DPLL_INPUT>,
>> <&dpll0 3 DPLL_OUTPUT>;
>> ...
>> };
>
> No, clock providers are always the clock outputs, and clock consumers
> are the clock inputs. So something like this:
>
> &dpll0 {
> ...
> #clock-cells = <1>; /* 1st pin index */
>
> // clocks index corresponds to input pins on dpll0 */
> clocks = <&phy0 0>, <&phy0 1>, <&phy1 0>, <&phy1 1>
> };
> &phy0 {
> ...
> #clock-cells = <1>;
> clocks = <&dpll0 3>;
> ...
> };
Fully understand now... will modify the patch-set accordingly.
Thanks for the advises.
Ivan
On Thu, Jan 08, 2026 at 07:23:07PM +0100, Ivan Vecera wrote: > Introduce a common schema for DPLL pin consumers. Devices such as Ethernet > controllers and PHYs may require connections to DPLL pins for Synchronous > Ethernet (SyncE) or other frequency synchronization tasks. > > Defining these properties in a shared schema ensures consistency across > different device types that consume DPLL resources. > > Signed-off-by: Ivan Vecera <ivecera@redhat.com> > --- > .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 31 insertions(+) > create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > > diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > new file mode 100644 > index 0000000000000..60c184c18318a > --- /dev/null > +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml > @@ -0,0 +1,30 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: DPLL Pin Consumer > + > +maintainers: > + - Ivan Vecera <ivecera@redhat.com> > + You miss select. Without it this binding is no-op. > +description: | Drop | > + Common properties for devices that require connection to DPLL (Digital Phase > + Locked Loop) pins for frequency synchronization (e.g. SyncE). > + > +properties: > + dpll-pins: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: > + List of phandles to the DPLL pin nodes connected to this device. > + > + dpll-pin-names: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: > + Names for the DPLL pins defined in 'dpll-pins', in the same order. > + > +dependencies: > + dpll-pin-names: [ dpll-pins ] Binding should go to dtschema. See also commit 3282a891060aace02e3eed4789739768060cea32 in dtschema or other examples how to add new provider/consumer properties. Best regards, Krzysztof
On 1/9/26 10:48 AM, Krzysztof Kozlowski wrote: > On Thu, Jan 08, 2026 at 07:23:07PM +0100, Ivan Vecera wrote: >> Introduce a common schema for DPLL pin consumers. Devices such as Ethernet >> controllers and PHYs may require connections to DPLL pins for Synchronous >> Ethernet (SyncE) or other frequency synchronization tasks. >> >> Defining these properties in a shared schema ensures consistency across >> different device types that consume DPLL resources. >> >> Signed-off-by: Ivan Vecera <ivecera@redhat.com> >> --- >> .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++ >> MAINTAINERS | 1 + >> 2 files changed, 31 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml >> >> diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml >> new file mode 100644 >> index 0000000000000..60c184c18318a >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml >> @@ -0,0 +1,30 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: DPLL Pin Consumer >> + >> +maintainers: >> + - Ivan Vecera <ivecera@redhat.com> >> + > > You miss select. Without it this binding is no-op. Will fix. >> +description: | > > Drop | Will do. >> + Common properties for devices that require connection to DPLL (Digital Phase >> + Locked Loop) pins for frequency synchronization (e.g. SyncE). >> + >> +properties: >> + dpll-pins: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: >> + List of phandles to the DPLL pin nodes connected to this device. >> + >> + dpll-pin-names: >> + $ref: /schemas/types.yaml#/definitions/string-array >> + description: >> + Names for the DPLL pins defined in 'dpll-pins', in the same order. >> + >> +dependencies: >> + dpll-pin-names: [ dpll-pins ] > > Binding should go to dtschema. See also commit > 3282a891060aace02e3eed4789739768060cea32 in dtschema or other examples > how to add new provider/consumer properties. Will do. Thanks for advice... Ivan
On 1/9/26 11:22 AM, Ivan Vecera wrote:
>
>
> On 1/9/26 10:48 AM, Krzysztof Kozlowski wrote:
>> On Thu, Jan 08, 2026 at 07:23:07PM +0100, Ivan Vecera wrote:
>>> Introduce a common schema for DPLL pin consumers. Devices such as
>>> Ethernet
>>> controllers and PHYs may require connections to DPLL pins for
>>> Synchronous
>>> Ethernet (SyncE) or other frequency synchronization tasks.
>>>
>>> Defining these properties in a shared schema ensures consistency across
>>> different device types that consume DPLL resources.
>>>
>>> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
>>> ---
>>> .../bindings/dpll/dpll-pin-consumer.yaml | 30 +++++++++++++++++++
>>> MAINTAINERS | 1 +
>>> 2 files changed, 31 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/dpll/dpll-pin-
>>> consumer.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/dpll/dpll-pin-
>>> consumer.yaml b/Documentation/devicetree/bindings/dpll/dpll-pin-
>>> consumer.yaml
>>> new file mode 100644
>>> index 0000000000000..60c184c18318a
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/dpll/dpll-pin-consumer.yaml
>>> @@ -0,0 +1,30 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/dpll/dpll-pin-consumer.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: DPLL Pin Consumer
>>> +
>>> +maintainers:
>>> + - Ivan Vecera <ivecera@redhat.com>
>>> +
>>
>> You miss select. Without it this binding is no-op.
>
> Will fix.
>
>>> +description: |
>>
>> Drop |
>
> Will do.
>
>>> + Common properties for devices that require connection to DPLL
>>> (Digital Phase
>>> + Locked Loop) pins for frequency synchronization (e.g. SyncE).
>>> +
>>> +properties:
>>> + dpll-pins:
>>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>>> + description:
>>> + List of phandles to the DPLL pin nodes connected to this device.
>>> +
>>> + dpll-pin-names:
>>> + $ref: /schemas/types.yaml#/definitions/string-array
>>> + description:
>>> + Names for the DPLL pins defined in 'dpll-pins', in the same
>>> order.
>>> +
>>> +dependencies:
>>> + dpll-pin-names: [ dpll-pins ]
>>
>> Binding should go to dtschema. See also commit
>> 3282a891060aace02e3eed4789739768060cea32 in dtschema or other examples
>> how to add new provider/consumer properties.
Quick questions... if the dpll pin consumer properties schema should go
to dtschema...
1) Should I remove this patch from this series? So this schema won't be
a part of kernel
2) dtschema does not contain dpll-device and dpll-pin schemas now, I
expect they should be added as well... or? I'm asking because there
is also e.g. hwlock-consumer.yaml in dtschema but no hwlock
Thanks,
Ivan
> Will do.
>
> Thanks for advice...
>
> Ivan
>
On 09/01/2026 15:11, Ivan Vecera wrote: >>>> + Common properties for devices that require connection to DPLL >>>> (Digital Phase >>>> + Locked Loop) pins for frequency synchronization (e.g. SyncE). >>>> + >>>> +properties: >>>> + dpll-pins: >>>> + $ref: /schemas/types.yaml#/definitions/phandle-array >>>> + description: >>>> + List of phandles to the DPLL pin nodes connected to this device. >>>> + >>>> + dpll-pin-names: >>>> + $ref: /schemas/types.yaml#/definitions/string-array >>>> + description: >>>> + Names for the DPLL pins defined in 'dpll-pins', in the same >>>> order. >>>> + >>>> +dependencies: >>>> + dpll-pin-names: [ dpll-pins ] >>> >>> Binding should go to dtschema. See also commit >>> 3282a891060aace02e3eed4789739768060cea32 in dtschema or other examples >>> how to add new provider/consumer properties. > > Quick questions... if the dpll pin consumer properties schema should go > to dtschema... > > 1) Should I remove this patch from this series? So this schema won't be > a part of kernel Yes. > 2) dtschema does not contain dpll-device and dpll-pin schemas now, I The provider, so the #foo-cells should be in dtschema as well. > expect they should be added as well... or? I'm asking because there > is also e.g. hwlock-consumer.yaml in dtschema but no hwlock hwlock-cells are missing, probably due to licensing. Best regards, Krzysztof
On 1/12/26 5:14 PM, Krzysztof Kozlowski wrote: > On 09/01/2026 15:11, Ivan Vecera wrote: >>>>> + Common properties for devices that require connection to DPLL >>>>> (Digital Phase >>>>> + Locked Loop) pins for frequency synchronization (e.g. SyncE). >>>>> + >>>>> +properties: >>>>> + dpll-pins: >>>>> + $ref: /schemas/types.yaml#/definitions/phandle-array >>>>> + description: >>>>> + List of phandles to the DPLL pin nodes connected to this device. >>>>> + >>>>> + dpll-pin-names: >>>>> + $ref: /schemas/types.yaml#/definitions/string-array >>>>> + description: >>>>> + Names for the DPLL pins defined in 'dpll-pins', in the same >>>>> order. >>>>> + >>>>> +dependencies: >>>>> + dpll-pin-names: [ dpll-pins ] >>>> >>>> Binding should go to dtschema. See also commit >>>> 3282a891060aace02e3eed4789739768060cea32 in dtschema or other examples >>>> how to add new provider/consumer properties. >> >> Quick questions... if the dpll pin consumer properties schema should go >> to dtschema... >> >> 1) Should I remove this patch from this series? So this schema won't be >> a part of kernel > > Yes. OK, will remove this patch from the series and create PR against dtschema and ... >> 2) dtschema does not contain dpll-device and dpll-pin schemas now, I > > The provider, so the #foo-cells should be in dtschema as well. ... include dpll.yaml and dpll-pin.yaml as well. >> expect they should be added as well... or? I'm asking because there >> is also e.g. hwlock-consumer.yaml in dtschema but no hwlock > > hwlock-cells are missing, probably due to licensing. and I will also include '#dpll-pin-cells', as we cannot theoretically rule out its usage in the future. Thanks, Ivan
On 1/12/26 5:48 PM, Ivan Vecera wrote: > > > On 1/12/26 5:14 PM, Krzysztof Kozlowski wrote: >> On 09/01/2026 15:11, Ivan Vecera wrote: >>>>>> + Common properties for devices that require connection to DPLL >>>>>> (Digital Phase >>>>>> + Locked Loop) pins for frequency synchronization (e.g. SyncE). >>>>>> + >>>>>> +properties: >>>>>> + dpll-pins: >>>>>> + $ref: /schemas/types.yaml#/definitions/phandle-array >>>>>> + description: >>>>>> + List of phandles to the DPLL pin nodes connected to this >>>>>> device. >>>>>> + >>>>>> + dpll-pin-names: >>>>>> + $ref: /schemas/types.yaml#/definitions/string-array >>>>>> + description: >>>>>> + Names for the DPLL pins defined in 'dpll-pins', in the same >>>>>> order. >>>>>> + >>>>>> +dependencies: >>>>>> + dpll-pin-names: [ dpll-pins ] >>>>> >>>>> Binding should go to dtschema. See also commit >>>>> 3282a891060aace02e3eed4789739768060cea32 in dtschema or other examples >>>>> how to add new provider/consumer properties. >>> >>> Quick questions... if the dpll pin consumer properties schema should go >>> to dtschema... >>> >>> 1) Should I remove this patch from this series? So this schema won't be >>> a part of kernel >> >> Yes. > > OK, will remove this patch from the series and create PR against > dtschema and ... > >>> 2) dtschema does not contain dpll-device and dpll-pin schemas now, I >> >> The provider, so the #foo-cells should be in dtschema as well. > > ... include dpll.yaml and dpll-pin.yaml as well. Well, after dtschema investigation, I should make a PR with dpll-pin-consumer.yaml and dpll-pin-producer.yaml. Correct? Thanks, Ivan
© 2016 - 2026 Red Hat, Inc.