# BMM150 Geomagnetic sensor configuration options

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

menuconfig BMM150
	bool "BMM150 I2C Geomagnetic Chip"
	default y
	depends on DT_HAS_BOSCH_BMM150_ENABLED
	select I2C
	help
	  Enable driver for BMM150 I2C-based Geomagnetic sensor.
if BMM150

choice
	prompt "Default preset"
	default BMM150_PRESET_REGULAR
	help
	  Specify the default preset (x/y oversampling, z oversampling, sampling
	  frequency).

config BMM150_PRESET_LOW_POWER
	bool "Low power (3, 3, 10)"

config BMM150_PRESET_REGULAR
	bool "Regular (9, 15, 10)"

config BMM150_PRESET_ENHANCED_REGULAR
	bool "Enhanced regular (15, 27, 10)"

config BMM150_PRESET_HIGH_ACCURACY
	bool "High accuracy (47, 83, 20)"

endchoice

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

config BMM150_TRIGGER_NONE
	bool "No trigger"

config BMM150_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_BOSCH_BMM150),drdy-gpios)
	select BMM150_TRIGGER

config BMM150_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_BOSCH_BMM150),drdy-gpios)
	select BMM150_TRIGGER

config BMM150_TRIGGER_DIRECT
	bool "Use IRQ handler"
	depends on GPIO
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_BOSCH_BMM150),drdy-gpios)
	select BMM150_TRIGGER
endchoice

config BMM150_TRIGGER
	bool

config BMM150_SAMPLING_RATE_RUNTIME
	bool "Dynamic sampling rate"
	help
	  Enable alteration of sampling rate attribute at runtime.

config BMM150_SAMPLING_REP_XY
	bool "Dynamic XY oversampling"
	help
	  Enable alteration of XY oversampling at runtime.

config BMM150_SAMPLING_REP_Z
	bool "Dynamic Z oversampling"
	help
	  Enable alteration of Z oversampling at runtime.

config BMM150_THREAD_PRIORITY
	int "Own thread priority"
	depends on BMM150_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of the thread used by the driver to handle interrupts.

config BMM150_THREAD_STACK_SIZE
	int "Own thread stack size"
	depends on BMM150_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

endif # BMM150
