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

properties:
    irq-gpios:
      type: phandle-array
      required: false
      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.

    int-pin:
      type: int
      required: false
      default: 1
      enum:
        - 1 # drdy is generated from INT1
        - 2 # drdy is generated from INT2
      description: Select DRDY pin number (1 or 2).

        This number represents which of the two interrupt pins
        (INT1 or INT2) the drdy line is attached to. This property is not
        mandatory and if not present it defaults to 1 which is the
        configuration at power-up.
