On Mon, 18 Sep 2023 13:33:13 +0530 Jagath Jog J <jagathjog1996@xxxxxxxxx> wrote: > Add devicetree description document for Bosch BMI323, a 6-Axis IMU. > > Signed-off-by: Jagath Jog J <jagathjog1996@xxxxxxxxx> > --- > .../bindings/iio/imu/bosch,bmi323.yaml | 81 +++++++++++++++++++ > 1 file changed, 81 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,bmi323.yaml > > diff --git a/Documentation/devicetree/bindings/iio/imu/bosch,bmi323.yaml b/Documentation/devicetree/bindings/iio/imu/bosch,bmi323.yaml > new file mode 100644 > index 000000000000..9c08988103c5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/imu/bosch,bmi323.yaml > @@ -0,0 +1,81 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/imu/bosch,bmi323.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bosch BMI323 6-Axis IMU > + > +maintainers: > + - Jagath Jog J <jagathjog1996@xxxxxxxxx> > + > +description: > + BMI323 is a 6-axis inertial measurement unit that supports acceleration and > + gyroscopic measurements with hardware fifo buffering. Sensor also provides > + events information such as motion, steps, orientation, single and double > + tap detection. > + > +properties: > + compatible: > + const: bosch,bmi323 > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + interrupt-names: > + enum: > + - INT1 > + - INT2 > + description: | > + set to "INT1" if INT1 pin should be used as interrupt input, set > + to "INT2" if INT2 pin should be used instead Why not both? Sure driver might elect to use only one, but the binding describes the hardware not the driver and both might be wired. Lots of different sources of interrupts so might be advantageous to split them up across two wires. A simple case being to route errors to one and everything 'good' to the other. No obligation to support that in the Linux driver though if you don't need to. > + > + drive-open-drain: > + description: | > + set if the specified interrupt pin should be configured as > + open drain. If not set, defaults to push-pull. Two pins. Might be different so you need two controls. > + > +required: > + - compatible > + - reg As mentioned, need power supplies specified and marked as required (though they may be provided via always on regulators and rely on stubs being created by the regulator subsystem on a given board). Looks like there are at least 2 supplies. > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +unevaluatedProperties: false > + > +examples: > + - | > + // Example for I2C > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + bmi323@68 { > + compatible = "bosch,bmi323"; > + reg = <0x68>; > + interrupt-parent = <&gpio1>; > + interrupts = <29 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "INT1"; > + }; > + }; > + - | > + // Example for SPI > + #include <dt-bindings/interrupt-controller/irq.h> > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + bmi323@0 { > + compatible = "bosch,bmi323"; > + reg = <0>; > + spi-max-frequency = <10000000>; > + interrupt-parent = <&gpio2>; > + interrupts = <12 IRQ_TYPE_EDGE_FALLING>; > + interrupt-names = "INT2"; > + }; > + };