# 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
