[PATCH net-next 0/2] dpll: add pin operational state

Ivan Vecera
2026-04-28T15:49:23Z

Add pin operational state (operstate) to the DPLL subsystem to
separate administrative intent from actual hardware status.

Currently pin-state mixes what the user requested (connected,
selectable, disconnected) with what the hardware is actually doing.
This makes it difficult to diagnose situations where a user sets
a pin as selectable or connected but the hardware cannot use it
due to signal issues.

The new operstate attribute is reported inside the pin-parent-device
nest alongside the existing state and is read-only. Defined values:

- active: pin is qualified and actively used by the DPLL
- standby: pin is qualified but not actively used by the DPLL
- no-signal: pin does not have a valid signal
- qual-failed: pin signal failed qualification checks

Patch 1 adds the operstate enum, netlink attribute and the
operstate_on_dpll_get callback to the DPLL subsystem. It also
updates Documentation/driver-api/dpll.rst to describe the
separation between admin state and operational state.

Patch 2 implements the callback for ZL3073x input pins using the
reference monitor status register. It also refactors the existing
state_on_dpll_get to return purely administrative state and switches
periodic monitoring to track operstate changes.

Ivan Vecera (2):
dpll: add pin operational state
dpll: zl3073x: implement pin operational state reporting

Documentation/driver-api/dpll.rst | 38 +++++----
Documentation/netlink/specs/dpll.yaml | 31 ++++++++
drivers/dpll/dpll_netlink.c | 27 +++++++
drivers/dpll/dpll_nl.c | 3 +-
drivers/dpll/dpll_nl.h | 2 +-
drivers/dpll/zl3073x/dpll.c | 108 +++++++++++++++++---------
drivers/dpll/zl3073x/regs.h | 9 ++-
include/linux/dpll.h | 6 ++
include/uapi/linux/dpll.h | 23 ++++++
9 files changed, 192 insertions(+), 55 deletions(-)

base-commit: 1f5ffc672165ff851063a5fd044b727ab2517ae3
--
2.53.0