18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/iio/imu/invensense,icm42600.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: InvenSense ICM-426xx Inertial Measurement Unit
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis
148c2ecf20Sopenharmony_ci  accelerometer.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci  It has a configurable host interface that supports I3C, I2C and SPI serial
178c2ecf20Sopenharmony_ci  communication, features a 2kB FIFO and 2 programmable interrupts with
188c2ecf20Sopenharmony_ci  ultra-low-power wake-on-motion support to minimize system power consumption.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci  Other industry-leading features include InvenSense on-chip APEX Motion
218c2ecf20Sopenharmony_ci  Processing engine for gesture recognition, activity classification, and
228c2ecf20Sopenharmony_ci  pedometer, along with programmable digital filters, and an embedded
238c2ecf20Sopenharmony_ci  temperature sensor.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  https://invensense.tdk.com/wp-content/uploads/2020/03/DS-000292-ICM-42605-v1.4.pdf
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciproperties:
288c2ecf20Sopenharmony_ci  compatible:
298c2ecf20Sopenharmony_ci    enum:
308c2ecf20Sopenharmony_ci      - invensense,icm42600
318c2ecf20Sopenharmony_ci      - invensense,icm42602
328c2ecf20Sopenharmony_ci      - invensense,icm42605
338c2ecf20Sopenharmony_ci      - invensense,icm42622
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  reg:
368c2ecf20Sopenharmony_ci    maxItems: 1
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  interrupts:
398c2ecf20Sopenharmony_ci    maxItems: 1
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  drive-open-drain:
428c2ecf20Sopenharmony_ci    type: boolean
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci  vdd-supply:
458c2ecf20Sopenharmony_ci    description: Regulator that provides power to the sensor
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  vddio-supply:
488c2ecf20Sopenharmony_ci    description: Regulator that provides power to the bus
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci  spi-max-frequency: true
518c2ecf20Sopenharmony_ci  spi-cpha: true
528c2ecf20Sopenharmony_ci  spi-cpol: true
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_cirequired:
558c2ecf20Sopenharmony_ci  - compatible
568c2ecf20Sopenharmony_ci  - reg
578c2ecf20Sopenharmony_ci  - interrupts
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciadditionalProperties: false
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciexamples:
628c2ecf20Sopenharmony_ci  - |
638c2ecf20Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
648c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
658c2ecf20Sopenharmony_ci    i2c0 {
668c2ecf20Sopenharmony_ci        #address-cells = <1>;
678c2ecf20Sopenharmony_ci        #size-cells = <0>;
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci        icm42605@68 {
708c2ecf20Sopenharmony_ci          compatible = "invensense,icm42605";
718c2ecf20Sopenharmony_ci          reg = <0x68>;
728c2ecf20Sopenharmony_ci          interrupt-parent = <&gpio2>;
738c2ecf20Sopenharmony_ci          interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
748c2ecf20Sopenharmony_ci          vdd-supply = <&vdd>;
758c2ecf20Sopenharmony_ci          vddio-supply = <&vddio>;
768c2ecf20Sopenharmony_ci        };
778c2ecf20Sopenharmony_ci    };
788c2ecf20Sopenharmony_ci  - |
798c2ecf20Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
808c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
818c2ecf20Sopenharmony_ci    spi0 {
828c2ecf20Sopenharmony_ci        #address-cells = <1>;
838c2ecf20Sopenharmony_ci        #size-cells = <0>;
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci        icm42602@0 {
868c2ecf20Sopenharmony_ci          compatible = "invensense,icm42602";
878c2ecf20Sopenharmony_ci          reg = <0>;
888c2ecf20Sopenharmony_ci          spi-max-frequency = <24000000>;
898c2ecf20Sopenharmony_ci          spi-cpha;
908c2ecf20Sopenharmony_ci          spi-cpol;
918c2ecf20Sopenharmony_ci          interrupt-parent = <&gpio1>;
928c2ecf20Sopenharmony_ci          interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
938c2ecf20Sopenharmony_ci          vdd-supply = <&vdd>;
948c2ecf20Sopenharmony_ci          vddio-supply = <&vddio>;
958c2ecf20Sopenharmony_ci        };
968c2ecf20Sopenharmony_ci    };
97