# Copyright (c) 2022 Intel Corporation
# Copyright (c) 2022 Esco Medical ApS
# Copyright (c) 2020 TDK Invensense
# SPDX-License-Identifier: Apache-2.0

description: ICM-42688 motion tracking device

compatible: "invensense,icm42688"

include: [sensor-device.yaml, spi-device.yaml]

properties:
  int-gpios:
    type: phandle-array
    description: |
      The INT signal default configuration is active-high. The
      property value should ensure the flags properly describe the
      signal that is presented to the driver.

  accel-hz:
    type: int
    description: |
      Default frequency of accelerometer. (Unit - Hz)
      Maps to ACCEL_ODR field in ACCEL_CONFIG0 setting
      Power-on reset value is 1000.
    default: 1000
    enum:
      - 1
      - 3
      - 6
      - 12
      - 25
      - 50
      - 100
      - 200
      - 500
      - 1000
      - 2000
      - 4000
      - 8000
      - 16000
      - 32000

  gyro-hz:
    type: int
    description: |
      Default frequency of gyroscope. (Unit - Hz)
      Maps to GYRO_ODR field in GYRO_CONFIG0 setting
      Power-on reset value is 1000.
    default: 1000
    enum:
      - 1
      - 3
      - 6
      - 12
      - 25
      - 50
      - 100
      - 200
      - 500
      - 1000
      - 2000
      - 4000
      - 8000
      - 16000
      - 32000

  accel-fs:
    type: int
    description: |
      Default full scale of accelerometer. (Unit - g)
      Maps to ACCEL_FS_SEL field in ACCEL_CONFIG0 setting
      Power-on reset value is 16
    default: 16
    enum:
      - 16
      - 8
      - 4
      - 2

  gyro-fs:
    type: int
    description: |
      Default full scale of gyroscope. (Unit - DPS)
      Maps to GYRO_FS_SEL field in GYRO_CONFIG0 setting
      Power-on reset value is 2000
    default: 2000
    enum:
      - 2000
      - 1000
      - 500
      - 250
      - 125
      - 63
      - 31
      - 16
