[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<PAXPR04MB8510813D4147B167FFFC1E198833A@PAXPR04MB8510.eurprd04.prod.outlook.com>
Date: Wed, 20 Aug 2025 01:32:46 +0000
From: Wei Fang <wei.fang@....com>
To: Frank Li <frank.li@....com>
CC: "robh@...nel.org" <robh@...nel.org>, "krzk+dt@...nel.org"
<krzk+dt@...nel.org>, "conor+dt@...nel.org" <conor+dt@...nel.org>,
"richardcochran@...il.com" <richardcochran@...il.com>, Claudiu Manoil
<claudiu.manoil@....com>, Vladimir Oltean <vladimir.oltean@....com>, Clark
Wang <xiaoning.wang@....com>, "andrew+netdev@...n.ch"
<andrew+netdev@...n.ch>, "davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>, "kuba@...nel.org"
<kuba@...nel.org>, "pabeni@...hat.com" <pabeni@...hat.com>,
"vadim.fedorenko@...ux.dev" <vadim.fedorenko@...ux.dev>,
"shawnguo@...nel.org" <shawnguo@...nel.org>, "s.hauer@...gutronix.de"
<s.hauer@...gutronix.de>, "festevam@...il.com" <festevam@...il.com>, "F.S.
Peng" <fushi.peng@....com>, "devicetree@...r.kernel.org"
<devicetree@...r.kernel.org>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, "imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"kernel@...gutronix.de" <kernel@...gutronix.de>
Subject: RE: [PATCH v4 net-next 01/15] dt-bindings: ptp: add NETC Timer PTP
clock
> 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@....com>
> >
> > ---
> > 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@....com>
> > + - Clark Wang <xiaoning.wang@....com>
> > +
> > +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
> >
Powered by blists - more mailing lists