[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <IA3PR11MB8986036A2826A4EE758A456EE582A@IA3PR11MB8986.namprd11.prod.outlook.com>
Date: Fri, 9 Jan 2026 06:15:26 +0000
From: "Loktionov, Aleksandr" <aleksandr.loktionov@...el.com>
To: "Vecera, Ivan" <ivecera@...hat.com>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>
CC: Eric Dumazet <edumazet@...gle.com>, "Nguyen, Anthony L"
<anthony.l.nguyen@...el.com>, Rob Herring <robh@...nel.org>, Leon Romanovsky
<leon@...nel.org>, Andrew Lunn <andrew+netdev@...n.ch>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>, "Kitszel,
Przemyslaw" <przemyslaw.kitszel@...el.com>, "Kubalewski, Arkadiusz"
<arkadiusz.kubalewski@...el.com>, "intel-wired-lan@...ts.osuosl.org"
<intel-wired-lan@...ts.osuosl.org>, Jakub Kicinski <kuba@...nel.org>, "Paolo
Abeni" <pabeni@...hat.com>, "devicetree@...r.kernel.org"
<devicetree@...r.kernel.org>, Conor Dooley <conor+dt@...nel.org>, Jiri Pirko
<jiri@...nulli.us>, Richard Cochran <richardcochran@...il.com>, "Prathosh
Satish" <Prathosh.Satish@...rochip.com>, Vadim Fedorenko
<vadim.fedorenko@...ux.dev>, Mark Bloch <mbloch@...dia.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Tariq Toukan
<tariqt@...dia.com>, "Lobakin, Aleksander" <aleksander.lobakin@...el.com>,
Jonathan Lemon <jonathan.lemon@...il.com>, Krzysztof Kozlowski
<krzk+dt@...nel.org>, Saeed Mahameed <saeedm@...dia.com>, "David S. Miller"
<davem@...emloft.net>
Subject: RE: [Intel-wired-lan] [PATCH net-next 12/12] ice: dpll: Support
E825-C SyncE and dynamic pin discovery
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf
> Of Ivan Vecera
> Sent: Thursday, January 8, 2026 7:23 PM
> To: netdev@...r.kernel.org
> Cc: Eric Dumazet <edumazet@...gle.com>; Nguyen, Anthony L
> <anthony.l.nguyen@...el.com>; Rob Herring <robh@...nel.org>; Leon
> Romanovsky <leon@...nel.org>; Andrew Lunn <andrew+netdev@...n.ch>;
> linux-rdma@...r.kernel.org; Kitszel, Przemyslaw
> <przemyslaw.kitszel@...el.com>; Kubalewski, Arkadiusz
> <arkadiusz.kubalewski@...el.com>; intel-wired-lan@...ts.osuosl.org;
> Jakub Kicinski <kuba@...nel.org>; Paolo Abeni <pabeni@...hat.com>;
> devicetree@...r.kernel.org; Conor Dooley <conor+dt@...nel.org>; Jiri
> Pirko <jiri@...nulli.us>; Richard Cochran <richardcochran@...il.com>;
> Prathosh Satish <Prathosh.Satish@...rochip.com>; Vadim Fedorenko
> <vadim.fedorenko@...ux.dev>; Mark Bloch <mbloch@...dia.com>; linux-
> kernel@...r.kernel.org; Tariq Toukan <tariqt@...dia.com>; Lobakin,
> Aleksander <aleksander.lobakin@...el.com>; Jonathan Lemon
> <jonathan.lemon@...il.com>; Krzysztof Kozlowski <krzk+dt@...nel.org>;
> Saeed Mahameed <saeedm@...dia.com>; David S. Miller
> <davem@...emloft.net>
> Subject: [Intel-wired-lan] [PATCH net-next 12/12] ice: dpll: Support
> E825-C SyncE and dynamic pin discovery
>
> From: Arkadiusz Kubalewski <arkadiusz.kubalewski@...el.com>
>
> Add DPLL support for the Intel E825-C Ethernet controller. Unlike
> previous generations (E810), the E825-C connects to the platform's
> DPLL subsystem via MUX pins defined in the system firmware (Device
> Tree/ACPI).
>
> Implement the following mechanisms to support this architecture:
>
> 1. Dynamic Pin Discovery: Use the fwnode_dpll_pin_find() helper to
> locate the parent MUX pins defined in the firmware.
>
> 2. Asynchronous Registration: Since the platform DPLL driver may probe
> independently of the network driver, utilize the DPLL notifier
> chain
> (register_dpll_notifier). The driver listens for DPLL_PIN_CREATED
> events to detect when the parent MUX pins become available, then
> registers its own Recovered Clock (RCLK) pins as children of those
> parents.
>
> 3. Hardware Configuration: Implement the specific register access
> logic
> for E825-C CGU (Clock Generation Unit) registers (R10, R11). This
> includes configuring the bypass MUXes and clock dividers required
> to
> drive SyncE signals.
>
> 4. Split Initialization: Refactor `ice_dpll_init()` to separate the
> static initialization path of E810 from the dynamic, firmware-
> driven
> path required for E825-C.
>
> Co-developed-by: Ivan Vecera <ivecera@...hat.com>
> Signed-off-by: Ivan Vecera <ivecera@...hat.com>
> Co-developed-by: Grzegorz Nitka <grzegorz.nitka@...el.com>
> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@...el.com>
> Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@...el.com>
> ---
> drivers/net/ethernet/intel/ice/ice_dpll.c | 715 +++++++++++++++++--
> -
> drivers/net/ethernet/intel/ice/ice_dpll.h | 25 +
> drivers/net/ethernet/intel/ice/ice_lib.c | 3 +
> drivers/net/ethernet/intel/ice/ice_ptp.c | 29 +
> drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 9 +-
> drivers/net/ethernet/intel/ice/ice_tspll.c | 217 ++++++
> drivers/net/ethernet/intel/ice/ice_tspll.h | 13 +-
> drivers/net/ethernet/intel/ice/ice_type.h | 6 +
> 8 files changed, 925 insertions(+), 92 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_dpll.c
> b/drivers/net/ethernet/intel/ice/ice_dpll.c
> index 4eca62688d834..06575d42de6e9 100644
> --- a/drivers/net/ethernet/intel/ice/ice_dpll.c
> +++ b/drivers/net/ethernet/intel/ice/ice_dpll.c
> @@ -5,6 +5,7 @@
...
> +/**
> + * ice_dpll_init_fwnode_pins - initialize pins from device tree
> + * @pf: board private structure
> + * @pins: pointer to pins array
> + * @start_idx: starting index for pins
> + * @count: number of pins to initialize
> + *
> + * Initialize input pins for E825 RCLK support. The parent pins
> (rclk0,
> +rclk1)
> + * are expected to be defined in the device tree (ACPI). This
> function
> +allocates
Device Tree and ACPI are different firmware interfaces, aren't they?
Writing "device tree (ACPI)" can mislead readers about where the
fwnode-backed discovery is expected to come from.
The code looks good for me.
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> + * them in the dpll subsystem and stores their indices for later
> +registration
> + * with the rclk pin.
...
> --
> 2.52.0
Powered by blists - more mailing lists