Re: [PATCH v3 04/10] dt-bindings: iio: dac: ad3552r: add io-backend support

From: Krzysztof Kozlowski
Date: Sun Sep 22 2024 - 17:03:05 EST


On Thu, Sep 19, 2024 at 11:20:00AM +0200, Angelo Dureghello wrote:
> From: Angelo Dureghello <adureghello@xxxxxxxxxxxx>
>
> There is a version AXI DAC IP block (for FPGAs) that provides
> a physical bus for AD3552R and similar chips, and acts as
> an SPI controller.
>
> For this case, the binding is modified to include some
> additional properties.
>
> Signed-off-by: Angelo Dureghello <adureghello@xxxxxxxxxxxx>
> ---
> .../devicetree/bindings/iio/dac/adi,ad3552r.yaml | 42 ++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
> index 41fe00034742..aca4a41c2633 100644
> --- a/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
> +++ b/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
> @@ -60,6 +60,18 @@ properties:
> $ref: /schemas/types.yaml#/definitions/uint32
> enum: [0, 1, 2, 3]
>
> + io-backends:
> + description: The iio backend reference.
> + An example backend can be found at
> + https://analogdevicesinc.github.io/hdl/library/axi_ad3552r/index.html
> + maxItems: 1
> +
> + adi,synchronous-mode:
> + description: Enable waiting for external synchronization signal.
> + Some AXI IP configuration can implement a dual-IP layout, with internal
> + wirings for streaming synchronization.
> + type: boolean
> +
> '#address-cells':
> const: 1
>
> @@ -128,6 +140,7 @@ patternProperties:
> - custom-output-range-config
>
> allOf:
> + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> - if:
> properties:
> compatible:
> @@ -238,4 +251,33 @@ examples:
> };
> };
> };
> +
> + - |
> + axi_dac: spi@44a70000 {
> + compatible = "adi,axi-ad3552r";

That is either redundant or entire example should go to the parent node,
if this device is fixed child of complex device (IOW, adi,ad3552r cannot
be used outside of adi,axi-ad3552r).


> + reg = <0x44a70000 0x1000>;
> + dmas = <&dac_tx_dma 0>;
> + dma-names = "tx";
> + #io-backend-cells = <0>;
> + clocks = <&ref_clk>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dac@0 {
> + compatible = "adi,ad3552r";
> + reg = <0>;
> + reset-gpios = <&gpio0 92 0>;

Use standard defines for GPIO flags.

> + io-backends = <&axi_dac>;

Why do you need to point to the parent? How much coupled are these
devices? Child pointing to parent is not usually expected, because
that's obvious.

Best regards,
Krzysztof