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

menuconfig LIS2MDL
	bool "LIS2MDL Magnetometer"
	default y
	depends on DT_HAS_ST_LIS2MDL_ENABLED
	depends on ZEPHYR_HAL_ST_MODULE
	select I2C if $(dt_compat_on_bus,$(DT_COMPAT_ST_LIS2MDL),i2c)
	select SPI if $(dt_compat_on_bus,$(DT_COMPAT_ST_LIS2MDL),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
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LIS2MDL),irq-gpios)
	select LIS2MDL_TRIGGER

config LIS2MDL_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LIS2MDL),irq-gpios)
	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

endif # LIS2MDL
