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

menuconfig LIS3MDL
	bool
	prompt "LIS3MDL magnetometer"
	depends on I2C
	default n
	help
	  Enable driver for LIS3MDL I2C-based magnetometer.

if !HAS_DTS_I2C_DEVICE

config LIS3MDL_NAME
	string
	prompt "Driver name"
	default "LIS3MDL"
	depends on LIS3MDL
	help
	  Device name with which the LIS3MDL sensor is identified.

config LIS3MDL_I2C_ADDR
	hex
	prompt "I2C address"
	depends on LIS3MDL
	default 0x1C
	help
	  I2C address of the LIS3MDL sensor.
	  Use 0x1C if the SA1 pin is pulled to GND or 0x1E if the SA1 pin
	  is pulled to VDD.

config LIS3MDL_I2C_MASTER_DEV_NAME
	string
	prompt "I2C master where LIS3MDL is connected"
	depends on LIS3MDL
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which LIS3MDL is
	  connected.

endif

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

config LIS3MDL_TRIGGER_NONE
	bool
	prompt "No trigger"

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

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

endchoice

config LIS3MDL_TRIGGER
	bool
	depends on LIS3MDL

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

config LIS3MDL_GPIO_PIN_NUM
	int
	prompt "Interrupt GPIO pin number"
	default 0
	depends on LIS3MDL && 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
	prompt "Thread priority"
	depends on LIS3MDL && LIS3MDL_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

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

config LIS3MDL_ODR
	string
	prompt "Output data rate"
	depends on LIS3MDL
	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
	prompt "Full-scale range"
	depends on LIS3MDL
	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.
