RE: [PATCH v4 net-next 01/15] dt-bindings: ptp: add NETC Timer PTP clock
From: Wei Fang
Date: Tue Aug 19 2025 - 21:33:09 EST
> On Tue, Aug 19, 2025 at 08:36:06PM +0800, Wei Fang wrote:
> > NXP NETC (Ethernet Controller) is a multi-function PCIe Root Complex
> > Integrated Endpoint (RCiEP), the Timer is one of its functions which
> > provides current time with nanosecond resolution, precise periodic
> > pulse, pulse on timeout (alarm), and time capture on external pulse
> > support. And also supports time synchronization as required for IEEE
> > 1588 and IEEE 802.1AS-2020. So add device tree binding doc for the PTP
> > clock based on NETC Timer.
> >
> > It is worth mentioning that the reference clock of NETC Timer has three
> > clock sources, but the clock mux is inside the NETC Timer. Therefore, the
> > driver will parse the clock name to select the desired clock source. If
> > the clocks property is not present, the NETC Timer will use the system
> > clock of NETC IP as its reference clock. Because the Timer is a PCIe
> > function of NETC IP, the system clock of NETC is always available to the
> > Timer.
> >
> > Signed-off-by: Wei Fang <wei.fang@xxxxxxx>
> >
> > ---
> > v2 changes:
> > 1. Refine the subject and the commit message
> > 2. Remove "nxp,pps-channel"
> > 3. Add description to "clocks" and "clock-names"
> > v3 changes:
> > 1. Remove the "system" clock from clock-names
> > v4 changes:
> > 1. Add the description of reference clock in the commit message
> > 2. Improve the description of clocks property
> > 3. Remove the description of clock-names because we have described it in
> > clocks property
> > 4. Change the node name from ethernet to ptp-timer
> > ---
> > .../devicetree/bindings/ptp/nxp,ptp-netc.yaml | 63 +++++++++++++++++++
> > 1 file changed, 63 insertions(+)
> > create mode 100644
> Documentation/devicetree/bindings/ptp/nxp,ptp-netc.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/ptp/nxp,ptp-netc.yaml
> b/Documentation/devicetree/bindings/ptp/nxp,ptp-netc.yaml
> > new file mode 100644
> > index 000000000000..f3871c6b6afd
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/ptp/nxp,ptp-netc.yaml
> > @@ -0,0 +1,63 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/ptp/nxp,ptp-netc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: NXP NETC V4 Timer PTP clock
> > +
> > +description:
> > + NETC V4 Timer provides current time with nanosecond resolution, precise
> > + periodic pulse, pulse on timeout (alarm), and time capture on external
> > + pulse support. And it supports time synchronization as required for
> > + IEEE 1588 and IEEE 802.1AS-2020.
> > +
> > +maintainers:
> > + - Wei Fang <wei.fang@xxxxxxx>
> > + - Clark Wang <xiaoning.wang@xxxxxxx>
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - pci1131,ee02
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + clocks:
> > + maxItems: 1
> > + description:
> > + The reference clock of NETC Timer, can be selected between 3
> different
> > + clock sources using an integrated hardware mux TMR_CTRL[CK_SEL].
> > + The "ccm_timer" means the reference clock comes from CCM of SoC.
> > + The "ext_1588" means the reference clock comes from external IO
> pins.
> > + If not present, indicates that the system clock of NETC IP is selected
> > + as the reference clock.
>
> NETC timer reference clock have 3 clock inputs, sys: from RCiEP,
> ccm: from CCM of Soc, ext: from external IO pins. Internal have
> clock mux, only one of three need be provided. Default it is from
> RCiEP system clock.
>
> > +
> > + clock-names:
> > + enum:
> > + - ccm_timer
>
> look like just ccm is enough.
>
> > + - ext_1588
>
> Missed kk's comments at v3.
>
> "This should be just "ext"? We probably talked about this, but this feels
> like you describe one input in different ways."
>
> it should be "ext"!
Thanks for reminder, I will change it.
>
> Frank
>
> > +
> > +required:
> > + - compatible
> > + - reg
> > +
> > +allOf:
> > + - $ref: /schemas/pci/pci-device.yaml
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + pcie {
> > + #address-cells = <3>;
> > + #size-cells = <2>;
> > +
> > + ptp-timer@18,0 {
> > + compatible = "pci1131,ee02";
> > + reg = <0x00c000 0 0 0 0>;
> > + clocks = <&scmi_clk 18>;
> > + clock-names = "ccm_timer";
> > + };
> > + };
> > --
> > 2.34.1
> >