public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Ivan Vecera <ivecera@redhat.com>
To: Rob Herring <robh@kernel.org>
Cc: Andrew Lunn <andrew@lunn.ch>,
	netdev@vger.kernel.org, Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Vadim Fedorenko <vadim.fedorenko@linux.dev>,
	Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
	Grzegorz Nitka <grzegorz.nitka@intel.com>,
	Jiri Pirko <jiri@resnulli.us>, Petr Oros <poros@redhat.com>,
	Michal Schmidt <mschmidt@redhat.com>,
	Prathosh Satish <Prathosh.Satish@microchip.com>,
	Tony Nguyen <anthony.l.nguyen@intel.com>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	Saeed Mahameed <saeedm@nvidia.com>,
	Leon Romanovsky <leon@kernel.org>,
	Tariq Toukan <tariqt@nvidia.com>, Mark Bloch <mbloch@nvidia.com>,
	Richard Cochran <richardcochran@gmail.com>,
	Jonathan Lemon <jonathan.lemon@gmail.com>,
	Simon Horman <horms@kernel.org>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	Willem de Bruijn <willemb@google.com>,
	Stefan Wahren <wahrenst@gmx.net>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	intel-wired-lan@lists.osuosl.org, linux-rdma@vger.kernel.org,
	Horatiu Vultur <Horatiu.Vultur@microchip.com>
Subject: Re: [PATCH RFC net-next 01/13] dt-bindings: net: ethernet-controller: Add DPLL pin properties
Date: Wed, 7 Jan 2026 17:23:40 +0100	[thread overview]
Message-ID: <66815c08-8408-4651-b039-d47925ae125e@redhat.com> (raw)
In-Reply-To: <CAL_JsqJoybgJTAbSjGbTBxo-v=dbYY68tT309CV98=ohWhnC=w@mail.gmail.com>

Hi Rob,

On 1/7/26 4:15 PM, Rob Herring wrote:
> On Mon, Jan 5, 2026 at 10:24 AM Ivan Vecera <ivecera@redhat.com> wrote:
>>
>> On 12/17/25 1:49 AM, Rob Herring wrote:
>>> On Thu, Dec 11, 2025 at 08:56:52PM +0100, Andrew Lunn wrote:
>>>> On Thu, Dec 11, 2025 at 08:47:44PM +0100, Ivan Vecera wrote:
>>>>> Ethernet controllers may be connected to DPLL (Digital Phase Locked Loop)
>>>>> pins for frequency synchronization purposes, such as in Synchronous
>>>>> Ethernet (SyncE) configurations.
>>>>>
>>>>> Add 'dpll-pins' and 'dpll-pin-names' properties to the generic
>>>>> ethernet-controller schema. This allows describing the physical
>>>>> connections between the Ethernet controller and the DPLL subsystem pins
>>>>> in the Device Tree, enabling drivers to request and manage these
>>>>> resources.
>>>>
>>>> Please include a .dts patch in the series which actually makes use of
>>>> these new properties.
>>>
>>> Actually, first you need a device (i.e. a specific ethernet
>>> controller bindings) using this and defining the number of dpll-pins
>>> entries and the names.
>>
>> The goal of this patch is to define properties that allow referencing
>> dpll pins from other devices. I included it in this series to allow
>> implementing helpers that use the property names defined in the schema.
>>
>> This series implements the dpll pin consumer in the ice driver. This is
>> usually present on ACPI platforms, so the properties are stored in _DSD
>> ACPI nodes. Although I don't have a DT user right now, isn't it better
>> to define the schema now?
> 
> I have no idea what makes sense for ACPI and little interest in
> reviewing ACPI bindings. While I think the whole idea of shared
> bindings is questionable, really it's a question of review bandwidth
> and so far no one has stepped up to review ACPI bindings.

It depends... shared bindings allow drivers to read property values
without need to have separate OF and ACPI codepaths.

>> Thinking about this further, consumers could be either an Ethernet
>> controller (where the PHY is not exposed and is driven directly by the
>> NIC driver) or an Ethernet PHY.
>>
>> For the latter case (Ethernet PHY), I have been preparing a similar
>> implementation for the Micrel phy driver (lan8814) on the Microchip EDS2
>> board (pcb8385). Unfortunately, the DTS is not upstreamed yet [1], so I
>> cannot include the necessary bindings here.
>>
>> Since there can be multiple consumer types (Ethernet controller or PHY),
>> would it be better to define a dpll-pin-consumer.yaml schema instead
>> (similar to mux-consumer)?
> 
> The consumer type doesn't matter for that. What matters is you have
> specific device bindings and if they are consumers of some
> provider/consumer style binding, then typically each device binding
> has to define the constraints if there can be multiple
> entries/connections (e.g. how many interrupts, clocks, etc. and what
> each one is).
> 
> Hard to say what's needed for DPLL exactly because I know next to
> nothing about it.

The motivation is to describe the interconnection between an Ethernet
controller (or PHY) and a DPLL device. In SyncE scenarios, the NIC or
PHY provides a recovered clock output received from the physical port,
and the signal is routed to specific DPLL pin(s). The DPLL device then
locks onto this signal, filters jitter/wander, and provides a stable,
phase-aligned clock back to the NIC. When a NIC or PHY package supports
multiple Ethernet ports, it may allow selecting which port's recovered
clock signal is routed to the DPLL pin.

The goal of this entire series is to allow NIC drivers to register their
own pins (per port) on top of existing pins from the DPLL device. To do
so, it is necessary to know which DPLL device pin is connected to the
NIC's recovered clock output.

The NIC/PHY acts as a consumer of the DPLL pin(s) provided by the DPLL
device. As I mentioned in my previous email, I am working on the
implementation of this feature (recovered clock selection) for the
Micrel driver (a DT area user). If it is acceptable to you, I can omit
the first patch that introduces DT properties from this series and add
it to the series that will introduce the feature for the Micrel driver.

Thanks,
Ivan


  reply	other threads:[~2026-01-07 16:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-11 19:47 [PATCH RFC net-next 00/13] dpll: Core improvements and ice E825-C SyncE support Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 01/13] dt-bindings: net: ethernet-controller: Add DPLL pin properties Ivan Vecera
2025-12-11 19:56   ` Andrew Lunn
2025-12-14 20:41     ` Ivan Vecera
2025-12-17  0:49     ` Rob Herring
2026-01-05 16:23       ` Ivan Vecera
2026-01-07 15:15         ` Rob Herring
2026-01-07 16:23           ` Ivan Vecera [this message]
2026-01-07 17:31             ` Andrew Lunn
2026-01-07 19:18               ` Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 02/13] dpll: Allow registering pin with firmware node Ivan Vecera
2025-12-12 11:25   ` Jiri Pirko
2025-12-14 19:35     ` Ivan Vecera
2025-12-15 13:08       ` Jiri Pirko
2025-12-15 13:51         ` Ivan Vecera
2025-12-15 14:09           ` Jiri Pirko
2025-12-11 19:47 ` [PATCH RFC net-next 03/13] net: eth: Add helpers to find DPLL pin " Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 04/13] dpll: zl3073x: register pins with fwnode handle Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 05/13] dpll: Add notifier chain for dpll events Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 06/13] dpll: Support dynamic pin index allocation Ivan Vecera
2025-12-15 14:10   ` Przemek Kitszel
2025-12-15 14:43     ` Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 07/13] dpll: zl3073x: Add support for mux pin type Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 08/13] dpll: Enhance and consolidate reference counting logic Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 09/13] dpll: Prevent duplicate registrations Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 10/13] dpll: Add reference count tracking support Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 11/13] dpll: zl3073x: Enable reference count tracking Ivan Vecera
2025-12-12 11:11   ` Jiri Pirko
2025-12-11 19:47 ` [PATCH RFC net-next 12/13] ice: dpll: " Ivan Vecera
2025-12-11 19:47 ` [PATCH RFC net-next 13/13] ice: dpll: Support E825-C SyncE and dynamic pin discovery Ivan Vecera
2025-12-12 10:20   ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-12-14 19:30     ` Ivan Vecera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=66815c08-8408-4651-b039-d47925ae125e@redhat.com \
    --to=ivecera@redhat.com \
    --cc=Horatiu.Vultur@microchip.com \
    --cc=Prathosh.Satish@microchip.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=anthony.l.nguyen@intel.com \
    --cc=arkadiusz.kubalewski@intel.com \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=grzegorz.nitka@intel.com \
    --cc=horms@kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jiri@resnulli.us \
    --cc=jonathan.lemon@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=mbloch@nvidia.com \
    --cc=mschmidt@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=poros@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=richardcochran@gmail.com \
    --cc=robh@kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    --cc=vadim.fedorenko@linux.dev \
    --cc=wahrenst@gmx.net \
    --cc=willemb@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox