
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig LIS3MDL
	bool "LIS3MDL magnetometer"
	depends on I2C && HAS_DTS_I2C
	help
	  Enable driver for LIS3MDL I2C-based magnetometer.

if LIS3MDL

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

config LIS3MDL_TRIGGER_NONE
	bool "No trigger"

config LIS3MDL_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select LIS3MDL_TRIGGER

config LIS3MDL_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select LIS3MDL_TRIGGER

endchoice # LIS3MDL_TRIGGER_MODE

config LIS3MDL_TRIGGER
	bool

config LIS3MDL_GPIO_DEV_NAME
	string "GPIO device"
	default "GPIO_0"
	depends on LIS3MDL_TRIGGER
	help
	  The device name of the GPIO device to which the LIS3MDL interrupt pins
	  are connected.

config LIS3MDL_GPIO_PIN_NUM
	int "Interrupt GPIO pin number"
	default 0
	depends on LIS3MDL_TRIGGER
	help
	  The number of the GPIO on which the interrupt signal from the LIS3MDL
	  chip will be received.

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

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

config LIS3MDL_ODR
	string "Output data rate"
	default "0.625"
	help
	  Magnetometer output data rate expressed in samples per second.
	  Data rates supported by the chip are 0.625, 1.25, 2.5, 5, 10, 20,
	  40, 80, 155, 300, 560 and 1000.

config LIS3MDL_FS
	int "Full-scale range"
	default 4
	help
	  Magnetometer full-scale range.
	  An X value for the config represents a range of +/- X gauss. Valid
	  values are 4, 8, 12 and 16.

endif # LIS3MDL
