|
|
Log in / Subscribe / Register

dpll: zl3073x: add ref-sync pair support

From:  Ivan Vecera <ivecera-AT-redhat.com>
To:  netdev-AT-vger.kernel.org
Subject:  [PATCH net-next v2 0/5] dpll: zl3073x: add ref-sync pair support
Date:  Sat, 28 Mar 2026 09:06:19 +0100
Message-ID:  <20260328080624.593916-1-ivecera@redhat.com>
Cc:  Arkadiusz Kubalewski <arkadiusz.kubalewski-AT-intel.com>, Jiri Pirko <jiri-AT-resnulli.us>, Michal Schmidt <mschmidt-AT-redhat.com>, Petr Oros <poros-AT-redhat.com>, Prathosh Satish <Prathosh.Satish-AT-microchip.com>, Simon Horman <horms-AT-kernel.org>, Vadim Fedorenko <vadim.fedorenko-AT-linux.dev>, linux-kernel-AT-vger.kernel.org, Conor Dooley <conor+dt-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, devicetree-AT-vger.kernel.org, Pasi Vaananen <pvaanane-AT-redhat.com>
Archive-link:  Article

This series adds Reference-Sync pair support to the ZL3073x DPLL driver.
A Ref-Sync pair consists of a clock reference and a low-frequency sync
signal (e.g. 1 PPS) where the DPLL locks to the clock reference but
phase-aligns to the sync reference.

Patches 1-3 are preparatory cleanups and helper additions:
- Clean up esync get/set callbacks with early returns and use the
  zl3073x_out_is_ndiv() helper
- Convert open-coded clear-and-set bitfield patterns to FIELD_MODIFY()
- Add ref sync control and output clock type accessor helpers

Patch 4 adds the 'ref-sync-sources' phandle-array property to the
dpll-pin device tree binding schema and updates the ZL3073x binding
examples.

Patch 5 implements the driver support:
- ref_sync_get/set callbacks with frequency validation
- Automatic sync source exclusion from reference selection
- Device tree based ref-sync pair registration

Tested and verified on Microchip EDS2 (pcb8385) development board.

Changes:
v2 - added proper reviewed-by tags (requested by Kuba)

Ivan Vecera (5):
  dpll: zl3073x: clean up esync get/set and use zl3073x_out_is_ndiv()
  dpll: zl3073x: use FIELD_MODIFY() for clear-and-set patterns
  dpll: zl3073x: add ref sync and output clock type helpers
  dt-bindings: dpll: add ref-sync-sources property
  dpll: zl3073x: add ref-sync pair support

 .../devicetree/bindings/dpll/dpll-pin.yaml    |  11 +
 .../bindings/dpll/microchip,zl30731.yaml      |  30 +-
 drivers/dpll/zl3073x/chan.h                   |  17 +-
 drivers/dpll/zl3073x/core.c                   |   3 +-
 drivers/dpll/zl3073x/dpll.c                   | 295 ++++++++++++++----
 drivers/dpll/zl3073x/flash.c                  |   3 +-
 drivers/dpll/zl3073x/out.h                    |  22 ++
 drivers/dpll/zl3073x/ref.h                    |  46 +++
 drivers/dpll/zl3073x/regs.h                   |   2 +
 9 files changed, 348 insertions(+), 81 deletions(-)

-- 
2.52.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds