]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dpll: Add basic Microchip ZL3073x support
authorIvan Vecera <ivecera@redhat.com>
Fri, 4 Jul 2025 18:21:55 +0000 (20:21 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 10 Jul 2025 02:08:52 +0000 (19:08 -0700)
commit2df8e64e01c10a4b75ea7797629f9e764a840eb0
tree763824967f7c96822722e26103dc9c5c247aa37a
parentde9ccf2296ac323a571e442b5730ca9cc259fbf0
dpll: Add basic Microchip ZL3073x support

Microchip Azurite ZL3073x represents chip family providing DPLL
and optionally PHC (PTP) functionality. The chips can be connected
be connected over I2C or SPI bus.

They have the following characteristics:
* up to 5 separate DPLL units (channels)
* 5 synthesizers
* 10 input pins (references)
* 10 outputs
* 20 output pins (output pin pair shares one output)
* Each reference and output can operate in either differential or
  single-ended mode (differential mode uses 2 pins)
* Each output is connected to one of the synthesizers
* Each synthesizer is driven by one of the DPLL unit

The device uses 7-bit addresses and 8-bits values. It exposes 8-, 16-,
32- and 48-bits registers in address range <0x000,0x77F>. Due to 7bit
addressing, the range is organized into pages of 128 bytes, with each
page containing a page selector register at address 0x7F.
For reading/writing multi-byte registers, the device supports bulk
transfers.

Add basic functionality to access device registers, probe functionality
both I2C and SPI cases and add devlink support to provide info and
to set clock ID parameter.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://patch.msgid.link/20250704182202.1641943-6-ivecera@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
15 files changed:
Documentation/networking/devlink/index.rst
Documentation/networking/devlink/zl3073x.rst [new file with mode: 0644]
MAINTAINERS
drivers/Kconfig
drivers/dpll/Kconfig
drivers/dpll/Makefile
drivers/dpll/zl3073x/Kconfig [new file with mode: 0644]
drivers/dpll/zl3073x/Makefile [new file with mode: 0644]
drivers/dpll/zl3073x/core.c [new file with mode: 0644]
drivers/dpll/zl3073x/core.h [new file with mode: 0644]
drivers/dpll/zl3073x/devlink.c [new file with mode: 0644]
drivers/dpll/zl3073x/devlink.h [new file with mode: 0644]
drivers/dpll/zl3073x/i2c.c [new file with mode: 0644]
drivers/dpll/zl3073x/regs.h [new file with mode: 0644]
drivers/dpll/zl3073x/spi.c [new file with mode: 0644]