Re: [PATCH v2 02/14] dt-bindings: dpll: Add support for Microchip Azurite chip family

From: Ivan Vecera
Date: Thu Apr 10 2025 - 13:37:11 EST




On 10. 04. 25 7:07 odp., Prathosh.Satish@xxxxxxxxxxxxx wrote:
-----Original Message-----
From: Ivan Vecera <ivecera@xxxxxxxxxx>
Sent: Thursday 10 April 2025 14:36
To: Conor Dooley <conor@xxxxxxxxxx>; Prathosh Satish - M66066 <Prathosh.Satish@xxxxxxxxxxxxx>
Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; Vadim Fedorenko <vadim.fedorenko@xxxxxxxxx>; Arkadiusz Kubalewski <arkadiusz.kubalewski@xxxxxxxxx>; Jiri Pirko <jiri@xxxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>; Prathosh Satish - M66066 <Prathosh.Satish@xxxxxxxxxxxxx>; Lee Jones <lee@xxxxxxxxxx>; Kees Cook <kees@xxxxxxxxxx>; Andy Shevchenko <andy@xxxxxxxxxx>; Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>; Michal Schmidt <mschmidt@xxxxxxxxxx>; devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-hardening@xxxxxxxxxxxxxxx
Subject: Re: [PATCH v2 02/14] dt-bindings: dpll: Add support for Microchip Azurite chip family

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On 10. 04. 25 3:18 odp., Conor Dooley wrote:
On Thu, Apr 10, 2025 at 09:45:47AM +0200, Ivan Vecera wrote:


On 10. 04. 25 9:06 dop., Krzysztof Kozlowski wrote:
On Wed, Apr 09, 2025 at 04:42:38PM GMT, Ivan Vecera wrote:
Add DT bindings for Microchip Azurite DPLL chip family. These chips
provides 2 independent DPLL channels, up to 10 differential or
single-ended inputs and up to 20 differential or 20 single-ended outputs.
It can be connected via I2C or SPI busses.

Signed-off-by: Ivan Vecera <ivecera@xxxxxxxxxx>
---
.../bindings/dpll/microchip,zl3073x-i2c.yaml | 74 ++++++++++++++++++
.../bindings/dpll/microchip,zl3073x-spi.yaml | 77
+++++++++++++++++++

No, you do not get two files. No such bindings were accepted since
some years.

2 files changed, 151 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dpll/microchip,zl3073x-i2c.yaml
create mode 100644
Documentation/devicetree/bindings/dpll/microchip,zl3073x-spi.yaml

diff --git
a/Documentation/devicetree/bindings/dpll/microchip,zl3073x-i2c.yaml
b/Documentation/devicetree/bindings/dpll/microchip,zl3073x-i2c.yaml
new file mode 100644
index 0000000000000..d9280988f9eb7
--- /dev/null
+++ b/Documentation/devicetree/bindings/dpll/microchip,zl3073x-i2c.
+++ yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2
+---
+$id:
+http://devicetree.org/schemas/dpll/microchip,zl3073x-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: I2C-attached Microchip Azurite DPLL device
+
+maintainers:
+ - Ivan Vecera <ivecera@xxxxxxxxxx>
+
+description:
+ Microchip Azurite DPLL (ZL3073x) is a family of DPLL devices
+that
+ provides 2 independent DPLL channels, up to 10 differential or
+ single-ended inputs and up to 20 differential or 20 single-ended outputs.
+ It can be connected via multiple busses, one of them being I2C.
+
+properties:
+ compatible:
+ enum:
+ - microchip,zl3073x-i2c

I already said: you have one compatible, not two. One.

Ah, you mean something like:
iio/accel/adi,adxl313.yaml

Do you?

Also, still wildcard, so still a no.

This is not wildcard, Microchip uses this to designate DPLL devices
with the same characteristics.

That's the very definition of a wildcard, no? The x is matching
against several different devices. There's like 14 different parts
matching zl3073x, with varying numbers of outputs and channels. One
compatible for all of that hardly seems suitable.

Prathosh, could you please bring more light on this?

Just to clarify, the original driver was written specifically with 2-channel
chips in mind (ZL30732) with 10 input and 20 outputs, which led to some confusion of using zl3073x as compatible.
However, the final version of the driver will support the entire ZL3073x family
ZL30731 to ZL30735 and some subset of ZL30732 like ZL80732 etc
ensuring compatibility across all variants.

Huh, then ok... We should specify zl30731-5 compatibles and they differs only by number of channels (1-5) ?

The number of input and output pins are the same (10 and 20), right?

If so, I have to update the whole driver to accommodate dynamic number of channels according chip type.

Btw. Conor, Krzystof if we use microchip,zl30731, ..., microchip,zl30735... What should be the filename for the yaml file?

Thanks,
Ivan

Thanks.


But I can use microchip,azurite, is it more appropriate?

No, I think that is worse actually.