# 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.
