# Copyright (c) 2021 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

include: sensor-device.yaml

properties:
    drdy-gpios:
      type: phandle-array
      description: |
        DRDY pin

        This pin defaults to active high when produced by the sensor.
        The property value should ensure the flags properly describe
        the signal that is presented to the driver.

    odr:
      type: int
      default: 0
      description: |
          Specify the default output data rate expressed in samples per second (Hz).
          The default is the power-on reset value.
      enum:
        - 0  # Power-Down
        - 1  # 1Hz
        - 2  # 10Hz
        - 3  # 25Hz
        - 4  # 50Hz
        - 5  # 75Hz
        - 6  # 100Hz
        - 7  # 200Hz
