Re: [PATCH v4 4/6] dt-bindings: iio: Add adis16550 bindings

From: Jonathan Cameron
Date: Sun Jan 12 2025 - 10:48:56 EST


On Fri, 10 Jan 2025 09:42:52 +0200
Robert Budai <robert.budai@xxxxxxxxxx> wrote:

> Document the ADIS16550 device devicetree bindings.
>
> Co-developed-by: Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx>
> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx>
> Signed-off-by: Ramona Gradinariu <ramona.gradinariu@xxxxxxxxxx>
> Signed-off-by: Robert Budai <robert.budai@xxxxxxxxxx>
> ---
>
> 4:
> - applied styling changes to the bindings file
> - restricted sync-mode to intervals 1-2
>
> .../bindings/iio/imu/adi,adis16550.yaml | 96 +++++++++++++++++++
> MAINTAINERS | 9 ++
> 2 files changed, 105 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/imu/adi,adis16550.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/imu/adi,adis16550.yaml b/Documentation/devicetree/bindings/iio/imu/adi,adis16550.yaml
> new file mode 100644
> index 000000000000..e7ccf3883e55
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/imu/adi,adis16550.yaml
> @@ -0,0 +1,96 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/imu/adi,adis16550.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices ADIS16550 and similar IMUs
> +
> +maintainers:
> + - Nuno Sa <nuno.sa@xxxxxxxxxx>
> + - Ramona Gradinariu <ramona.gradinariu@xxxxxxxxxx>
> + - Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx>
> +
> +properties:
> + compatible:
> + enum:
> + - adi,adis16550
> + - adi,adis16550w
> +
> + reg:
> + maxItems: 1
> +
> + spi-cpha: true
> +
> + spi-cpol: true
> +
> + spi-max-frequency:
> + maximum: 15000000
> +
> + vdd-supply: true
> +
> + interrupts:
> + maxItems: 1
> +
> + reset-gpios:
> + description:
> + RESET active low pin.
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> + description: If not provided, then the internal clock is used.
> +
> + adi,sync-mode:
> + description:
> + Configures the device SYNC pin. The following modes are supported
> + 0 - output_sync
> + 1 - direct_sync
> + 2 - scaled_sync

A little more on these would be good. They are 'weird' options
that are not commonly seen so help the reader out.

For scaled_sync don't we need information on the scale for it to be useful?
If we had that then a value of 1 would mean direct sync and wouldn't need
another control.

I'm not fully understanding the usecases for this.

If we have a say a pulse per second input, the control of the scale should
be userspace anyway. So maybe this maps to the input clock that we can elect to
use and control the effective frequency of by using scaled sync?

I'm not sure what pulse sync is. Grepping the datasheet didn't give me
anything that seemed related. The sync pin is input only so I'm also
not sure on output sync.

> + 3 - pulse_sync
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 1
> + maximum: 2

You describe 0 to 3 but only allow 1 or 2?

> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - spi-cpha
> + - spi-cpol
> + - spi-max-frequency
> + - vdd-supply
> +
> +allOf:
> + - if:
> + properties:
> + adi,sync-mode:
> + const: 2
> +
> + then:
> + dependencies:
> + adi,sync-mode: [ clocks ]
> +
> + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + spi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + imu@0 {
> + compatible = "adi,adis16550";
> + reg = <0>;
> + spi-max-frequency = <15000000>;
> + spi-cpol;
> + spi-cpha;
> + vdd-supply = <&vdd>;
> + interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> + interrupt-parent = <&gpio>;
> + };
> + };
> +...