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

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

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

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

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

config HMC5883L_TRIGGER_NONE
	bool
	prompt "No trigger"

config HMC5883L_TRIGGER_GLOBAL_THREAD
	bool
	prompt "Use global thread"
	depends on GPIO
	select HMC5883L_TRIGGER

config HMC5883L_TRIGGER_OWN_THREAD
	bool
	prompt "Use own thread"
	depends on GPIO
	select HMC5883L_TRIGGER

endchoice

config HMC5883L_TRIGGER
	bool
	depends on HMC5883L

config HMC5883L_GPIO_DEV_NAME
	string
	prompt "GPIO device"
	default "GPIO_0"
	depends on HMC5883L && HMC5883L_TRIGGER
	help
	The device name of the GPIO device to which the HMC5883L interrupt
	pin is connected.

config HMC5883L_GPIO_PIN_NUM
	int
	prompt "Interrupt GPIO pin number"
	default 0
	depends on HMC5883L && HMC5883L_TRIGGER
	help
	The number of the GPIO on which the interrupt signal from the
	HMC5883L chip will be received.

config HMC5883L_THREAD_PRIORITY
	int
	prompt "Thread priority"
	depends on HMC5883L && HMC5883L_TRIGGER_OWN_THREAD
	default 10
	help
	Priority of thread used by the driver to handle interrupts.

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

config HMC5883L_ODR
	string
	prompt "Output data rate"
	depends on HMC5883L
	default "15"
	help
	Magnetometer output data rate expressed in samples per second.
	Data rates supported by the chip are 0.75, 1.5, 3, 7.5, 15, 30
	and 75.

config HMC5883L_FS
	string
	prompt "Full-scale range"
	depends on HMC5883L
	default "1.3"
	help
	Magnetometer full-scale range.
	An X value for the config represents a range of +/- X gauss. Valid
	values are 0.88, 1.3, 1.9, 2.5, 4, 4.7, 5.6 and 8.1.
