# Kconfig.lsm9ds0_gyro - LSM9DS0 gyroscope sensor configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

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

config LSM9DS0_GYRO_SYS_LOG_LEVEL
	int "LSM9DS0 Gyro Log level"
	depends on SYS_LOG && LSM9DS0_GYRO
	default 0
	range 0 4
	help
	Sets log level for LSM9DS0 Gyro driver.
	Levels are:

	- 0 OFF: do not write

	- 1 ERROR: only write SYS_LOG_ERR

	- 2 WARNING: write SYS_LOG_WRN in addition to previous level

	- 3 INFO: write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG: write SYS_LOG_DBG in addition to previous levels

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

config LSM9DS0_GYRO_INIT_PRIORITY
	int
	depends on LSM9DS0_GYRO
	default 70
	prompt "Init priority"
	help
	  Device driver initialization priority.

choice
	prompt "LSM9DS0_GYRO I2C slave address"
	default LSM9DS0_GYRO_I2C_ADDR_6A
	depends on LSM9DS0_GYRO
	help
	  Specify the I2C slave address for the LSM9DS0_GYRO.

config LSM9DS0_GYRO_I2C_ADDR_6A
	bool
	prompt "0x6A (GND)"

config LSM9DS0_GYRO_I2C_ADDR_6B
	bool
	prompt "0x6B (VCC)"

endchoice

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_FIBER_STACK_SIZE
	int "Fiber stack size"
	depends on LSM9DS0_GYRO_TRIGGERS
	default 1024
	help
	  Specify the internal fiber 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"
