* [PATCH 0/2] dpll: zl3073x: add Microchip ZL30643 support
@ 2026-07-23 23:09 Vincent Jardin via B4 Relay
2026-07-23 23:09 ` [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible Vincent Jardin via B4 Relay
2026-07-23 23:09 ` [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support Vincent Jardin via B4 Relay
0 siblings, 2 replies; 8+ messages in thread
From: Vincent Jardin via B4 Relay @ 2026-07-23 23:09 UTC (permalink / raw)
To: Ivan Vecera, Prathosh Satish, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko
Cc: netdev, devicetree, linux-kernel, Vincent Jardin
The Microchip ZL30643 (chip ID 0x0E3B) is a 3 DPLL channel member
of the ZL3073x family.
Patch 1 adds the binding.
Patch 2 registers the chip in the driver: the chip-info table and the
I2C, SPI and OF device-ID match tables.
It was tested on an LX2160A board with a ZL30733 and a ZL30643, both
are probed and they expose their DPLL channels.
Signed-off-by: Vincent Jardin <vjardin@free.fr>
---
Vincent Jardin (2):
dt-bindings: dpll: zl3073x: add ZL30643 compatible
dpll: zl3073x: add ZL30643 chip support
Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml | 1 +
drivers/dpll/zl3073x/core.c | 1 +
drivers/dpll/zl3073x/i2c.c | 2 ++
drivers/dpll/zl3073x/spi.c | 2 ++
4 files changed, 6 insertions(+)
---
base-commit: 248951ddc14de84de3910f9b13f51491a8cd91df
change-id: 20260724-for-upstream-zl30643-8b23267b974f
Best regards,
--
Vincent Jardin <vjardin@free.fr>
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible 2026-07-23 23:09 [PATCH 0/2] dpll: zl3073x: add Microchip ZL30643 support Vincent Jardin via B4 Relay @ 2026-07-23 23:09 ` Vincent Jardin via B4 Relay 2026-07-24 16:46 ` Conor Dooley 2026-07-23 23:09 ` [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support Vincent Jardin via B4 Relay 1 sibling, 1 reply; 8+ messages in thread From: Vincent Jardin via B4 Relay @ 2026-07-23 23:09 UTC (permalink / raw) To: Ivan Vecera, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko Cc: netdev, devicetree, linux-kernel, Vincent Jardin From: Vincent Jardin <vjardin@free.fr> The Microchip ZL30643 (chip ID 0x0E3B) is a 3 DPLL channel member of the ZL3073x family. Add its compatible string to the binding enum. Signed-off-by: Vincent Jardin <vjardin@free.fr> --- Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml b/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml index fa5a8f8e390c..13ea55c2c146 100644 --- a/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml +++ b/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml @@ -18,6 +18,7 @@ description: properties: compatible: enum: + - microchip,zl30643 - microchip,zl30731 - microchip,zl30732 - microchip,zl30733 -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible 2026-07-23 23:09 ` [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible Vincent Jardin via B4 Relay @ 2026-07-24 16:46 ` Conor Dooley 2026-07-30 17:01 ` Vincent Jardin 0 siblings, 1 reply; 8+ messages in thread From: Conor Dooley @ 2026-07-24 16:46 UTC (permalink / raw) To: vjardin Cc: Ivan Vecera, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko, netdev, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1086 bytes --] On Fri, Jul 24, 2026 at 01:09:12AM +0200, Vincent Jardin via B4 Relay wrote: > From: Vincent Jardin <vjardin@free.fr> > > The Microchip ZL30643 (chip ID 0x0E3B) is a 3 DPLL channel member > of the ZL3073x family. Add its compatible string to the binding enum. > > Signed-off-by: Vincent Jardin <vjardin@free.fr> What about this device makes it incomaptible with existing ones? Cheers, Conor. > --- > Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml b/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml > index fa5a8f8e390c..13ea55c2c146 100644 > --- a/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml > +++ b/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml > @@ -18,6 +18,7 @@ description: > properties: > compatible: > enum: > + - microchip,zl30643 > - microchip,zl30731 > - microchip,zl30732 > - microchip,zl30733 > > -- > 2.43.0 > > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible 2026-07-24 16:46 ` Conor Dooley @ 2026-07-30 17:01 ` Vincent Jardin 0 siblings, 0 replies; 8+ messages in thread From: Vincent Jardin @ 2026-07-30 17:01 UTC (permalink / raw) To: Conor Dooley Cc: Ivan Vecera, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko, netdev, devicetree, linux-kernel Ho Conor, Le 24/07/26 17:46, Conor Dooley a écrit : > On Fri, Jul 24, 2026 at 01:09:12AM +0200, Vincent Jardin via B4 Relay wrote: > > From: Vincent Jardin <vjardin@free.fr> > > > > The Microchip ZL30643 (chip ID 0x0E3B) is a 3 DPLL channel member > > of the ZL3073x family. Add its compatible string to the binding enum. > > > > Signed-off-by: Vincent Jardin <vjardin@free.fr> > > What about this device makes it incomaptible with existing ones? Nothing makes it incompatible at the programming level: it is register-compatible with the existing parts. I compared both datasheets of the zl3064x and zl3073x. They are the same registers for both families (zl3064x for line cards, zl3073x for central system/CPU). The register descriptions are identical, both use the same chip-ID encoding base, A-series +0x1000 B-series +0x2000 7x7 package +0x8000 zl30643 for 0x0E3B is the 3-channel part, i.e. register-equivalent to zl30733 = 0x0E95. Nevertheless, I'll switch to a fallback compatible instead of a bare new enum entry: compatible = "microchip,zl30643", "microchip,zl30733"; Thanks, Vincent ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support 2026-07-23 23:09 [PATCH 0/2] dpll: zl3073x: add Microchip ZL30643 support Vincent Jardin via B4 Relay 2026-07-23 23:09 ` [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible Vincent Jardin via B4 Relay @ 2026-07-23 23:09 ` Vincent Jardin via B4 Relay 2026-07-27 8:36 ` Ivan Vecera 1 sibling, 1 reply; 8+ messages in thread From: Vincent Jardin via B4 Relay @ 2026-07-23 23:09 UTC (permalink / raw) To: Ivan Vecera, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko Cc: netdev, devicetree, linux-kernel, Vincent Jardin From: Vincent Jardin <vjardin@free.fr> Register the Microchip ZL30643 (chip ID 0x0E3B), it is a 3 DPLL channel of the ZL3073x family. Once register, for instance, we get: devlink dev param set spi/spi0.0 name clock_id value 3733 cmode driverinit devlink dev reload spi/spi0.0 devlink dev param set spi/spi2.1 name clock_id value 3643 cmode driverinit devlink dev reload spi/spi2.1 dpll device show | grep clock-id clock-id: 3733 clock-id: 3733 clock-id: 3733 clock-id: 3643 clock-id: 3643 clock-id: 3643 Signed-off-by: Vincent Jardin <vjardin@free.fr> --- drivers/dpll/zl3073x/core.c | 1 + drivers/dpll/zl3073x/i2c.c | 2 ++ drivers/dpll/zl3073x/spi.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/drivers/dpll/zl3073x/core.c b/drivers/dpll/zl3073x/core.c index 8e6416a4741d..4d07f69efb44 100644 --- a/drivers/dpll/zl3073x/core.c +++ b/drivers/dpll/zl3073x/core.c @@ -25,6 +25,7 @@ static const struct zl3073x_chip_info zl3073x_chip_ids[] = { ZL_CHIP_INFO(0x0E30, 2, ZL3073X_FLAG_REF_PHASE_COMP_32), + ZL_CHIP_INFO(0x0E3B, 3, ZL3073X_FLAG_REF_PHASE_COMP_32), ZL_CHIP_INFO(0x0E93, 1, ZL3073X_FLAG_REF_PHASE_COMP_32), ZL_CHIP_INFO(0x0E94, 2, ZL3073X_FLAG_REF_PHASE_COMP_32), ZL_CHIP_INFO(0x0E95, 3, ZL3073X_FLAG_REF_PHASE_COMP_32), diff --git a/drivers/dpll/zl3073x/i2c.c b/drivers/dpll/zl3073x/i2c.c index 4a23340e29d0..f12c6306a85b 100644 --- a/drivers/dpll/zl3073x/i2c.c +++ b/drivers/dpll/zl3073x/i2c.c @@ -26,6 +26,7 @@ static int zl3073x_i2c_probe(struct i2c_client *client) } static const struct i2c_device_id zl3073x_i2c_id[] = { + { .name = "zl30643" }, { .name = "zl30731" }, { .name = "zl30732" }, { .name = "zl30733" }, @@ -36,6 +37,7 @@ static const struct i2c_device_id zl3073x_i2c_id[] = { MODULE_DEVICE_TABLE(i2c, zl3073x_i2c_id); static const struct of_device_id zl3073x_i2c_of_match[] = { + { .compatible = "microchip,zl30643" }, { .compatible = "microchip,zl30731" }, { .compatible = "microchip,zl30732" }, { .compatible = "microchip,zl30733" }, diff --git a/drivers/dpll/zl3073x/spi.c b/drivers/dpll/zl3073x/spi.c index f024f42b78d0..d56c8d8ecc28 100644 --- a/drivers/dpll/zl3073x/spi.c +++ b/drivers/dpll/zl3073x/spi.c @@ -26,6 +26,7 @@ static int zl3073x_spi_probe(struct spi_device *spi) } static const struct spi_device_id zl3073x_spi_id[] = { + { "zl30643" }, { "zl30731" }, { "zl30732" }, { "zl30733" }, @@ -36,6 +37,7 @@ static const struct spi_device_id zl3073x_spi_id[] = { MODULE_DEVICE_TABLE(spi, zl3073x_spi_id); static const struct of_device_id zl3073x_spi_of_match[] = { + { .compatible = "microchip,zl30643" }, { .compatible = "microchip,zl30731" }, { .compatible = "microchip,zl30732" }, { .compatible = "microchip,zl30733" }, -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support 2026-07-23 23:09 ` [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support Vincent Jardin via B4 Relay @ 2026-07-27 8:36 ` Ivan Vecera 2026-07-30 17:08 ` Vincent Jardin 0 siblings, 1 reply; 8+ messages in thread From: Ivan Vecera @ 2026-07-27 8:36 UTC (permalink / raw) To: vjardin, Vincent Jardin via B4 Relay, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko Cc: netdev, devicetree, linux-kernel, Vincent Jardin 24. července 2026 1:09:13 SELČ, Vincent Jardin via B4 Relay <devnull+vjardin.free.fr@kernel.org> napsal: >From: Vincent Jardin <vjardin@free.fr> > >Register the Microchip ZL30643 (chip ID 0x0E3B), it is a 3 DPLL channel >of the ZL3073x family. > >Once register, for instance, we get: > > devlink dev param set spi/spi0.0 name clock_id value 3733 cmode driverinit > devlink dev reload spi/spi0.0 > devlink dev param set spi/spi2.1 name clock_id value 3643 cmode driverinit > devlink dev reload spi/spi2.1 > > dpll device show | grep clock-id > clock-id: 3733 > clock-id: 3733 > clock-id: 3733 > clock-id: 3643 > clock-id: 3643 > clock-id: 3643 > >Signed-off-by: Vincent Jardin <vjardin@free.fr> >--- > drivers/dpll/zl3073x/core.c | 1 + > drivers/dpll/zl3073x/i2c.c | 2 ++ > drivers/dpll/zl3073x/spi.c | 2 ++ > 3 files changed, 5 insertions(+) > Hi Vincent, I'm not sure that all driver's functionality is supported by ZL3064x. Did you test everything? I need to check datasheets for this chip models, maybe some device flags will be needed. Thanks Ivan >diff --git a/drivers/dpll/zl3073x/core.c b/drivers/dpll/zl3073x/core.c >index 8e6416a4741d..4d07f69efb44 100644 >--- a/drivers/dpll/zl3073x/core.c >+++ b/drivers/dpll/zl3073x/core.c >@@ -25,6 +25,7 @@ > > static const struct zl3073x_chip_info zl3073x_chip_ids[] = { > ZL_CHIP_INFO(0x0E30, 2, ZL3073X_FLAG_REF_PHASE_COMP_32), >+ ZL_CHIP_INFO(0x0E3B, 3, ZL3073X_FLAG_REF_PHASE_COMP_32), > ZL_CHIP_INFO(0x0E93, 1, ZL3073X_FLAG_REF_PHASE_COMP_32), > ZL_CHIP_INFO(0x0E94, 2, ZL3073X_FLAG_REF_PHASE_COMP_32), > ZL_CHIP_INFO(0x0E95, 3, ZL3073X_FLAG_REF_PHASE_COMP_32), >diff --git a/drivers/dpll/zl3073x/i2c.c b/drivers/dpll/zl3073x/i2c.c >index 4a23340e29d0..f12c6306a85b 100644 >--- a/drivers/dpll/zl3073x/i2c.c >+++ b/drivers/dpll/zl3073x/i2c.c >@@ -26,6 +26,7 @@ static int zl3073x_i2c_probe(struct i2c_client *client) > } > > static const struct i2c_device_id zl3073x_i2c_id[] = { >+ { .name = "zl30643" }, > { .name = "zl30731" }, > { .name = "zl30732" }, > { .name = "zl30733" }, >@@ -36,6 +37,7 @@ static const struct i2c_device_id zl3073x_i2c_id[] = { > MODULE_DEVICE_TABLE(i2c, zl3073x_i2c_id); > > static const struct of_device_id zl3073x_i2c_of_match[] = { >+ { .compatible = "microchip,zl30643" }, > { .compatible = "microchip,zl30731" }, > { .compatible = "microchip,zl30732" }, > { .compatible = "microchip,zl30733" }, >diff --git a/drivers/dpll/zl3073x/spi.c b/drivers/dpll/zl3073x/spi.c >index f024f42b78d0..d56c8d8ecc28 100644 >--- a/drivers/dpll/zl3073x/spi.c >+++ b/drivers/dpll/zl3073x/spi.c >@@ -26,6 +26,7 @@ static int zl3073x_spi_probe(struct spi_device *spi) > } > > static const struct spi_device_id zl3073x_spi_id[] = { >+ { "zl30643" }, > { "zl30731" }, > { "zl30732" }, > { "zl30733" }, >@@ -36,6 +37,7 @@ static const struct spi_device_id zl3073x_spi_id[] = { > MODULE_DEVICE_TABLE(spi, zl3073x_spi_id); > > static const struct of_device_id zl3073x_spi_of_match[] = { >+ { .compatible = "microchip,zl30643" }, > { .compatible = "microchip,zl30731" }, > { .compatible = "microchip,zl30732" }, > { .compatible = "microchip,zl30733" }, > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support 2026-07-27 8:36 ` Ivan Vecera @ 2026-07-30 17:08 ` Vincent Jardin 2026-08-03 11:51 ` Ivan Vecera 0 siblings, 1 reply; 8+ messages in thread From: Vincent Jardin @ 2026-07-30 17:08 UTC (permalink / raw) To: Ivan Vecera Cc: Vincent Jardin via B4 Relay, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko, netdev, devicetree, linux-kernel Hi Ivan, > Hi Vincent, > I'm not sure that all driver's functionality is supported by ZL3064x. Did you test everything? > > I need to check datasheets for this chip models, maybe some device flags will be needed. I checked both datasheets. They are the same registers: - the register descriptions are verbatim identical - same chip-ID encoding (base / A +0x1000 / B +0x2000 / 7x7 +0x8000) So ZL_CHIP_INFO(0x0E3B, 3, ZL3073X_FLAG_REF_PHASE_COMP_32) is correct and no new device flag is needed: the ref-phase mechanism the flag governs is identical between the families. The only differences seem to be non-register related: line card vs central system and the min input-frequency spec (1 kHz vs 0.5 Hz). I tested with: devlink dev param set spi/spi0.0 name clock_id value 3733 cmode driverinit devlink dev reload spi/spi0.0 devlink dev param set spi/spi2.1 name clock_id value 3643 cmode driverinit devlink dev reload spi/spi2.1 dpll device show | grep clock-id clock-id: 3733 clock-id: 3733 clock-id: 3733 clock-id: 3643 clock-id: 3643 clock-id: 3643 Best regards, Vincent ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support 2026-07-30 17:08 ` Vincent Jardin @ 2026-08-03 11:51 ` Ivan Vecera 0 siblings, 0 replies; 8+ messages in thread From: Ivan Vecera @ 2026-08-03 11:51 UTC (permalink / raw) To: Vincent Jardin Cc: Vincent Jardin via B4 Relay, Prathosh Satish, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Vadim Fedorenko, Arkadiusz Kubalewski, Jiri Pirko, netdev, devicetree, linux-kernel On 7/30/26 7:08 PM, Vincent Jardin wrote: > Hi Ivan, > >> Hi Vincent, >> I'm not sure that all driver's functionality is supported by ZL3064x. Did you test everything? >> >> I need to check datasheets for this chip models, maybe some device flags will be needed. > > I checked both datasheets. They are the same registers: > > - the register descriptions are verbatim identical > > - same chip-ID encoding (base / A +0x1000 / B +0x2000 / 7x7 +0x8000) > > So ZL_CHIP_INFO(0x0E3B, 3, ZL3073X_FLAG_REF_PHASE_COMP_32) is correct > and no new device flag is needed: the ref-phase mechanism the flag > governs is identical between the families. > > The only differences seem to be non-register related: line card vs > central system and the min input-frequency spec (1 kHz vs 0.5 Hz). Hi Vincent, Yes, minimal reference frequency for zl3064x is 1000Hz and also supported bandwidth range is different (not relevant now). So, we need to - add new field into zl3073x_chip_info that will describe minimal input reference frequency - add a check into zl3073x_pin_check_freq() Let me know if you want to do it yourself or if I should do it (I would send it along with your two patches). Thanks, Ivan ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-08-03 11:51 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-23 23:09 [PATCH 0/2] dpll: zl3073x: add Microchip ZL30643 support Vincent Jardin via B4 Relay 2026-07-23 23:09 ` [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible Vincent Jardin via B4 Relay 2026-07-24 16:46 ` Conor Dooley 2026-07-30 17:01 ` Vincent Jardin 2026-07-23 23:09 ` [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support Vincent Jardin via B4 Relay 2026-07-27 8:36 ` Ivan Vecera 2026-07-30 17:08 ` Vincent Jardin 2026-08-03 11:51 ` Ivan Vecera
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox