Re: [PATCH v3 net-next 01/15] dt-bindings: ptp: add NETC Timer PTP clock

Krzysztof Kozlowski
2025-08-15T06:05:19Z

On 14/08/2025 20:50, Frank Li wrote:
> On Thu, Aug 14, 2025 at 10:25:14AM +0200, Krzysztof Kozlowski wrote:
>> On Tue, Aug 12, 2025 at 05:46:20PM +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.
>>>
>>> Signed-off-by: Wei Fang <wei.fang@nxp.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
>>> ---
>>> .../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..60fb2513fd76
>>> --- /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@nxp.com>
>>> + - Clark Wang <xiaoning.wang@nxp.com>
>>> +
>>> +properties:
>>> + compatible:
>>> + enum:
>>> + - pci1131,ee02
>>> +
>>> + reg:
>>> + maxItems: 1
>>> +
>>> + clocks:
>>> + maxItems: 1
>>> + description:
>>> + The reference clock of NETC Timer, if not present, indicates that
>>> + the system clock of NETC IP is selected as the reference clock.
>>> +
>>> + clock-names:
>>> + description:
>>> + The "ccm_timer" means the reference clock comes from CCM of SoC.
>>> + The "ext_1588" means the reference clock comes from external IO
>>> + pins.
>>> + enum:
>>> + - ccm_timer
>>
>> You should name here how the input pin is called, not the source. Pin is
>> "ref"?
>>
>>> + - ext_1588
>>
>> This should be just "ext"? We probably talked about this, but this feels
>> like you describe one input in different ways.
>>
>> You will get the same questions in the future, if commit msg does not
>> reflect previous talks.
>>
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> +
>>> +allOf:
>>> + - $ref: /schemas/pci/pci-device.yaml
>>> +
>>> +unevaluatedProperties: false
>>> +
>>> +examples:
>>> + - |
>>> + pcie {
>>> + #address-cells = <3>;
>>> + #size-cells = <2>;
>>> +
>>> + ethernet@18,0 {
>>
>> That's rather timer or ptp-timer or your binding is incorrect. Please
>> describe COMPLETE device in your binding.
>
> Krzysztof:
>
> I have question about "COMPLETE" here. For some MFD/syscon, I know
> need descript all children nodes to make MFD/syscon complete.
>
> But here it is PCIe device.
>
> pcie_4ca00000: pcie@4ca00000 {
> compatible = "pci-host-ecam-generic";
> ...
>
> enetc_port0: ethernet@0,0 {
> compatible = "fsl,imx95-enetc", "...";
> ...
>
> ptp-timer@18,0 {
> compatible = "pci1131,ee02";
> }
> };
>
> parent "pci-host-ecam-generic" is common pci binding, each children
> is indepentant part.
>
> I am not sure how to decript COMPLETE device for PCI devices.

I don't know what is missing here, but naming it ethernet suggested
there are other functions not being described in the binding.

Best regards,
Krzysztof