* [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-24 23:09 ` sashiko-bot
2026-07-23 23:09 ` [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support Vincent Jardin via B4 Relay
1 sibling, 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
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
* [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 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
2026-07-24 23:09 ` sashiko-bot
1 sibling, 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-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-24 23:09 ` sashiko-bot
1 sibling, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-07-24 23:09 UTC (permalink / raw)
To: Vincent Jardin; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete Implementation: Missing driver support for microchip,zl30643.
--
--- Patch [1]: [PATCH 1/2] dt-bindings: dpll: zl3073x: add ZL30643 compatible ---
commit 890eef3f2bfb25bd5d633b88f0a74281dde779f7
Author: Vincent Jardin <vjardin@free.fr>
dt-bindings: dpll: zl3073x: add ZL30643 compatible
This commit adds the microchip,zl30643 compatible string to the ZL3073x
family device tree binding schema.
> diff --git a/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml b/Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml
> index fa5a8f8e390cd..13ea55c2c1467 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
[Severity: Medium]
Are there accompanying driver changes for this new compatible string, or is
this regression expected to be addressed in a subsequent patch in a series?
If a device tree uses this new compatible string, it appears the device will
fail to bind and probe. The zl3073x_i2c_of_match table in
drivers/dpll/zl3073x/i2c.c and the zl3073x_spi_of_match table in
drivers/dpll/zl3073x/spi.c currently do not include "microchip,zl30643".
Additionally, the commit message mentions the ZL30643 has a chip ID of
0x0E3B, but this ID is missing from the zl3073x_chip_ids array in
drivers/dpll/zl3073x/core.c. Without it, zl3073x_dev_probe() will fail to
identify the device and return -ENODEV.
> - microchip,zl30731
> - microchip,zl30732
> - microchip,zl30733
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260724-for-upstream-zl30643-v1-0-ea93ba4d85c8@free.fr?part=1
^ permalink raw reply [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 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
* Re: [PATCH 2/2] dpll: zl3073x: add ZL30643 chip support
2026-07-27 8:36 ` Ivan Vecera
@ 2026-07-30 17:08 ` Vincent Jardin
0 siblings, 0 replies; 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
end of thread, other threads:[~2026-07-30 17:08 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-24 23:09 ` sashiko-bot
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox