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

DT_COMPAT_HMC5883L := honeywell,hmc5883l

menuconfig HMC5883L
	bool "HMC5883L magnetometer"
	default $(dt_compat_enabled,$(DT_COMPAT_HMC5883L))
	depends on I2C
	help
	  Enable driver for HMC5883L I2C-based magnetometer.

if HMC5883L

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

config HMC5883L_TRIGGER_NONE
	bool "No trigger"

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

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

endchoice

config HMC5883L_TRIGGER
	bool

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

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

config HMC5883L_ODR
	string "Output data rate"
	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 "Full-scale range"
	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.

endif # HMC5883L
