# 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 SENSOR && I2C
	default n
	help
	  Enable driver for BMC150 I2C-based magnetometer sensor.

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

config BMC150_MAGN_I2C_ADDR
	hex "BMC150_MAGN I2C slave address"
	default 0x12
	depends on BMC150_MAGN
	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"
	depends on BMC150_MAGN
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which BMC150_MAGN
	  is connected.

menu "Attributes"
	depends on BMC150_MAGN

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

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

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

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

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

endchoice

config BMC150_MAGN_SAMPLING_RATE_RUNTIME
	bool "Enable dynamic sampling rate"
	depends on BMC150_MAGN
	default n
	help
	  Enable alteration of sampling rate attribute at runtime.

config BMC150_MAGN_SAMPLING_REP_XY
	bool "Enable dynamic XY oversampling"
	depends on BMC150_MAGN
	default n
	help
	  Enable alteration of XY oversampling at runtime.

config BMC150_MAGN_SAMPLING_REP_Z
	bool "Enable dynamic Z oversampling"
	depends on BMC150_MAGN
	default n
	help
	  Enable alteration of Z oversampling at runtime.

endmenu

config BMC150_MAGN_TRIGGER
	bool "Enable triggers"
	depends on BMC150_MAGN && GPIO
	default n
	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
	default n
	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
	default 3
	depends on BMC150_MAGN_TRIGGER_DRDY
	prompt "GPIO pin number for the data ready interrupt pin"
	help
	  GPIO pin number for the data ready interrupt pin.
