|
|
Log in / Subscribe / Register

dpll: add SiTime SiT9531x DPLL clock driver

From:  Ali Rouhi <rouhi.ali-AT-gmail.com>
To:  jiri-AT-resnulli.us
Subject:  [PATCH v2 net-next 0/3] dpll: add SiTime SiT9531x DPLL clock driver
Date:  Wed, 20 May 2026 12:19:40 -0700
Message-ID:  <20260520191943.73938-1-arouhi@sitime.com>
Cc:  vadim.fedorenko-AT-linux.dev, arkadiusz.kubalewski-AT-intel.com, robh-AT-kernel.org, krzk+dt-AT-kernel.org, conor+dt-AT-kernel.org, cjubran-AT-nvidia.com, Oleg.Zadorozhnyi-AT-devoxsoftware.com, devicetree-AT-vger.kernel.org, netdev-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Ali Rouhi <arouhi-AT-sitime.com>
Archive-link:  Article

This series adds a DPLL subsystem driver for the SiTime SiT95316 and
SiT95317 programmable clock generators, along with the associated
device tree bindings.

This driver has been through multiple rounds of off-list review with
Jiri Pirko and Carolina Jubran.

v1: https://lore.kernel.org/netdev/20260511211143.19792-1-aro...

Changes in v2:
- Patch 2/3 (DT bindings):
  - Remove Linux-specific runtime description paragraph (Conor)
  - Simplify reset-gpios, interrupts descriptions to hardware behavior (Conor)
  - Add allOf: $ref: /schemas/dpll/dpll-device.yaml#, switch to
    unevaluatedProperties (Conor)
  - Add pin sub-nodes in example 2 (Conor)
  - Rename node clock-generator@68 to dpll@68 to match dpll-device.yaml (Sashiko)
  - Add clocks/clock-names properties for xtal reference clock
- Patch 3/3 (driver):
  - Fix SiT95316 num_inputs: 8 -> 4 (Carolina)
  - Initialize xtal_freq at probe via devm_clk_get_optional_enabled
  - Move DPLL/kworker init before IRQ registration to prevent NULL deref
  - Clear notification latches in periodic worker to prevent IRQ tight loop
  - Use clkout_map[] in output_phase_adjust_set() for correct register addressing

Ali Rouhi (3):
  dt-bindings: vendor-prefixes: add SiTime Corporation
  dt-bindings: dpll: add SiTime SiT9531x clock generator
  dpll: add SiTime SiT9531x DPLL clock driver

 .../bindings/dpll/sitime,sit9531x.yaml        |  145 +
 .../devicetree/bindings/vendor-prefixes.yaml  |    2 +
 MAINTAINERS                                   |    6 +
 drivers/dpll/Kconfig                          |    1 +
 drivers/dpll/Makefile                         |    1 +
 drivers/dpll/sit9531x/Kconfig                 |   17 +
 drivers/dpll/sit9531x/Makefile                |    4 +
 drivers/dpll/sit9531x/core.c                  | 2636 +++++++++++++++++
 drivers/dpll/sit9531x/core.h                  |  282 ++
 drivers/dpll/sit9531x/dpll.c                  | 1147 +++++++
 drivers/dpll/sit9531x/dpll.h                  |   90 +
 drivers/dpll/sit9531x/prop.c                  |  345 +++
 drivers/dpll/sit9531x/prop.h                  |   39 +
 drivers/dpll/sit9531x/regs.h                  |  359 +++
 14 files changed, 5074 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/dpll/sitime,sit9531x.yaml
 create mode 100644 drivers/dpll/sit9531x/Kconfig
 create mode 100644 drivers/dpll/sit9531x/Makefile
 create mode 100644 drivers/dpll/sit9531x/core.c
 create mode 100644 drivers/dpll/sit9531x/core.h
 create mode 100644 drivers/dpll/sit9531x/dpll.c
 create mode 100644 drivers/dpll/sit9531x/dpll.h
 create mode 100644 drivers/dpll/sit9531x/prop.c
 create mode 100644 drivers/dpll/sit9531x/prop.h
 create mode 100644 drivers/dpll/sit9531x/regs.h

-- 
2.43.0




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