# Copyright (c) 2018-2019 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

menuconfig LIS2MDL
	bool "LIS2MDL Magnetometer"
	depends on I2C || SPI
	select HAS_STMEMSC
	select USE_STDC_LIS2MDL
	help
	  Enable driver for LIS2MDL I2C-based magnetometer sensor.

if LIS2MDL

choice LIS2MDL_TRIGGER_MODE
	prompt "Trigger mode"
	default LIS2MDL_TRIGGER_GLOBAL_THREAD
	help
	  Specify the type of triggering to be used by the driver.

config LIS2MDL_TRIGGER_NONE
	bool "No trigger"

config LIS2MDL_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select LIS2MDL_TRIGGER

config LIS2MDL_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select LIS2MDL_TRIGGER

endchoice # LIS2MDL_TRIGGER_MODE

config LIS2MDL_TRIGGER
	bool

config LIS2MDL_THREAD_PRIORITY
	int "Thread priority"
	depends on LIS2MDL_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config LIS2MDL_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on LIS2MDL_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

config LIS2MDL_MAG_ODR_RUNTIME
	bool "Set magnetometer sampling frequency (ODR) at runtime (default: 10 Hz)"
	default y

config LIS2MDL_SPI_FULL_DUPLEX
	bool "Enable SPI 4wire mode (separated MISO and MOSI lines)"
	depends on SPI

endif # LIS2MDL
