228 lines
5.7 KiB
Plaintext
228 lines
5.7 KiB
Plaintext
# Kconfig - FXOS8700 6-axis accelerometer/magnetometer
|
|
#
|
|
# Copyright (c) 2016 Freescale Semiconductor, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
menuconfig FXOS8700
|
|
bool "FXOS8700 accelerometer/magnetometer driver"
|
|
depends on SENSOR && I2C
|
|
default n
|
|
help
|
|
Enable driver for the FXOS8700 accelerometer/magnetometer
|
|
|
|
config FXOS8700_NAME
|
|
string "Device name"
|
|
depends on FXOS8700
|
|
default "FXOS8700"
|
|
|
|
config FXOS8700_I2C_NAME
|
|
string "I2C device name"
|
|
depends on FXOS8700
|
|
default I2C_0_NAME
|
|
|
|
config FXOS8700_I2C_ADDRESS
|
|
hex "I2C address"
|
|
depends on FXOS8700
|
|
range 0x1c 0x1f
|
|
default 0x1d
|
|
help
|
|
The I2C slave address can be configured by the SA0 and SA1 input
|
|
pins. This option should usually be set by the board defconfig.
|
|
|
|
config FXOS8700_WHOAMI
|
|
hex "WHOAMI value"
|
|
depends on FXOS8700
|
|
range 0x00 0xff
|
|
default 0xc7
|
|
help
|
|
The datasheet defines the value of the WHOAMI register, but some
|
|
pre-production devices can have a different value. It is unlikely you
|
|
should need to change this configuration option from the default.
|
|
|
|
choice
|
|
prompt "Mode"
|
|
depends on FXOS8700
|
|
default FXOS8700_MODE_ACCEL
|
|
|
|
config FXOS8700_MODE_ACCEL
|
|
bool "Accelerometer-only mode"
|
|
|
|
config FXOS8700_MODE_MAGN
|
|
bool "Magnetometer-only mode"
|
|
|
|
config FXOS8700_MODE_HYBRID
|
|
bool "Hybrid (accel+mag) mode"
|
|
|
|
endchoice
|
|
|
|
config FXOS8700_TEMP
|
|
bool "Enable temperature"
|
|
depends on FXOS8700 && (FXOS8700_MODE_MAGN || FXOS8700_MODE_HYBRID)
|
|
default n
|
|
help
|
|
Enable the temperature sensor. Note that the temperature sensor is
|
|
uncalibrated and its output for a given temperature may vary from one
|
|
device to the next.
|
|
|
|
choice
|
|
prompt "Range"
|
|
depends on FXOS8700
|
|
default FXOS8700_RANGE_8G
|
|
|
|
config FXOS8700_RANGE_8G
|
|
bool "8g (0.976 mg/LSB)"
|
|
|
|
config FXOS8700_RANGE_4G
|
|
bool "4g (0.488 mg/LSB)"
|
|
|
|
config FXOS8700_RANGE_2G
|
|
bool "2g (0.244 mg/LSB)"
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Trigger mode"
|
|
depends on FXOS8700
|
|
default FXOS8700_TRIGGER_NONE
|
|
|
|
config FXOS8700_TRIGGER_NONE
|
|
bool "No trigger"
|
|
|
|
config FXOS8700_TRIGGER_GLOBAL_THREAD
|
|
bool "Use global thread"
|
|
select FXOS8700_TRIGGER
|
|
|
|
config FXOS8700_TRIGGER_OWN_THREAD
|
|
bool "Use own thread"
|
|
select FXOS8700_TRIGGER
|
|
|
|
endchoice
|
|
|
|
config FXOS8700_TRIGGER
|
|
bool
|
|
depends on FXOS8700
|
|
default n
|
|
|
|
config FXOS8700_GPIO_NAME
|
|
string "GPIO device name"
|
|
depends on FXOS8700_TRIGGER
|
|
|
|
config FXOS8700_GPIO_PIN
|
|
int "GPIO pin"
|
|
depends on FXOS8700_TRIGGER
|
|
|
|
config FXOS8700_DRDY_INT1
|
|
bool "Data ready interrupt to INT1 pin"
|
|
depends on FXOS8700_TRIGGER
|
|
default n
|
|
help
|
|
Say Y to route data ready interrupt to INT1 pin. Say N to route to
|
|
INT2 pin.
|
|
|
|
if FXOS8700_TRIGGER
|
|
|
|
config FXOS8700_THREAD_PRIORITY
|
|
int "Own thread priority"
|
|
depends on FXOS8700_TRIGGER_OWN_THREAD
|
|
default 10
|
|
|
|
config FXOS8700_THREAD_STACK_SIZE
|
|
int "Own thread stack size"
|
|
depends on FXOS8700_TRIGGER_OWN_THREAD
|
|
default 1024
|
|
|
|
menuconfig FXOS8700_PULSE
|
|
bool "Pulse detection"
|
|
default n
|
|
help
|
|
Enable pulse detection
|
|
|
|
if FXOS8700_PULSE
|
|
|
|
config FXOS8700_PULSE_INT1
|
|
bool "Pulse interrupt to INT1 pin"
|
|
default n
|
|
help
|
|
Say Y to route pulse interrupt to INT1 pin. Say N to route to INT2 pin.
|
|
|
|
config FXOS8700_PULSE_CFG
|
|
hex "Pulse configuration register"
|
|
range 0 0xff
|
|
default 0x3f
|
|
|
|
config FXOS8700_PULSE_THSX
|
|
hex "Pulse X-axis threshold"
|
|
range 0 0x7f
|
|
default 0x20
|
|
help
|
|
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.
|
|
|
|
config FXOS8700_PULSE_THSY
|
|
hex "Pulse Y-axis threshold"
|
|
range 0 0x7f
|
|
default 0x20
|
|
help
|
|
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.
|
|
|
|
config FXOS8700_PULSE_THSZ
|
|
hex "Pulse Z-axis threshold"
|
|
range 0 0x7f
|
|
default 0x40
|
|
help
|
|
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.
|
|
|
|
config FXOS8700_PULSE_TMLT
|
|
hex "Pulse time limit"
|
|
range 0 0x7f
|
|
default 0x18
|
|
help
|
|
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.
|
|
|
|
config FXOS8700_PULSE_LTCY
|
|
hex "Pulse latency"
|
|
range 0 0xff
|
|
default 0x28
|
|
help
|
|
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.
|
|
|
|
config FXOS8700_PULSE_WIND
|
|
hex "Pulse window"
|
|
range 0 0xff
|
|
default 0x3c
|
|
help
|
|
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.
|
|
|
|
endif # FXOS8700_PULSE
|
|
|
|
endif # FXOS8700_TRIGGER
|