# LSM9DS0 accelerometer, magnetometer and temperature configuration options

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

menuconfig LSM9DS0_MFD
	bool "LSM9DS0 I2C accelerometer, magnetometer and temperature sensor chip"
	default y
	depends on DT_HAS_ST_LSM9DS0_MFD_ENABLED
	select I2C
	help
	  Enable driver for LSM9DS0 I2C-based MFD sensor.

if LSM9DS0_MFD

config LSM9DS0_MFD_ACCEL_ENABLE
	bool "Accelerometer"
	default y
	help
	  Enable/disable accelerometer totally by stripping everything related
	  in driver.

config LSM9DS0_MFD_MAGN_ENABLE
	bool "Magnetometer"
	default y
	help
	  Enable/disable magnetometer totally by stripping everything related in
	  driver.

config LSM9DS0_MFD_TEMP_ENABLE
	bool "Temperature sensor"
	help
	  Enable/disable temperature sensor totally by stripping everything
	  related in driver.

menu "Attributes"

choice
	prompt "Accelerometer sampling rate"
	default LSM9DS0_MFD_ACCEL_SAMPLING_RATE_25
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	help
	  Specify the default sampling rate frequency for accelerometer.

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_0
	bool "0 Hz (power down)"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_3_125
	bool "3.125 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_6_25
	bool "6.25 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_12_5
	bool "12.5 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_25
	bool "25 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_50
	bool "50 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_100
	bool "100 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_200
	bool "200 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_400
	bool "400 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_800
	bool "800 Hz"

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_1600
	bool "1600 Hz"

endchoice

config LSM9DS0_MFD_ACCEL_SAMPLING_RATE_RUNTIME
	bool "Dynamic sampling rate for accelerometer"
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	help
	  Enable alteration of accelerometer sampling rate attribute at
	  runtime.

choice
	prompt "Accelerometer full-scale"
	default LSM9DS0_MFD_ACCEL_FULL_SCALE_2
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	help
	  Specify the default full-scale for accelerometer.

config LSM9DS0_MFD_ACCEL_FULL_SCALE_2
	bool "2G"

config LSM9DS0_MFD_ACCEL_FULL_SCALE_4
	bool "4G"

config LSM9DS0_MFD_ACCEL_FULL_SCALE_6
	bool "6G"

config LSM9DS0_MFD_ACCEL_FULL_SCALE_8
	bool "8G"

config LSM9DS0_MFD_ACCEL_FULL_SCALE_16
	bool "16G"

endchoice

config LSM9DS0_MFD_ACCEL_FULL_SCALE_RUNTIME
	bool "Dynamic full-scale for accelerometer"
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	help
	  Enable alteration of accelerometer full-scale attribute at
	  runtime.

config LSM9DS0_MFD_ACCEL_ENABLE_X
	bool "Accelerometer X axis"
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	default y

config LSM9DS0_MFD_ACCEL_ENABLE_Y
	bool "Accelerometer Y axis"
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	default y

config LSM9DS0_MFD_ACCEL_ENABLE_Z
	bool "Accelerometer Z axis"
	depends on LSM9DS0_MFD_ACCEL_ENABLE
	default y

choice
	prompt "Magnetometer sampling rate"
	default LSM9DS0_MFD_MAGN_SAMPLING_RATE_25
	depends on LSM9DS0_MFD_MAGN_ENABLE
	help
	  Specify the default sampling rate frequency for magnetometer.

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_3_125
	bool "3.125 Hz"

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_6_25
	bool "6.25 Hz"

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_12_5
	bool "12.5 Hz"

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_25
	bool "25 Hz"

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_50
	bool "50 Hz"

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_100
	bool "100 Hz"

endchoice

config LSM9DS0_MFD_MAGN_SAMPLING_RATE_RUNTIME
	bool "Dynamic sampling rate for magnetometer"
	depends on LSM9DS0_MFD_MAGN_ENABLE
	help
	  Enable alteration of magnetometer sampling rate attribute at
	  runtime.

choice
	prompt "Magnetometer full-scale"
	default LSM9DS0_MFD_MAGN_FULL_SCALE_2
	depends on LSM9DS0_MFD_MAGN_ENABLE
	help
	  Specify the default full-scale for magnetometer.

config LSM9DS0_MFD_MAGN_FULL_SCALE_2
	bool "2 Gauss"

config LSM9DS0_MFD_MAGN_FULL_SCALE_4
	bool "4 Gauss"

config LSM9DS0_MFD_MAGN_FULL_SCALE_8
	bool "8 Gauss"

config LSM9DS0_MFD_MAGN_FULL_SCALE_12
	bool "12 Gauss"

endchoice

config LSM9DS0_MFD_MAGN_FULL_SCALE_RUNTIME
	bool "Dynamic full-scale for magnetometer"
	depends on LSM9DS0_MFD_MAGN_ENABLE
	help
	  Enable alteration of magnetometer full-scale attribute at
	  runtime.

endmenu

endif # LSM9DS0_MFD
