# Copyright (c) 2018, NXP
# SPDX-License-Identifier: Apache-2.0

description: FXOS8700 6-axis accelerometer/magnetometer sensor

compatible: "nxp,fxos8700"

include: i2c-device.yaml

properties:
    reset-gpios:
      type: phandle-array
      required: false
      description: RST pin
        This pin defaults to active high when consumed by the sensor.
        The property value should ensure the flags properly describe
        the signal that is presented to the driver.

    int1-gpios:
      type: phandle-array
      required: false
      description: INT1 pin
        This pin defaults to active low when produced by the sensor.
        The property value should ensure the flags properly describe
        the signal that is presented to the driver.

    int2-gpios:
      type: phandle-array
      required: false
      description: INT2 pin
        This pin defaults to active low when produced by the sensor.
        The property value should ensure the flags properly describe
        the signal that is presented to the driver.

    range:
      type: int
      required: false
      default: 8
      description: Range in g
      enum:
        - 8 # 8g (0.976 mg/LSB)
        - 4 # 4g (0.488 mg/LSB)
        - 2 # 2g (0.244 mg/LSB)

    power-mode:
      type: int
      required: false
      default: 0
      description: Power mode
      enum:
        - 0 # Normal
        - 1 # Low noise, low power
        - 2 # High resolution
        - 3 # Low power

    pulse-cfg:
      type: int
      required: false
      default: 0x3f
      description: Pulse configuration register

    pulse-thsx:
      type: int
      required: false
      default: 0x20
      description: Pulse X-axis threshold
        Threshold to start the pulse-event detection procedure on the X-axis.
        Threshold values for each axis are unsigned 7-bit numbers with a fixed
        resolution of 0.063 g/LSB, corresponding to an 8g acceleration
        full-scale range.

    pulse-thsy:
      type: int
      required: false
      default: 0x20
      description: Pulse Y-axis threshold
        Threshold to start the pulse-event detection procedure on the Y-axis.
        Threshold values for each axis are unsigned 7-bit numbers with a fixed
        resolution of 0.063 g/LSB, corresponding to an 8g acceleration
        full-scale range.

    pulse-thsz:
      type: int
      required: false
      default: 0x40
      description: Pulse Z-axis threshold
        Threshold to start the pulse-event detection procedure on the Z-axis.
        Threshold values for each axis are unsigned 7-bit numbers with a fixed
        resolution of 0.063 g/LSB, corresponding to an 8g acceleration
        full-scale range.

    pulse-tmlt:
      type: int
      required: false
      default: 0x18
      description: Pulse time limit
        The maximum time interval that can elapse between the start of the
        acceleration on the selected channel exceeding the specified threshold
        and the end when the channel acceleration goes back below the specified
        threshold. The resolution depends upon the sample rate (ODR) and the
        high-pass filter configuration (HP_FILTER_CUTOFF[pls_hpf_en]). For
        ODR=800 Hz and pls_hpf_en=0, the resolution is 0.625 ms/LSB.

    pulse-ltcy:
      type: int
      required: false
      default: 0x28
      description: Pulse latency
        The time interval that starts after the first pulse detection where the
        pulse-detection function ignores the start of a new pulse. The
        resolution depends upon the sample rate (ODR) and the high-pass filter
        configuration (HP_FILTER_CUTOFF[pls_hpf_en]). For ODR=800 Hz and
        pls_hpf_en=0, the resolution is 1.25 ms/LSB.

    pulse-wind:
      type: int
      required: false
      default: 0x3c
      description: Pulse window
        The maximum interval of time that can elapse after the end of the
        latency interval in which the start of the second pulse event must be
        detected provided the device has been configured for double pulse
        detection. The detected second pulse width must be shorter than the
        time limit constraint specified by the PULSE_TMLT register, but the end
        of the double pulse need not finish within the time specified by the
        PULSE_WIND register. The resolution depends upon the sample rate (ODR)
        and the high-pass filter configuration (HP_FILTER_CUTOFF[pls_hpf_en]).
        For ODR=800 Hz and pls_hpf_en=0, the resolution is 1.25 ms/LSB.

    mag-vecm-cfg:
      type: int
      required: false
      default: 0x4e
      description: Magnetic vector-magnitude configuration register

    mag-vecm-ths-msb:
      type: int
      required: false
      default: 0x00
      description: Magnetic vector-magnitude threshold most significant byte.
        Resolution is 0.1 uT/LSB.

    mag-vecm-ths-lsb:
      type: int
      required: false
      default: 0x5a
      description: Magnetic vector-magnitude threshold least significant byte.
        Resolution is 0.1 uT/LSB.
