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>; > + }; > + }; > +...