Message ID | 20200507144222.20989-12-jmaneyrol@invensense.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: imu: new inv_icm42600 driver | expand |
On Thu, May 07, 2020 at 04:42:21PM +0200, Jean-Baptiste Maneyrol wrote: > Document the ICM-426xxx devices devicetree bindings. > > Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> > --- > .../bindings/iio/imu/invensense,icm42600.yaml | 90 +++++++++++++++++++ > 1 file changed, 90 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml > > diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml > new file mode 100644 > index 000000000000..a7175f6543fa > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml > @@ -0,0 +1,90 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/imu/invensense,icm42600.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: InvenSense ICM-426xx Inertial Measurement Unit > + > +maintainers: > + - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> > + > +description: | > + 6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis accelerometer. > + > + It has a configurable host interface that supports I3C, I2C and SPI serial communication, features a 2kB FIFO and > + 2 programmable interrupts with ultra-low-power wake-on-motion support to minimize system power consumption. > + > + Other industry-leading features include InvenSense on-chip APEX Motion Processing engine for gesture recognition, > + activity classification, and pedometer, along with programmable digital filters, and an embedded temperature sensor. > + > + https://invensense.tdk.com/wp-content/uploads/2020/03/DS-000292-ICM-42605-v1.4.pdf > + > +properties: > + compatible: > + enum: > + - invensense,icm42600 > + - invensense,icm42602 > + - invensense,icm42605 > + - invensense,icm42622 > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + spi-cpha: true > + > + spi-cpol: true It doesn't make much sense to specify these and not make them required. I guess you could have a device with multiple modes, but generally there's only one right combination of these properties. Also, this could just be implied by the compatible. > + > + spi-max-frequency: > + maxItems: 1 Not an array. Either give a frequency range (minimum/maximum) or just 'true'. > + > + vdd-supply: > + description: Regulator that provides power to the sensor > + > + vddio-supply: > + description: Regulator that provides power to the bus > + > +required: > + - compatible > + - reg > + - interrupts > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + icm42605@68 { > + compatible = "invensense,icm42605"; > + reg = <0x68>; > + interrupt-parent = <&gpio2>; > + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; > + vdd-supply = <&vdd>; > + vddio-supply = <&vddio>; > + }; > + }; > + - | > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + spi0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + icm42602@0 { > + compatible = "invensense,icm42602"; > + reg = <0>; > + spi-max-frequency = <24000000>; > + spi-cpha; > + spi-cpol; > + interrupt-parent = <&gpio1>; > + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; > + vdd-supply = <&vdd>; > + vddio-supply = <&vddio>; > + }; > + }; > -- > 2.17.1 >
diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml new file mode 100644 index 000000000000..a7175f6543fa --- /dev/null +++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml @@ -0,0 +1,90 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/imu/invensense,icm42600.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: InvenSense ICM-426xx Inertial Measurement Unit + +maintainers: + - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> + +description: | + 6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis accelerometer. + + It has a configurable host interface that supports I3C, I2C and SPI serial communication, features a 2kB FIFO and + 2 programmable interrupts with ultra-low-power wake-on-motion support to minimize system power consumption. + + Other industry-leading features include InvenSense on-chip APEX Motion Processing engine for gesture recognition, + activity classification, and pedometer, along with programmable digital filters, and an embedded temperature sensor. + + https://invensense.tdk.com/wp-content/uploads/2020/03/DS-000292-ICM-42605-v1.4.pdf + +properties: + compatible: + enum: + - invensense,icm42600 + - invensense,icm42602 + - invensense,icm42605 + - invensense,icm42622 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + spi-cpha: true + + spi-cpol: true + + spi-max-frequency: + maxItems: 1 + + vdd-supply: + description: Regulator that provides power to the sensor + + vddio-supply: + description: Regulator that provides power to the bus + +required: + - compatible + - reg + - interrupts + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/interrupt-controller/irq.h> + i2c0 { + #address-cells = <1>; + #size-cells = <0>; + + icm42605@68 { + compatible = "invensense,icm42605"; + reg = <0x68>; + interrupt-parent = <&gpio2>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + vdd-supply = <&vdd>; + vddio-supply = <&vddio>; + }; + }; + - | + #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/interrupt-controller/irq.h> + spi0 { + #address-cells = <1>; + #size-cells = <0>; + + icm42602@0 { + compatible = "invensense,icm42602"; + reg = <0>; + spi-max-frequency = <24000000>; + spi-cpha; + spi-cpol; + interrupt-parent = <&gpio1>; + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + vdd-supply = <&vdd>; + vddio-supply = <&vddio>; + }; + };
Document the ICM-426xxx devices devicetree bindings. Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> --- .../bindings/iio/imu/invensense,icm42600.yaml | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml