[PATCH net-next v5 0/3] dpll: add SiTime SiT9531x DPLL clock driver

Ali Rouhi <[email protected]>
Newsgroups org.kernel.vger.netdev,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
This series adds a DPLL subsystem driver for the SiTime SiT95316 and
SiT95317 I2C clock generators. Each device integrates four PLLs with
automatic/manual reference selection and on-chip TDC phase-offset
measurement, and is used for synchronization in telecom, networking,
and data-center timing.

The series contains the device-tree binding, the driver under
drivers/dpll/sit9531x/, and the MAINTAINERS entry.

v1: https://lore.kernel.org/netdev/[email protected]/
v2: https://lore.kernel.org/netdev/[email protected]/
v3: https://lore.kernel.org/netdev/[email protected]/
v4: https://lore.kernel.org/netdev/[email protected]/

Changes since v4 (address Krzysztof Kozlowski's review):

  Binding:
  - Rename sitime,sit9531x.yaml to sitime,sit95316.yaml, naming the file
    after the first compatible rather than a wildcard the parts do not
    carry, and drop "SiT9531x" from the title for the same reason.
  - Correct the input count: both parts expose eight selectable
    references (four differential pairs whose lanes can also be driven
    separately as single-ended inputs).
  - Drop the clock-frequency fallback and the schema branch that allowed
    it; the oscillator is always described through the clock framework, so
    clocks/clock-names are now required.
  - Explain why sitime,pll-fvco carries no unit suffix (the values exceed
    the 32 bits "-hz" allows and are not whole megahertz), and add it,
    together with sitime,output-pll-map, to the example.
  - Keep a single example.

  Driver:
  - Drop the debugfs interface and the orphaned DCO steering backend that
    only fed it.
  - Rework the DPLL init/teardown so the error path unwinds explicitly
    instead of probing internal state, registering the managed cleanup
    action only after every field it touches is initialized.
  - Drop the clock-frequency fallback for the XO rate; the clock is
    required, so devm_clk_get_enabled() replaces the _optional_ variant.
  - Drop the i2c_device_id table; the OF table alone suffices.
  - Take dev_err_probe()'s return value directly.
  - Say nothing on success; an unknown dpll-types string becomes a
    warning rather than an info log.
  - Move DPLL registration next to probe, drop the kernel-doc formalism
    from internal helpers, and cut the narration out of the comments.
  - Name the page-0 status registers after what they hold (register 0x06
    is outer loss-of-lock, not holdover) and remove the register defines
    left with nothing to define after the DCO/SYSREF removals.
  - Rebased onto current net-next; base-commit recorded below.


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

 .../bindings/dpll/sitime,sit95316.yaml        |  171 +
 .../devicetree/bindings/vendor-prefixes.yaml  |    2 +
 MAINTAINERS                                   |    7 +
 drivers/dpll/Kconfig                          |    1 +
 drivers/dpll/Makefile                         |    1 +
 drivers/dpll/sit9531x/Kconfig                 |   17 +
 drivers/dpll/sit9531x/Makefile                |    4 +
 drivers/dpll/sit9531x/core.c                  | 2939 +++++++++++++++++
 drivers/dpll/sit9531x/core.h                  |  367 ++
 drivers/dpll/sit9531x/dpll.c                  | 1151 +++++++
 drivers/dpll/sit9531x/dpll.h                  |   69 +
 drivers/dpll/sit9531x/prop.c                  |  397 +++
 drivers/dpll/sit9531x/prop.h                  |   39 +
 drivers/dpll/sit9531x/regs.h                  |  318 ++
 14 files changed, 5483 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/dpll/sitime,sit95316.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


base-commit: 001b5d347d8ba39b2dccaefcc57967b18caec8fe
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.