# Kconfig - LSM9DS0 gyroscope sensor configuration options

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

menuconfig LSM9DS0_GYRO
	bool "LSM9DS0 I2C gyroscope Chip"
	depends on SENSOR && I2C
	default n
	help
	  Enable driver for LSM9DS0 I2C-based gyroscope sensor.

config LSM9DS0_GYRO_DEV_NAME
	string "LSM9DS0_GYRO device name"
	depends on LSM9DS0_GYRO
	default "lsm9ds0_gyro"

config LSM9DS0_GYRO_I2C_ADDR
	hex
	prompt "LSM9DS0_GYRO I2C slave address"
	default 0x6A
	depends on LSM9DS0_GYRO
	help
	  Specify the I2C slave address for the LSM9DS0_GYRO.

	  0x6A: GND
	  0x6B: VCC

config LSM9DS0_GYRO_I2C_MASTER_DEV_NAME
	string "I2C master where LSM9DS0 gyroscope is connected"
	depends on LSM9DS0_GYRO
	default "I2C_0"
	help
	  Specify the device name of the I2C master device to which LSM9DS0_GYRO
	  is connected.

menu "Attributes"
	depends on LSM9DS0_GYRO

choice
	prompt "Default full-scale"
	default LSM9DS0_GYRO_FULLSCALE_245
	depends on LSM9DS0_GYRO
	help
	  Specify the default full-scale.

config LSM9DS0_GYRO_FULLSCALE_245
	bool
	prompt "245 DPS"

config LSM9DS0_GYRO_FULLSCALE_500
	bool
	prompt "500 DPS"

config LSM9DS0_GYRO_FULLSCALE_2000
	bool
	prompt "2000 DPS"

endchoice

config LSM9DS0_GYRO_FULLSCALE_RUNTIME
	bool "Enable dynamic full-scale"
	depends on LSM9DS0_GYRO
	default n
	help
	  Enable alteration of full-scale attribute at runtime.

choice
	prompt "Default sampling rate frequency"
	default LSM9DS0_GYRO_SAMPLING_RATE_95
	depends on LSM9DS0_GYRO
	help
	  Specify the default sampling rate frequency.

config LSM9DS0_GYRO_SAMPLING_RATE_95
	bool
	prompt "95 Hz"

config LSM9DS0_GYRO_SAMPLING_RATE_190
	bool
	prompt "190 Hz"

config LSM9DS0_GYRO_SAMPLING_RATE_380
	bool
	prompt "380 Hz"

config LSM9DS0_GYRO_SAMPLING_RATE_760
	bool
	prompt "760 Hz"

endchoice

config LSM9DS0_GYRO_SAMPLING_RATE_RUNTIME
	bool "Enable dynamic sampling rate"
	depends on LSM9DS0_GYRO
	default n
	help
	  Enable alteration of sampling rate frequency at runtime.

endmenu

config LSM9DS0_GYRO_TRIGGERS
	bool "Enable triggers"
	depends on LSM9DS0_GYRO && GPIO
	default n

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

config LSM9DS0_GYRO_TRIGGER_DRDY
	bool "Enable data ready trigger"
	depends on LSM9DS0_GYRO_TRIGGERS
	default n

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

config LSM9DS0_GYRO_GPIO_DRDY_INT_PIN
	int
	default 3
	depends on LSM9DS0_GYRO_TRIGGER_DRDY
	prompt "GPIO pin number for the data ready interrupt pin"
