# Kconfig - BMC150 magnetometer sensor configuration options

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

menuconfig BMC150_MAGN
	bool "BMC150_MAGN I2C Magnetometer Chip"
	depends on I2C
	help
	  Enable driver for BMC150 I2C-based magnetometer sensor.

if BMC150_MAGN

config BMC150_MAGN_DEV_NAME
	string "BMC150_MAGN device name"
	default "bmc150_magn"

config BMC150_MAGN_I2C_ADDR
	hex "BMC150_MAGN I2C slave address"
	default 0x12
	help
	  Specify the I2C slave address for the BMC150_MAGN.

	  0x12: GND
	  0x13: VCC

config BMC150_MAGN_I2C_MASTER_DEV_NAME
	string "I2C master where BMC150_MAGN is connected"
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which BMC150_MAGN
	  is connected.

menu "Attributes"

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

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

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

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

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

endchoice

config BMC150_MAGN_SAMPLING_RATE_RUNTIME
	bool "Enable dynamic sampling rate"
	help
	  Enable alteration of sampling rate attribute at runtime.

config BMC150_MAGN_SAMPLING_REP_XY
	bool "Enable dynamic XY oversampling"
	help
	  Enable alteration of XY oversampling at runtime.

config BMC150_MAGN_SAMPLING_REP_Z
	bool "Enable dynamic Z oversampling"
	help
	  Enable alteration of Z oversampling at runtime.

endmenu

config BMC150_MAGN_TRIGGER
	bool "Enable triggers"
	depends on GPIO
	help
	  Enable triggers for BMC150 magnetometer

config BMC150_MAGN_TRIGGER_THREAD_STACK
	int "Thread stack size"
	depends on BMC150_MAGN_TRIGGER
	default 1024
	help
	  Specify the internal thread stack size.

config BMC150_MAGN_TRIGGER_DRDY
	bool "Enable data ready trigger"
	depends on BMC150_MAGN_TRIGGER
	help
	  Enable data ready interrupt for BMC150 magnetometer

config BMC150_MAGN_GPIO_DRDY_DEV_NAME
	string "GPIO device where BMC150_MAGN data ready interrupt is connected"
	depends on BMC150_MAGN_TRIGGER_DRDY
	default "GPIO_0"
	help
	  Specify the device name of the GPIO controller the BMC150_MAGN interrupt
	  is connected to.

config BMC150_MAGN_GPIO_DRDY_INT_PIN
	int "GPIO pin number for the data ready interrupt pin"
	default 3
	depends on BMC150_MAGN_TRIGGER_DRDY
	help
	  GPIO pin number for the data ready interrupt pin.

endif # BMC150_MAGN
