Thread (4 messages) 4 messages, 3 authors, 2026-05-08

RE: [Intel-wired-lan] [PATCH iwl-next v11] ice: add support for unmanaged DPLL on E830 NIC

From: Mekala, SunithaX D <hidden>
Date: 2026-03-17 16:58:13
Also in: intel-wired-lan, linux-doc, lkml

-----Original Message-----
From: Intel-wired-lan <redacted> On Behalf Of Arkadiusz Kubalewski
Sent: Tuesday, February 17, 2026 7:58 AM
To: intel-wired-lan@lists.osuosl.org
Cc: pmenzel@molgen.mpg.de; linux-doc@vger.kernel.org; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Kubalewski, Arkadiusz <arkadiusz.kubalewski@intel.com>; Loktionov, Aleksandr <redacted>; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Fodor, Zoltan <redacted>; horms@kernel.org; Kitszel, > Przemyslaw <przemyslaw.kitszel@intel.com>; Grinberg, Vitaly <redacted>
Subject: [Intel-wired-lan] [PATCH iwl-next v11] ice: add support for unmanaged DPLL on E830 NIC

Hardware variants of E830 may support an unmanaged DPLL where the
configuration is hardcoded within the hardware and firmware, meaning
users cannot modify settings. However, users are able to check the DPLL
lock status and obtain configuration information through the Linux DPLL
and devlink health subsystem.

Availability of 'loss of lock' health status code determines if such
support is available, if true, register single DPLL device with 1 input
and 1 output and provide hardcoded/read only properties of a pin and
DPLL device. User is only allowed to check DPLL device status and receive
notifications on DPLL lock status change.

When present, the DPLL device locks to an external signal provided
through the PCIe/OCP pin. The expected input signal is 1PPS
(1 Pulse Per Second) embedded on a 10MHz reference clock.
The DPLL produces output:
- for MAC (Media Access Control) & PHY (Physical Layer) clocks,
- 1PPS for synchronization of onboard PHC (Precision Hardware Clock) timer.

Reviewed-by: Aleksandr Loktionov <redacted>
Reviewed-by: Paul Menzel <redacted>
Signed-off-by: Grzegorz Nitka <redacted>
Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
---
v11:
- rebase and fix conflicts
v10:
- move mutex so is always initialized when used
- check and use return value of ice_dpll_lock_state_init_unmanaged()
v9:
- reorder the flow of ice_dpll_init_direct_pins, drop if no cgu and make less
 indentation
- remove floating code block
v8:
- fix uninitalized bool *supported
- fix properly set esync->range_num
v7:
- validate 'first' is present on error path
v6:
- change dpll type EEC -> PPS, this dpll serves both functionalisites but PPS
  is superset of EEC type
- use DPLL_MODE_MANUAL instead of AUTOMATIC, which is correct for the input
  pins that doesn't have capability to set the priority
v5:
- rebased (baseline does not include dependent e825C patches now)
- added health status notification (thru devlink and DPLL subsystem)
v4:
- add correct strcuture for reading supported health status codes and
  use it to parse the outcome of 0xFF21 AQ command.
---
 .../device_drivers/ethernet/intel/ice.rst     |  83 +++++
 .../net/ethernet/intel/ice/devlink/health.c   |   4 +
 .../net/ethernet/intel/ice/ice_adminq_cmd.h   |  12 +
 drivers/net/ethernet/intel/ice/ice_common.c   | 136 ++++++++
 drivers/net/ethernet/intel/ice/ice_common.h   |   8 +
 drivers/net/ethernet/intel/ice/ice_dpll.c     | 301 ++++++++++++++++--
 drivers/net/ethernet/intel/ice/ice_dpll.h     |  10 +
 drivers/net/ethernet/intel/ice/ice_main.c     |  11 +-
 drivers/net/ethernet/intel/ice/ice_ptp_hw.c   |  46 +++
 drivers/net/ethernet/intel/ice/ice_ptp_hw.h   |   1 +
 10 files changed, 591 insertions(+), 21 deletions(-)
Tested-by: Sunitha Mekala <redacted> (A Contingent worker at Intel)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help