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

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

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.

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.
