# 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 I2C help Enable driver for the FXOS8700 accelerometer/magnetometer if !HAS_DTS_I2C_DEVICE 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. endif # !HAS_DTS_I2C_DEVICE 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) 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 if !HAS_DTS_GPIO_DEVICE config FXOS8700_GPIO_NAME string "GPIO device name" depends on FXOS8700_TRIGGER config FXOS8700_GPIO_PIN int "GPIO pin" depends on FXOS8700_TRIGGER endif config FXOS8700_DRDY_INT1 bool "Data ready interrupt to INT1 pin" depends on FXOS8700_TRIGGER 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" help Enable pulse detection if FXOS8700_PULSE config FXOS8700_PULSE_INT1 bool "Pulse interrupt to INT1 pin" 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