Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# 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

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