# Kconfig - Bosch BMG160 gyroscope configuration options

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

menuconfig BMG160
	bool "Bosch BMG160 gyroscope support"
	depends on SENSOR
	depends on I2C
	default n
	help
	  Enable Bosch BMG160 gyroscope support.

config BMG160_DRV_NAME
	string "Driver's name"
	depends on BMG160
	default "bmg160"
	help
	  Name for the BMG160 driver which will be used for binding.

config BMG160_I2C_PORT_NAME
	string "I2C master controller port name"
	depends on BMG160
	default "I2C_0"
	help
	  Master I2C port name through which BMG160 chip is accessed.

config BMG160_I2C_ADDR
	hex "BMG160 I2C address"
	depends on BMG160
	default 0x68
	help
	  BMG160 chip's I2C address. Chip supports two addresses: 0x68 and 0x69 (if
	  SDO pin is pulled to GND).

choice
	prompt "BMG160 I2C bus speed"
	default BMG160_I2C_SPEED_STANDARD
	depends on BMG160

config BMG160_I2C_SPEED_STANDARD
	bool "Standard"
	help
	  Standard bus speed of up to 100kHz.

config BMG160_I2C_SPEED_FAST
	bool "Fast"
	help
	  Fast bus speed of up to 400KHz.
endchoice

choice
	prompt "Trigger mode"
	depends on BMG160
	default BMG160_TRIGGER_GLOBAL_THREAD
	help
	  Specify the type of triggering to be used by the driver.

config BMG160_TRIGGER_NONE
	bool
	prompt "No trigger"

config BMG160_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	select BMG160_TRIGGER

config BMG160_TRIGGER_OWN_THREAD
	bool "Use own thread"
	select BMG160_TRIGGER
endchoice

config BMG160_TRIGGER
	bool
	depends on BMG160

config BMG160_THREAD_PRIORITY
	int "Own thread priority"
	depends on BMG160 && BMG160_TRIGGER_OWN_THREAD
	default 10
	help
	  The priority of the thread used for handling interrupts.

config BMG160_THREAD_STACK_SIZE
	int "Own thread stack size"
	depends on BMG160 && BMG160_TRIGGER_OWN_THREAD
	default 1024
	help
	  The thread stack size.

config BMG160_GPIO_PORT_NAME
	string "GPIO controller port name"
	depends on BMG160 && BMG160_TRIGGER
	default "GPIO_0"
	help
	  The gpio controller the interrupt pin is attached to.

config BMG160_INT_PIN
	hex "BMG160 INT PIN"
	depends on BMG160 && BMG160_TRIGGER
	default 2
	help
	  BMG160 interrupt pin.

choice
	prompt "Gyroscope range setting."
	depends on BMG160
	default BMG160_RANGE_RUNTIME

config BMG160_RANGE_RUNTIME
	bool "Set at runtime."

config BMG160_RANGE_2000DPS
	bool "2000 DPS"

config BMG160_RANGE_1000DPS
	bool "1000 DPS"

config BMG160_RANGE_500DPS
	bool "500 DPS"

config BMG160_RANGE_250DPS
	bool "250 DPS"

config BMG160_RANGE_125DPS
	bool "125 DPS"
endchoice

choice
	prompt "Gyroscope sampling frequency."
	depends on BMG160
	default BMG160_ODR_RUNTIME

config BMG160_ODR_RUNTIME
	bool "Set at runtime."

config BMG160_ODR_100
	bool "100 Hz"

config BMG160_ODR_200
	bool "200 Hz"

config BMG160_ODR_400
	bool "400 Hz"

config BMG160_ODR_1000
	bool "1000 Hz"

config BMG160_ODR_2000
	bool "2000 Hz"
endchoice
