| # 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 |
| default n |
| 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) |
| 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 |