100 lines
2.5 KiB
YAML
100 lines
2.5 KiB
YAML
|
# 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
|
||
|
- invensense,icm42631
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
interrupts:
|
||
|
maxItems: 1
|
||
|
|
||
|
drive-open-drain:
|
||
|
type: boolean
|
||
|
|
||
|
vdd-supply:
|
||
|
description: Regulator that provides power to the sensor
|
||
|
|
||
|
vddio-supply:
|
||
|
description: Regulator that provides power to the bus
|
||
|
|
||
|
spi-cpha: true
|
||
|
spi-cpol: true
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- interrupts
|
||
|
|
||
|
allOf:
|
||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||
|
|
||
|
unevaluatedProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/gpio/gpio.h>
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
i2c {
|
||
|
#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>
|
||
|
spi {
|
||
|
#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>;
|
||
|
};
|
||
|
};
|