Add devicetree description document for Bosch BMI260, a 6-Axis IMU.
Signed-off-by: Justin Weiss <justin@justinweiss.com>
---
.../bindings/iio/imu/bosch,bmi260.yaml | 77 +++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 78 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml
diff --git a/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml b/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml
new file mode 100644
index 000000000000..6786b5e4d0fa
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/imu/bosch,bmi260.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bosch BMI260 6-Axis IMU
+
+maintainers:
+ - Justin Weiss <justin@justinweiss.com>
+
+description: |
+ BMI260 is a 6-axis inertial measurement unit that can measure acceleration and
+ angular velocity. The sensor also supports configurable interrupt events such
+ as motion detection and step counting. The sensor can communicate over
+ I2C or SPI.
+ https://www.bosch-sensortec.com/products/motion-sensors/imus/bmi260/
+
+properties:
+ compatible:
+ const: bosch,bmi260
+
+ reg:
+ maxItems: 1
+
+ vdd-supply: true
+ vddio-supply: true
+
+ interrupts:
+ minItems: 1
+ maxItems: 2
+
+ interrupt-names:
+ minItems: 1
+ maxItems: 2
+ items:
+ enum:
+ - INT1
+ - INT2
+
+ drive-open-drain:
+ description:
+ set if the specified interrupt pins should be configured as
+ open drain. If not set, defaults to push-pull.
+
+ mount-matrix:
+ description:
+ an optional 3x3 mounting rotation matrix.
+
+required:
+ - compatible
+ - reg
+ - vdd-supply
+ - vddio-supply
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ imu@68 {
+ compatible = "bosch,bmi260";
+ reg = <0x68>;
+ vdd-supply = <&vdd>;
+ vddio-supply = <&vddio>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <16 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "INT1";
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 6011af70c12e..73b6b7721dd8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4047,6 +4047,7 @@ BOSCH SENSORTEC BMI270 IMU IIO DRIVER
M: Alex Lanzano <lanzano.alex@gmail.com>
L: linux-iio@vger.kernel.org
S: Maintained
+F: Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml
F: Documentation/devicetree/bindings/iio/imu/bosch,bmi270.yaml
F: drivers/iio/imu/bmi270/
--
2.47.0
On Fri, 18 Oct 2024 16:36:09 -0700 Justin Weiss <justin@justinweiss.com> wrote: > Add devicetree description document for Bosch BMI260, a 6-Axis IMU. > > Signed-off-by: Justin Weiss <justin@justinweiss.com> Looks like this would be much better as an additional compatible id in the existing bosch,bmi270.yaml binding doc. From a quick comparison they look nearly identical. Even if there are small differences the dt binding schema allows those to be expressed in a single file. Jonathan > --- > .../bindings/iio/imu/bosch,bmi260.yaml | 77 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 78 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml > > diff --git a/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml b/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml > new file mode 100644 > index 000000000000..6786b5e4d0fa > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml > @@ -0,0 +1,77 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/imu/bosch,bmi260.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bosch BMI260 6-Axis IMU > + > +maintainers: > + - Justin Weiss <justin@justinweiss.com> > + > +description: | > + BMI260 is a 6-axis inertial measurement unit that can measure acceleration and > + angular velocity. The sensor also supports configurable interrupt events such > + as motion detection and step counting. The sensor can communicate over > + I2C or SPI. > + https://www.bosch-sensortec.com/products/motion-sensors/imus/bmi260/ > + > +properties: > + compatible: > + const: bosch,bmi260 > + > + reg: > + maxItems: 1 > + > + vdd-supply: true > + vddio-supply: true > + > + interrupts: > + minItems: 1 > + maxItems: 2 > + > + interrupt-names: > + minItems: 1 > + maxItems: 2 > + items: > + enum: > + - INT1 > + - INT2 > + > + drive-open-drain: > + description: > + set if the specified interrupt pins should be configured as > + open drain. If not set, defaults to push-pull. > + > + mount-matrix: > + description: > + an optional 3x3 mounting rotation matrix. > + > +required: > + - compatible > + - reg > + - vdd-supply > + - vddio-supply > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + imu@68 { > + compatible = "bosch,bmi260"; > + reg = <0x68>; > + vdd-supply = <&vdd>; > + vddio-supply = <&vddio>; > + interrupt-parent = <&gpio1>; > + interrupts = <16 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "INT1"; > + }; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 6011af70c12e..73b6b7721dd8 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -4047,6 +4047,7 @@ BOSCH SENSORTEC BMI270 IMU IIO DRIVER > M: Alex Lanzano <lanzano.alex@gmail.com> > L: linux-iio@vger.kernel.org > S: Maintained > +F: Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml > F: Documentation/devicetree/bindings/iio/imu/bosch,bmi270.yaml > F: drivers/iio/imu/bmi270/ >
Jonathan Cameron <jic23@kernel.org> writes: > On Fri, 18 Oct 2024 16:36:09 -0700 > Justin Weiss <justin@justinweiss.com> wrote: > >> Add devicetree description document for Bosch BMI260, a 6-Axis IMU. >> >> Signed-off-by: Justin Weiss <justin@justinweiss.com> > Looks like this would be much better as an additional compatible id > in the existing bosch,bmi270.yaml binding doc. > > From a quick comparison they look nearly identical. > Even if there are small differences the dt binding schema allows > those to be expressed in a single file. > > Jonathan Sounds good, will update in v3. Justin >> --- >> .../bindings/iio/imu/bosch,bmi260.yaml | 77 +++++++++++++++++++ >> MAINTAINERS | 1 + >> 2 files changed, 78 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml >> >> diff --git >> a/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml >> b/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml >> new file mode 100644 >> index 000000000000..6786b5e4d0fa >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml >> @@ -0,0 +1,77 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/iio/imu/bosch,bmi260.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Bosch BMI260 6-Axis IMU >> + >> +maintainers: >> + - Justin Weiss <justin@justinweiss.com> >> + >> +description: | >> + BMI260 is a 6-axis inertial measurement unit that can measure acceleration and >> + angular velocity. The sensor also supports configurable interrupt events such >> + as motion detection and step counting. The sensor can communicate over >> + I2C or SPI. >> + https://www.bosch-sensortec.com/products/motion-sensors/imus/bmi260/ >> + >> +properties: >> + compatible: >> + const: bosch,bmi260 >> + >> + reg: >> + maxItems: 1 >> + >> + vdd-supply: true >> + vddio-supply: true >> + >> + interrupts: >> + minItems: 1 >> + maxItems: 2 >> + >> + interrupt-names: >> + minItems: 1 >> + maxItems: 2 >> + items: >> + enum: >> + - INT1 >> + - INT2 >> + >> + drive-open-drain: >> + description: >> + set if the specified interrupt pins should be configured as >> + open drain. If not set, defaults to push-pull. >> + >> + mount-matrix: >> + description: >> + an optional 3x3 mounting rotation matrix. >> + >> +required: >> + - compatible >> + - reg >> + - vdd-supply >> + - vddio-supply >> + >> +allOf: >> + - $ref: /schemas/spi/spi-peripheral-props.yaml# >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/interrupt-controller/irq.h> >> + i2c { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + imu@68 { >> + compatible = "bosch,bmi260"; >> + reg = <0x68>; >> + vdd-supply = <&vdd>; >> + vddio-supply = <&vddio>; >> + interrupt-parent = <&gpio1>; >> + interrupts = <16 IRQ_TYPE_EDGE_RISING>; >> + interrupt-names = "INT1"; >> + }; >> + }; >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 6011af70c12e..73b6b7721dd8 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -4047,6 +4047,7 @@ BOSCH SENSORTEC BMI270 IMU IIO DRIVER >> M: Alex Lanzano <lanzano.alex@gmail.com> >> L: linux-iio@vger.kernel.org >> S: Maintained >> +F: Documentation/devicetree/bindings/iio/imu/bosch,bmi260.yaml >> F: Documentation/devicetree/bindings/iio/imu/bosch,bmi270.yaml >> F: drivers/iio/imu/bmi270/ >>
© 2016 - 2024 Red Hat, Inc.