145924b8fSJean-Baptiste Maneyrol# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
245924b8fSJean-Baptiste Maneyrol%YAML 1.2
345924b8fSJean-Baptiste Maneyrol---
445924b8fSJean-Baptiste Maneyrol$id: http://devicetree.org/schemas/iio/imu/invensense,icm42600.yaml#
545924b8fSJean-Baptiste Maneyrol$schema: http://devicetree.org/meta-schemas/core.yaml#
645924b8fSJean-Baptiste Maneyrol
745924b8fSJean-Baptiste Maneyroltitle: InvenSense ICM-426xx Inertial Measurement Unit
845924b8fSJean-Baptiste Maneyrol
945924b8fSJean-Baptiste Maneyrolmaintainers:
1045924b8fSJean-Baptiste Maneyrol  - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
1145924b8fSJean-Baptiste Maneyrol
1245924b8fSJean-Baptiste Maneyroldescription: |
1345924b8fSJean-Baptiste Maneyrol  6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis
1445924b8fSJean-Baptiste Maneyrol  accelerometer.
1545924b8fSJean-Baptiste Maneyrol
1645924b8fSJean-Baptiste Maneyrol  It has a configurable host interface that supports I3C, I2C and SPI serial
1745924b8fSJean-Baptiste Maneyrol  communication, features a 2kB FIFO and 2 programmable interrupts with
1845924b8fSJean-Baptiste Maneyrol  ultra-low-power wake-on-motion support to minimize system power consumption.
1945924b8fSJean-Baptiste Maneyrol
2045924b8fSJean-Baptiste Maneyrol  Other industry-leading features include InvenSense on-chip APEX Motion
2145924b8fSJean-Baptiste Maneyrol  Processing engine for gesture recognition, activity classification, and
2245924b8fSJean-Baptiste Maneyrol  pedometer, along with programmable digital filters, and an embedded
2345924b8fSJean-Baptiste Maneyrol  temperature sensor.
2445924b8fSJean-Baptiste Maneyrol
2545924b8fSJean-Baptiste Maneyrol  https://invensense.tdk.com/wp-content/uploads/2020/03/DS-000292-ICM-42605-v1.4.pdf
2645924b8fSJean-Baptiste Maneyrol
2745924b8fSJean-Baptiste Maneyrolproperties:
2845924b8fSJean-Baptiste Maneyrol  compatible:
2945924b8fSJean-Baptiste Maneyrol    enum:
3045924b8fSJean-Baptiste Maneyrol      - invensense,icm42600
3145924b8fSJean-Baptiste Maneyrol      - invensense,icm42602
3245924b8fSJean-Baptiste Maneyrol      - invensense,icm42605
3345924b8fSJean-Baptiste Maneyrol      - invensense,icm42622
347b445238SJay Greco      - invensense,icm42631
3545924b8fSJean-Baptiste Maneyrol
3645924b8fSJean-Baptiste Maneyrol  reg:
3745924b8fSJean-Baptiste Maneyrol    maxItems: 1
3845924b8fSJean-Baptiste Maneyrol
3945924b8fSJean-Baptiste Maneyrol  interrupts:
4045924b8fSJean-Baptiste Maneyrol    maxItems: 1
4145924b8fSJean-Baptiste Maneyrol
4245924b8fSJean-Baptiste Maneyrol  drive-open-drain:
4345924b8fSJean-Baptiste Maneyrol    type: boolean
4445924b8fSJean-Baptiste Maneyrol
4545924b8fSJean-Baptiste Maneyrol  vdd-supply:
4645924b8fSJean-Baptiste Maneyrol    description: Regulator that provides power to the sensor
4745924b8fSJean-Baptiste Maneyrol
4845924b8fSJean-Baptiste Maneyrol  vddio-supply:
4945924b8fSJean-Baptiste Maneyrol    description: Regulator that provides power to the bus
5045924b8fSJean-Baptiste Maneyrol
515be478f9SRob Herring  spi-cpha: true
525be478f9SRob Herring  spi-cpol: true
535be478f9SRob Herring
5445924b8fSJean-Baptiste Maneyrolrequired:
5545924b8fSJean-Baptiste Maneyrol  - compatible
5645924b8fSJean-Baptiste Maneyrol  - reg
5745924b8fSJean-Baptiste Maneyrol  - interrupts
5845924b8fSJean-Baptiste Maneyrol
598d98a8c6SKrzysztof KozlowskiallOf:
608d98a8c6SKrzysztof Kozlowski  - $ref: /schemas/spi/spi-peripheral-props.yaml#
618d98a8c6SKrzysztof Kozlowski
628d98a8c6SKrzysztof KozlowskiunevaluatedProperties: false
635be478f9SRob Herring
6445924b8fSJean-Baptiste Maneyrolexamples:
6545924b8fSJean-Baptiste Maneyrol  - |
6645924b8fSJean-Baptiste Maneyrol    #include <dt-bindings/gpio/gpio.h>
6745924b8fSJean-Baptiste Maneyrol    #include <dt-bindings/interrupt-controller/irq.h>
68*46908557SKrzysztof Kozlowski    i2c {
6945924b8fSJean-Baptiste Maneyrol        #address-cells = <1>;
7045924b8fSJean-Baptiste Maneyrol        #size-cells = <0>;
7145924b8fSJean-Baptiste Maneyrol
7245924b8fSJean-Baptiste Maneyrol        icm42605@68 {
7345924b8fSJean-Baptiste Maneyrol            compatible = "invensense,icm42605";
7445924b8fSJean-Baptiste Maneyrol            reg = <0x68>;
7545924b8fSJean-Baptiste Maneyrol            interrupt-parent = <&gpio2>;
7645924b8fSJean-Baptiste Maneyrol            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
7745924b8fSJean-Baptiste Maneyrol            vdd-supply = <&vdd>;
7845924b8fSJean-Baptiste Maneyrol            vddio-supply = <&vddio>;
7945924b8fSJean-Baptiste Maneyrol        };
8045924b8fSJean-Baptiste Maneyrol    };
8145924b8fSJean-Baptiste Maneyrol  - |
8245924b8fSJean-Baptiste Maneyrol    #include <dt-bindings/gpio/gpio.h>
8345924b8fSJean-Baptiste Maneyrol    #include <dt-bindings/interrupt-controller/irq.h>
84*46908557SKrzysztof Kozlowski    spi {
8545924b8fSJean-Baptiste Maneyrol        #address-cells = <1>;
8645924b8fSJean-Baptiste Maneyrol        #size-cells = <0>;
8745924b8fSJean-Baptiste Maneyrol
8845924b8fSJean-Baptiste Maneyrol        icm42602@0 {
8945924b8fSJean-Baptiste Maneyrol            compatible = "invensense,icm42602";
9045924b8fSJean-Baptiste Maneyrol            reg = <0>;
9145924b8fSJean-Baptiste Maneyrol            spi-max-frequency = <24000000>;
9245924b8fSJean-Baptiste Maneyrol            spi-cpha;
9345924b8fSJean-Baptiste Maneyrol            spi-cpol;
9445924b8fSJean-Baptiste Maneyrol            interrupt-parent = <&gpio1>;
9545924b8fSJean-Baptiste Maneyrol            interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
9645924b8fSJean-Baptiste Maneyrol            vdd-supply = <&vdd>;
9745924b8fSJean-Baptiste Maneyrol            vddio-supply = <&vddio>;
9845924b8fSJean-Baptiste Maneyrol        };
9945924b8fSJean-Baptiste Maneyrol    };
100